Re: [patch 3/3] x86/paravirt: Replace paravirt patch asm magic

From: Juergen Gross
Date: Thu Apr 25 2019 - 03:46:20 EST


On 25/04/2019 09:22, Thomas Gleixner wrote:
> On Thu, 25 Apr 2019, Ingo Molnar wrote:
>>> +# else
>>> + .irq_restore_fl = { 0x50, 0x9d }, // push %eax; popf
>>> + .mmu_write_cr3 = { 0x0f, 0x22, 0xd8 }, // mov %eax, %cr3
>>> + .cpu_iret = { 0xcf }, // iret
>>> +# endif
>>
>> I think these open-coded hexa versions are somewhat fragile as well, how
>> about putting these into a .S file and controlling the sections in an LTO
>> safe manner there?
>>
>> That will also allow us to write proper asm, and global labels can be
>> used to extract the patchlets and their length?
>
> We are not changing these any other day and I really don't see a reason to
> have these things global just because.

What about generating the hex values from the Makefile using a temporary
.S file? This would make the result easy verifiable and I don't think
setting this up is too complicated.


Juergen