Re: [PATCH 20/22] x86,word-at-a-time: Remove .fixup usage
From: Miroslav Benes
Date: Thu Nov 18 2021 - 02:15:59 EST
On Tue, 16 Nov 2021, Josh Poimboeuf wrote:
> On Mon, Nov 15, 2021 at 01:59:36PM +0100, Miroslav Benes wrote:
> > On Fri, 12 Nov 2021, Josh Poimboeuf wrote:
> >
> > > If the child schedules out, and then the parent gets patched, things can
> > > go off-script if the child later jumps back to the unpatched version of
> > > the parent, and then for example the old parent tries to call another
> > > patched function with a since-changed ABI.
> >
> > ...
> >
> > > I don't know about other patch creation tooling, but I'd imagine they
> > > also need to know about .cold functions, unless they have that
> > > optimization disabled. Because the func and its .cold counterpart
> > > always need to be patched together.
> >
> > We, at SUSE, solve the issue differently... the new patched parent would
> > call that another patched function with a changed ABI statically in a live
> > patch. So in that example, .cold child would jump back to the unpatched
> > parent which would then call, also, the unpatched function.
>
> So if I understand correctly, if a function's ABI changes then you don't
> patch it directly, but only patch its callers to call the replacement?
Yes.
> Is there a reason for that?
Not really. There were a couple of cases in the past where this was safer
to implement and then it became a habbit, I guess.
[ Nicolai CCed, if he wants to add more details ]
Miroslav