Messages in this thread | | | Date | Thu, 18 Nov 2021 08:15:23 +0100 (CET) | From | Miroslav Benes <> | Subject | Re: [PATCH 20/22] x86,word-at-a-time: Remove .fixup usage |
| |
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
| |