[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 4/7] x86/paravirt: remove 32-bit support from PARAVIRT_XXL



On Fri, Aug 07, 2020 at 12:02:59PM +0200, Jürgen Groß wrote:
> On 07.08.20 11:39, peterz@xxxxxxxxxxxxx wrote:
> > On Fri, Aug 07, 2020 at 10:38:23AM +0200, Juergen Gross wrote:
> > 
> > > -# else
> > > - const unsigned char     cpu_iret[1];
> > > -# endif
> > >   };
> > >   static const struct patch_xxl patch_data_xxl = {
> > > @@ -42,7 +38,6 @@ static const struct patch_xxl patch_data_xxl = {
> > >           .irq_save_fl            = { 0x9c, 0x58 },       // pushf; pop 
> > > %[re]ax
> > >           .mmu_read_cr2           = { 0x0f, 0x20, 0xd0 }, // mov %cr2, 
> > > %[re]ax
> > >           .mmu_read_cr3           = { 0x0f, 0x20, 0xd8 }, // mov %cr3, 
> > > %[re]ax
> > > -# ifdef CONFIG_X86_64
> > >           .mmu_write_cr3          = { 0x0f, 0x22, 0xdf }, // mov %rdi, 
> > > %cr3
> > >           .irq_restore_fl         = { 0x57, 0x9d },       // push %rdi; 
> > > popfq
> > >           .cpu_wbinvd             = { 0x0f, 0x09 },       // wbinvd
> > > @@ -50,19 +45,11 @@ static const struct patch_xxl patch_data_xxl = {
> > >                                       0x48, 0x0f, 0x07 }, // swapgs; 
> > > sysretq
> > >           .cpu_swapgs             = { 0x0f, 0x01, 0xf8 }, // swapgs
> > >           .mov64                  = { 0x48, 0x89, 0xf8 }, // mov %rdi, 
> > > %rax
> > > -# else
> > > - .mmu_write_cr3          = { 0x0f, 0x22, 0xd8 }, // mov %eax, %cr3
> > > - .irq_restore_fl         = { 0x50, 0x9d },       // push %eax; popf
> > > - .cpu_iret               = { 0xcf },             // iret
> > > -# endif
> > 
> > I was looking at x86_64 paravirt the other day and found we actually
> > have pv_ops.cpu.iret users there..
> 
> On x86_64 we have (without PARAVIRT_XXL):
> 
> #define INTERRUPT_RETURN        jmp native_iret
> 
> and with PARAVIRT_XXL this is basically a jmp *pv_ops.cpu.iret which
> will then be patched to either jmp native_iret or jmp xen_iret.

Ah, okay. Clearly I didn't look hard enough. Thanks!



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.