public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Biener <richard.guenther@gmail.com>
To: gcc-patches@gcc.gnu.org, "Martin Liška" <mliska@suse.cz>,
	"Qing Zhao" <qing.zhao@oracle.com>
Cc: Martin Jambor
	<mjambor@suse.cz>,live-patching@vger.kernel.org,gcc Patches
	<gcc-patches@gcc.gnu.org>,Jan Hubicka <hubicka@ucw.cz>
Subject: Re: GCC options for kernel live-patching (Was: Add a new option to control inlining only on static functions)
Date: Tue, 02 Oct 2018 18:34:00 -0000	[thread overview]
Message-ID: <F419ECC9-D9F8-49EE-ACAF-A1F73EAB4A2F@gmail.com> (raw)
In-Reply-To: <10a54034-279b-a406-8466-55558effbf24@suse.cz>

On October 2, 2018 7:13:13 PM GMT+02:00, "Martin Liška" <mliska@suse.cz> wrote:
>On 10/2/18 5:12 PM, Qing Zhao wrote:
>> 
>>> On Oct 2, 2018, at 9:55 AM, Martin Liška <mliska@suse.cz
><mailto:mliska@suse.cz>> wrote:
>>>>>>
>>>>>> Affected functions: 5
>>>>>>   __ilog2_u64/132 (include/linux/log2.h:40:5)
>>>>>>   ablkcipher_request_alloc/1639 (include/linux/crypto.h:979:82)
>>>>>>   ablkcipher_request_alloc.constprop.8/3198
>(include/linux/crypto.h:979:82)
>>>>>>   helper_rfc4106_decrypt/3007
>(arch/x86/crypto/aesni-intel_glue.c:1016:12)
>>>>>>   helper_rfc4106_encrypt/3006
>(arch/x86/crypto/aesni-intel_glue.c:939:12)
>>>>>> [..skipped..]
>>>>>>
>>>>>>
>>>>>> if we want to patch the function “fls64/63”,  what else functions
>we need to patch, too? my guess is:
>>>>>
>>>>> Hi.
>>>>>
>>>>> Yes, 'Affected functions' is exactly the list of functions you
>want to patch.
>>>>>
>>>>>>
>>>>>> **all the callers:
>>>>>> __ilog2_u64/132
>>>>>> ablkcipher_request_alloc/1639
>>>>>> helper_rfc4106_decrypt/3007
>>>>>> helper_rfc4106_encrypt/3006
>>>>>> **and:
>>>>>> ablkcipher_request_alloc.constprop.8/3198
>>>>>> is the above correct?
>>>>>>
>>>>>> how to generate patch for
>ablkcipher_request_alloc.constprop.8/3198? since it’s not a function in
>the source code?
>>>>>
>>>>> Well, it's a 'static inline' function in a header file thus the
>function will be inlined in all usages.
>>>>> In this particular case there's no such caller function, so you're
>fine.
>>>>
>>>> So, for cloned functions, you have to analyze them case by case
>manually to see their callers?
>>>
>>> No, the tool should provide complete list of affected functions.
>> 
>> So,  the tool will provide the callers of the cloned routine?
>
>No, the tool does not list callers of affected functions. But function
>call ABI is reasonable
>live-patching boundary.
>
>then we will patch the callers of the cloned routine, Not the cloned
>routine itself?
>> 
>>>
>>>> why not just disable ipa-cp or ipa-sra completely?
>>>
>>> Because the optimizations create function clones, which are
>trackable with my tool
>>> and one knows then all affected functions.
>> Okay. I see.
>>>
>>> You can disable the optimizations, but you'll miss some performance
>benefit provide
>>> by compiler.
>>>
>>> Note that as Martin Jambor mentioned in point 2) there are also IPA
>optimizations that
>>> do not create clones. These should be listed and eventually disabled
>for kernel live
>>> patching.
>> 
>> Yes, such IPA analyzes should be disabled.  we need to identify a
>complete list of such analyzes.
>
>That was promised to be done by Honza Hubička. He's very skilled in IPA
>optimizations and he's aware
>of optimizations that cause troubles for live-patching.

One could also compute the list of possibly affected functions from such semantic changes. 

Richard. 

>Martin
>
>> 
>> thanks.
>> 
>> Qing
>> 

  reply	other threads:[~2018-10-02 18:09 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-18 18:58 [PATCH][Middle-end][Version 3]Add a new option to control inlining only on static functions Qing Zhao
2018-09-18 23:18 ` Martin Sebor
2018-09-19 15:07   ` Qing Zhao
2018-09-21 15:19     ` [PATCH][Middle-end][Version 4]Add " Qing Zhao
2018-09-26  1:01       ` PING: " Qing Zhao
2018-09-26 11:20       ` Alexander Monakov
2018-09-26 12:49         ` Paolo Carlini
2018-09-26 14:43         ` Qing Zhao
2018-09-26 15:18           ` Alexander Monakov
2018-09-26 23:07             ` Qing Zhao
2018-09-26 23:54               ` Alexander Monakov
2018-09-27  5:16                 ` Qing Zhao
2018-09-27  7:46                   ` Richard Biener
2018-09-27 16:30                     ` Qing Zhao
2018-09-27  8:55                   ` Alexander Monakov
2018-09-27  8:58                 ` Jan Hubicka
2018-09-27 11:12                   ` Richard Biener
2018-09-26 13:24       ` Jason Merrill
2018-09-26 13:31         ` Richard Biener
2018-09-26 13:40           ` Jason Merrill
2018-09-26 14:46             ` Jeff Law
2018-09-26 14:58               ` Jason Merrill
2018-09-26 15:10                 ` Jan Hubicka
2018-09-26 17:12                   ` Qing Zhao
2018-09-26 17:22                     ` Jan Hubicka
2018-09-26 21:36                       ` Qing Zhao
2018-09-27  9:47                         ` Jan Hubicka
2018-09-27 12:29                           ` GCC options for kernel live-patching (Was: Add a new option to control inlining only on static functions) Martin Jambor
2018-09-27 16:40                             ` Qing Zhao
2018-10-01 17:14                             ` Qing Zhao
2018-10-02  8:38                               ` Martin Jambor
2018-10-02 14:00                                 ` Qing Zhao
2018-10-02 14:11                                   ` Martin Liška
2018-10-02 14:55                                     ` Qing Zhao
2018-10-02 14:59                                       ` Martin Liška
2018-10-02 15:24                                         ` Qing Zhao
2018-10-02 17:16                                           ` Martin Liška
2018-10-02 18:34                                             ` Richard Biener [this message]
2018-10-02 21:25                                               ` Qing Zhao
2018-10-03  9:05                                                 ` Martin Liška
2018-10-03 10:53                                                 ` Martin Jambor
2018-10-03 16:11                                                   ` Qing Zhao
2018-10-04 13:20                                                     ` Richard Biener
2018-10-18 19:36                                                       ` [RFC] GCC support for live-patching Qing Zhao
2018-10-19  8:53                                                         ` Bernhard Reutner-Fischer
2018-10-19 18:33                                                           ` Qing Zhao
2018-10-24 21:16                                                             ` Alexandre Oliva
2018-10-19 14:25                                                         ` Andi Kleen
2018-10-19 18:33                                                           ` Qing Zhao
2018-10-20  6:47                                                             ` Andi Kleen
2018-10-22 13:07                                                         ` Martin Jambor
2018-10-22 17:59                                                           ` Qing Zhao
2018-10-22 15:36                                                         ` Miroslav Benes
2018-10-22 21:01                                                           ` Qing Zhao
2018-10-23  9:37                                                             ` Miroslav Benes
2018-10-23 19:54                                                               ` Qing Zhao
2018-10-24 13:17                                                                 ` Miroslav Benes
2018-10-23 13:37                                                             ` Nicolai Stange
2018-10-23 20:34                                                               ` Qing Zhao
2018-10-23 21:18                                                                 ` Nicolai Stange
2018-10-24 17:19                                                                 ` Qing Zhao
2018-10-31 22:04                                                         ` [RFC] [2nd version] " Qing Zhao
2018-10-31 22:08                                                         ` [RFC] " Qing Zhao
2018-10-03  9:23                                             ` GCC options for kernel live-patching (Was: Add a new option to control inlining only on static functions) Jan Hubicka
2018-10-03 11:27                                               ` Martin Liška
2018-10-22 10:49                                                 ` Martin Liška
     [not found]                                                   ` <20181105095135.j3mnzox6rkktkoto@kam.mff.cuni.cz>
2018-11-05 22:26                                                     ` Qing Zhao
2018-11-07 14:22                                                     ` Martin Liška
2018-11-07 14:27                                                       ` Jan Hubicka
2018-11-07 14:44                                                         ` Martin Liška
2018-11-08 14:59                                                       ` Jan Hubicka
2018-11-09 15:33                                                         ` [PATCH][RFC] Come up with -flive-patching master option Martin Liška
2018-11-09 17:43                                                           ` Qing Zhao
2018-11-10  8:51                                                             ` Martin Liška
2018-11-12  2:28                                                               ` Qing Zhao
2018-11-12  8:53                                                                 ` Martin Liška
2018-11-12 22:29                                                                   ` Qing Zhao
2018-11-13 17:49                                                                     ` Qing Zhao
2018-11-13 19:18                                                                       ` Miroslav Benes
2018-11-13 21:16                                                                         ` Qing Zhao
2018-11-14 15:03                                                                           ` Martin Liška
2018-11-14 17:54                                                                             ` Qing Zhao
2018-11-15  8:41                                                                               ` Martin Liška
2018-11-15 15:41                                                                                 ` Qing Zhao
2018-11-16  1:36                                                                                   ` [PATCH]Come " Qing Zhao
2018-11-16 15:26                                                                                     ` Martin Liška
2018-11-16 15:51                                                                                       ` Jan Hubicka
2018-11-16 16:25                                                                                         ` Qing Zhao
2018-11-16 16:05                                                                                       ` Qing Zhao
2018-11-19  8:12                                                                                         ` Martin Liška
     [not found]                                                                                           ` <F78B52B9-9F9A-4FA0-91BF-A33307D87AA8@oracle.c! ! om>
2018-11-19 15:53                                                                                           ` Qing Zhao
2018-11-20 12:10                                                                                             ` Martin Liška
2018-11-20 15:32                                                                                               ` [PATCH][Version 3]Come " Qing Zhao
2018-11-26 15:54                                                                                                 ` PING: " Qing Zhao
2018-11-30 17:04                                                                                                   ` [wwwdocs] [PATCH]introduce new -flive-patching master option into gcc9 Qing Zhao
2018-11-30 18:29                                                                                                     ` Jeff Law
2018-11-30 20:44                                                                                                       ` Qing Zhao
2018-11-28 15:52                                                                                                 ` [PATCH][Version 3]Come up with -flive-patching master option Jan Hubicka
2018-11-28 20:25                                                                                                   ` Qing Zhao
2018-11-29 16:16                                                                                                     ` Qing Zhao
2018-12-05 23:16                                                                                                     ` Question on Disable no throw for " Qing Zhao
2019-01-02 11:47                                                                                                       ` Martin Liška
2019-01-09 11:28                                                                                                         ` Martin Liška
2018-12-07 13:07                                                                                                     ` [PATCH][Version 3]Come up with " Rainer Orth
2018-12-07 15:14                                                                                                       ` Qing Zhao
2019-04-10 14:46                                                                                                 ` Jonathan Wakely
2019-04-10 19:24                                                                                                   ` Qing Zhao
2019-04-10 20:01                                                                                                     ` Jonathan Wakely
2019-04-11  8:11                                                                                                       ` Richard Biener
2018-11-14 22:05                                                                           ` [PATCH][RFC] Come " Miroslav Benes
     [not found]                                                               ` <20181110170343.g3k7j7rlydid3ahr@kam.mff.cuni.cz>
2018-11-12  9:29                                                                 ` Martin Liška
2018-11-09 18:38                                                           ` Bernhard Reutner-Fischer
2018-11-10  8:48                                                           ` Martin Liška
2018-10-03 12:18                                               ` GCC options for kernel live-patching (Was: Add a new option to control inlining only on static functions) Martin Jambor
2018-10-03 16:00                                               ` Qing Zhao
2018-10-23 12:34                             ` Performance impact of disabling non-clone IPA optimizations for the Linux kernel (was: "GCC options for kernel live-patching") Nicolai Stange
2018-10-24 14:30                               ` Jiri Kosina
2018-10-24 14:44                                 ` Miroslav Benes
2018-09-27 16:32                           ` [PATCH][Middle-end][Version 4]Add a new option to control inlining only on static functions Qing Zhao
2018-09-26 22:42                       ` Qing Zhao
2018-09-26 16:02               ` Qing Zhao
2018-09-26 15:52           ` Qing Zhao
2018-09-26 16:02             ` Jan Hubicka
2018-09-26 18:51               ` Qing Zhao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=F419ECC9-D9F8-49EE-ACAF-A1F73EAB4A2F@gmail.com \
    --to=richard.guenther@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hubicka@ucw.cz \
    --cc=live-patching@vger.kernel.org \
    --cc=mjambor@suse.cz \
    --cc=mliska@suse.cz \
    --cc=qing.zhao@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).