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