Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable
From: Jeremy Fitzhardinge <hidden>
Date: 2007-03-18 15:58:23
Also in:
lkml, netdev, xen-devel
From: Jeremy Fitzhardinge <hidden>
Date: 2007-03-18 15:58:23
Also in:
lkml, netdev, xen-devel
Andi Kleen wrote:
quoted
The idea is _NOT_ that you go look for references to the paravirt_ops members structure, that would be stupid and you wouldn't be able to use the most efficient addressing mode on a given cpu, you'd be patching up indirect calls and crap like that. Just say no...That wouldn't handle inlines though. At least some of the current paravirtops like cli/sti are critical enough to require inlining.
You could special-case it in the thing handling the relocs; if you're
relocating to point to a function which you have an inline substitution,
then inline.
The bigger problem is that you don't know what registers you can
clobber. For the pv_ops in hand-written asm, that a big pain. The code
either has to assume the worst, or the "relocator" has to do something
more sophisticated (like look for push/pop pairs surrounding the call,
perhaps?).
J