[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 07/32] xen/x86: fix arch_set_info_guest for HVM guests
>>> On 23.07.15 at 18:15, <andrew.cooper3@xxxxxxxxxx> wrote: > On 23/07/15 17:00, Ian Campbell wrote: >> On Thu, 2015-07-23 at 17:48 +0200, Roger Pau Monnà wrote: >>> El 23/07/15 a les 17.32, Jan Beulich ha escrit: >>>>>>> On 23.07.15 at 17:10, <roger.pau@xxxxxxxxxx> wrote: >>>>> IMHO introducing a new structure that gets rid of all the PV-only >>>>> >>>>> fields seems like a good option: >>>>> >>>>> struct vcpu_hvm_context { >>>>> #define _VGCF_online 5 >>>>> #define VGCF_online (1<<_VGCF_online) >>>>> uint32_t flags; /* VGCF_* flags >>>>> >>>>> */ >>>>> struct cpu_hvm_user_regs user_regs; /* User-level CPU >>>>> registers >>>>> */ >>>>> /* NB. User pagetable on x86/64 is placed in ctrlreg[1]. */ >>>>> uint32_t ctrlreg[8]; /* CR0-CR7 (control >>>>> registers) >>>>> */ >>>>> uint32_t debugreg[8]; /* DB0-DB7 (debug >>>>> registers) >>>>> */ >>>>> }; >>>>> >>>>> I'm also seriously considering getting rid of ctrlreg and >>>>> debugreg. >>>>> Since HVM VCPUs will always be started in 32bit flat mode, it >>>>> doesn't >>>>> make sense IMHO to have both the 32 and the 64 version of the >>>>> registers, so cpu_hvm_user_regs is always going to be: >>>>> >>>>> struct cpu_hvm_user_regs { >>>>> uint32_t ebx; >>>>> uint32_t ecx; >>>>> uint32_t edx; >>>>> uint32_t esi; >>>>> uint32_t edi; >>>>> uint32_t ebp; >>>>> uint32_t eax; >>>>> uint32_t eip; >>>>> uint32_t esp; >>>>> uint32_t eflags; >>>>> uint16_t cs; >>>>> uint16_t ss; >>>>> uint16_t es; >>>>> uint16_t ds; >>>>> uint16_t fs; >>>>> uint16_t gs; >>>>> }; >>>>> >>>>> We could however do something similar to what's done in ARM and >>>>> have >>>>> a union of both the 32 and the 64bit registers in case we want to >>>>> start the vCPU in 64bit mode sometime in the future. >>>> What you gave above is suitable only for VCPUOP_initialise afaict. >>>> Did you intend this to be the case? >>> Certainly not, this should also be used by XEN_DOMCTL_setvcpucontext. >>> I'm afraid I'm missing something obvious, but I don't see why this >>> couldn't be used by XEN_DOMCTL_setvcpucontext TBH, can you please >>> clarify? >> set/getvcpucontext need to pickle all state for save/restore/migration, >> not just the start of day state. > > HVM migration doesn't use set/getvcpucontext. > > I would expect an HVMLite-based-PVH to follow suit and just use > set/gethvmcontext. Oh, right, but that doesn't mean the respective domctl-s should produce unconsumable data, or have to guess how to interpret what gets passed in. I.e. at the very minimum the domctl-s then should be disallowed for PVH if they can#t be made work right. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |