Re: [PATCH v3 5/6] x86/ftrace: Use text_poke()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 20 Jan 2020, Josh Poimboeuf wrote:

> On Mon, Oct 21, 2019 at 10:05:49AM -0500, Josh Poimboeuf wrote:
> > On Wed, Oct 16, 2019 at 09:42:17AM +0200, Peter Zijlstra wrote:
> > > > which are not compatible with livepatching. GCC upstream now has
> > > > -flive-patching option, which disables all those interfering optimizations.
> > > 
> > > Which, IIRC, has a significant performance impact and should thus really
> > > not be used...
> > > 
> > > If distros ship that crap, I'm going to laugh at them the next time they
> > > want a single digit performance improvement because *important*.
> > 
> > I have a crazy plan to try to use objtool to detect function changes at
> > a binary level, which would hopefully allow us to drop this flag.
> > 
> > But regardless, I wonder if we enabled this flag prematurely.  We still
> > don't have a reasonable way to use it for creating source-based live
> > patches upstream, and it should really be optional for CONFIG_LIVEPATCH,
> > since kpatch-build doesn't need it.
> 
> I also just discovered that -flive-patching is responsible for all those
> "unreachable instruction" objtool warnings which Randy has been
> dutifully bugging me about over the last several months.  For some
> reason it subtly breaks GCC implicit noreturn detection for local
> functions.

Ugh, that is unfortunate. Have you reported it?
 
> At this point, I only see downsides of -flive-patching, at least until
> we actually have real upstream code which needs it.

Can you explain this? The option makes GCC to avoid optimizations which 
are difficult to detect and would make live patching unsafe. I consider it 
useful as it is, so if you shared the other downsides and what you meant 
by real upstream code, we could discuss it.

> If there aren't any objections I'll be posting a patch soon to revert.

I think it would be a setback.

Regards
Miroslav



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux