* [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features
@ 2013-06-21 10:31 Jan Beulich
2013-06-21 10:36 ` [PATCH RFC 1/3] VMX: VMX: fix interaction of APIC-V and Viridian emulation Jan Beulich
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Jan Beulich @ 2013-06-21 10:31 UTC (permalink / raw)
To: xen-devel; +Cc: Yang Z Zhang, Keir Fraser, Eddie Dong, Jun Nakajima
1: VMX: fix interaction of APIC-V and Viridian emulation
2: VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V
3: Viridian: populate CPUID leaf 6
The concepts patch 1 bases upon have been tested to fix the Win2008
boot hang previously reported, but the specific patch here so far hasn't
got validated. Additionally I will also want to know whether patch 2
alone would also suffice to address the problem (it should in theory, but
so far it was only tested when at the same time also not setting
CPUID3A_MSR_APIC_ACCESS) - if it does, that might be a candidate
to still go into 4.3.
The above is why the series is being posted as RFC.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH RFC 1/3] VMX: VMX: fix interaction of APIC-V and Viridian emulation 2013-06-21 10:31 [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features Jan Beulich @ 2013-06-21 10:36 ` Jan Beulich 2013-06-21 10:37 ` [PATCH RFC 2/3] VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V Jan Beulich ` (2 subsequent siblings) 3 siblings, 0 replies; 10+ messages in thread From: Jan Beulich @ 2013-06-21 10:36 UTC (permalink / raw) To: xen-devel; +Cc: Yang Z Zhang, Keir Fraser, Eddie Dong, Jun Nakajima [-- Attachment #1: Type: text/plain, Size: 3615 bytes --] Viridian using a synthetic MSR for issuing EOI notifications bypasses the normal in-processor handling, which would clear GUEST_INTR_STATUS.SVI. Hence we need to do this in software in order for future interrupts to get delivered. Based on analysis by Yang Z Zhang <yang.z.zhang@intel.com>. Also get the other virtual interrupt delivery related actors in sync with the newly added one in clearing the respective pointers (thus avoiding the call from generic code) when the feature is unavailable instead of checking feature availability in the actors. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/hvm/vlapic.c +++ b/xen/arch/x86/hvm/vlapic.c @@ -386,6 +386,9 @@ void vlapic_EOI_set(struct vlapic *vlapi vlapic_clear_vector(vector, &vlapic->regs->data[APIC_ISR]); + if ( hvm_funcs.handle_eoi ) + hvm_funcs.handle_eoi(vector); + if ( vlapic_test_and_clear_vector(vector, &vlapic->regs->data[APIC_TMR]) ) vioapic_update_EOI(vlapic_domain(vlapic), vector); --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -1411,13 +1411,10 @@ static void vmx_set_info_guest(struct vc static void vmx_update_eoi_exit_bitmap(struct vcpu *v, u8 vector, u8 trig) { - if ( cpu_has_vmx_virtual_intr_delivery ) - { - if (trig) - vmx_set_eoi_exit_bitmap(v, vector); - else - vmx_clear_eoi_exit_bitmap(v, vector); - } + if ( trig ) + vmx_set_eoi_exit_bitmap(v, vector); + else + vmx_clear_eoi_exit_bitmap(v, vector); } static int vmx_virtual_intr_delivery_enabled(void) @@ -1430,9 +1427,6 @@ static void vmx_process_isr(int isr, str unsigned long status; u8 old; - if ( !cpu_has_vmx_virtual_intr_delivery ) - return; - if ( isr < 0 ) isr = 0; @@ -1502,6 +1496,15 @@ static void vmx_sync_pir_to_irr(struct v vlapic_set_vector(i, &vlapic->regs->data[APIC_IRR]); } +static void vmx_handle_eoi(u8 vector) +{ + unsigned long status = __vmread(GUEST_INTR_STATUS); + + /* We need to clear the SVI field. */ + status &= VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK; + __vmwrite(GUEST_INTR_STATUS, status); +} + static struct hvm_function_table __initdata vmx_function_table = { .name = "VMX", .cpu_up_prepare = vmx_cpu_up_prepare, @@ -1554,6 +1557,7 @@ static struct hvm_function_table __initd .process_isr = vmx_process_isr, .deliver_posted_intr = vmx_deliver_posted_intr, .sync_pir_to_irr = vmx_sync_pir_to_irr, + .handle_eoi = vmx_handle_eoi, .nhvm_hap_walk_L1_p2m = nvmx_hap_walk_L1_p2m, }; @@ -1580,6 +1584,13 @@ const struct hvm_function_table * __init setup_ept_dump(); } + + if ( !cpu_has_vmx_virtual_intr_delivery ) + { + vmx_function_table.update_eoi_exit_bitmap = NULL; + vmx_function_table.process_isr = NULL; + vmx_function_table.handle_eoi = NULL; + } if ( cpu_has_vmx_posted_intr_processing ) alloc_direct_apic_vector(&posted_intr_vector, event_check_interrupt); --- a/xen/include/asm-x86/hvm/hvm.h +++ b/xen/include/asm-x86/hvm/hvm.h @@ -186,6 +186,7 @@ struct hvm_function_table { void (*process_isr)(int isr, struct vcpu *v); void (*deliver_posted_intr)(struct vcpu *v, u8 vector); void (*sync_pir_to_irr)(struct vcpu *v); + void (*handle_eoi)(u8 vector); /*Walk nested p2m */ int (*nhvm_hap_walk_L1_p2m)(struct vcpu *v, paddr_t L2_gpa, [-- Attachment #2: x86-VMX-Viridian-APICV.patch --] [-- Type: text/plain, Size: 3666 bytes --] VMX: fix interaction of APIC-V and Viridian emulation Viridian using a synthetic MSR for issuing EOI notifications bypasses the normal in-processor handling, which would clear GUEST_INTR_STATUS.SVI. Hence we need to do this in software in order for future interrupts to get delivered. Based on analysis by Yang Z Zhang <yang.z.zhang@intel.com>. Also get the other virtual interrupt delivery related actors in sync with the newly added one in clearing the respective pointers (thus avoiding the call from generic code) when the feature is unavailable instead of checking feature availability in the actors. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/hvm/vlapic.c +++ b/xen/arch/x86/hvm/vlapic.c @@ -386,6 +386,9 @@ void vlapic_EOI_set(struct vlapic *vlapi vlapic_clear_vector(vector, &vlapic->regs->data[APIC_ISR]); + if ( hvm_funcs.handle_eoi ) + hvm_funcs.handle_eoi(vector); + if ( vlapic_test_and_clear_vector(vector, &vlapic->regs->data[APIC_TMR]) ) vioapic_update_EOI(vlapic_domain(vlapic), vector); --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -1411,13 +1411,10 @@ static void vmx_set_info_guest(struct vc static void vmx_update_eoi_exit_bitmap(struct vcpu *v, u8 vector, u8 trig) { - if ( cpu_has_vmx_virtual_intr_delivery ) - { - if (trig) - vmx_set_eoi_exit_bitmap(v, vector); - else - vmx_clear_eoi_exit_bitmap(v, vector); - } + if ( trig ) + vmx_set_eoi_exit_bitmap(v, vector); + else + vmx_clear_eoi_exit_bitmap(v, vector); } static int vmx_virtual_intr_delivery_enabled(void) @@ -1430,9 +1427,6 @@ static void vmx_process_isr(int isr, str unsigned long status; u8 old; - if ( !cpu_has_vmx_virtual_intr_delivery ) - return; - if ( isr < 0 ) isr = 0; @@ -1502,6 +1496,15 @@ static void vmx_sync_pir_to_irr(struct v vlapic_set_vector(i, &vlapic->regs->data[APIC_IRR]); } +static void vmx_handle_eoi(u8 vector) +{ + unsigned long status = __vmread(GUEST_INTR_STATUS); + + /* We need to clear the SVI field. */ + status &= VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK; + __vmwrite(GUEST_INTR_STATUS, status); +} + static struct hvm_function_table __initdata vmx_function_table = { .name = "VMX", .cpu_up_prepare = vmx_cpu_up_prepare, @@ -1554,6 +1557,7 @@ static struct hvm_function_table __initd .process_isr = vmx_process_isr, .deliver_posted_intr = vmx_deliver_posted_intr, .sync_pir_to_irr = vmx_sync_pir_to_irr, + .handle_eoi = vmx_handle_eoi, .nhvm_hap_walk_L1_p2m = nvmx_hap_walk_L1_p2m, }; @@ -1580,6 +1584,13 @@ const struct hvm_function_table * __init setup_ept_dump(); } + + if ( !cpu_has_vmx_virtual_intr_delivery ) + { + vmx_function_table.update_eoi_exit_bitmap = NULL; + vmx_function_table.process_isr = NULL; + vmx_function_table.handle_eoi = NULL; + } if ( cpu_has_vmx_posted_intr_processing ) alloc_direct_apic_vector(&posted_intr_vector, event_check_interrupt); --- a/xen/include/asm-x86/hvm/hvm.h +++ b/xen/include/asm-x86/hvm/hvm.h @@ -186,6 +186,7 @@ struct hvm_function_table { void (*process_isr)(int isr, struct vcpu *v); void (*deliver_posted_intr)(struct vcpu *v, u8 vector); void (*sync_pir_to_irr)(struct vcpu *v); + void (*handle_eoi)(u8 vector); /*Walk nested p2m */ int (*nhvm_hap_walk_L1_p2m)(struct vcpu *v, paddr_t L2_gpa, [-- Attachment #3: Type: text/plain, Size: 126 bytes --] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH RFC 2/3] VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V 2013-06-21 10:31 [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features Jan Beulich 2013-06-21 10:36 ` [PATCH RFC 1/3] VMX: VMX: fix interaction of APIC-V and Viridian emulation Jan Beulich @ 2013-06-21 10:37 ` Jan Beulich 2013-06-21 10:38 ` [PATCH RFC 3/3] Viridian: populate CPUID leaf 6 Jan Beulich 2013-06-21 13:57 ` [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features Jan Beulich 3 siblings, 0 replies; 10+ messages in thread From: Jan Beulich @ 2013-06-21 10:37 UTC (permalink / raw) To: xen-devel; +Cc: Yang Z Zhang, Keir Fraser, Eddie Dong, Jun Nakajima [-- Attachment #1: Type: text/plain, Size: 875 bytes --] When the CPU has the necessary capabilities, having Windows use synthetic MSR reads/writes is bogus, as this still requires emulation (which is pretty much guaranteed to be slower than having the hardware carry out the operation). Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/hvm/viridian.c +++ b/xen/arch/x86/hvm/viridian.c @@ -87,8 +87,9 @@ int cpuid_viridian_leaves(unsigned int l if ( (d->arch.hvm_domain.viridian.guest_os_id.raw == 0) || (d->arch.hvm_domain.viridian.guest_os_id.fields.os < 4) ) break; - *eax = (CPUID4A_MSR_BASED_APIC | - CPUID4A_RELAX_TIMER_INT); + *eax = CPUID4A_RELAX_TIMER_INT; + if ( !cpu_has_vmx_apic_reg_virt ) + *eax |= CPUID4A_MSR_BASED_APIC; *ebx = 2047; /* long spin count */ break; } [-- Attachment #2: x86-Viridian-CPUID-APICV.patch --] [-- Type: text/plain, Size: 940 bytes --] VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V When the CPU has the necessary capabilities, having Windows use synthetic MSR reads/writes is bogus, as this still requires emulation (which is pretty much guaranteed to be slower than having the hardware carry out the operation). Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/hvm/viridian.c +++ b/xen/arch/x86/hvm/viridian.c @@ -87,8 +87,9 @@ int cpuid_viridian_leaves(unsigned int l if ( (d->arch.hvm_domain.viridian.guest_os_id.raw == 0) || (d->arch.hvm_domain.viridian.guest_os_id.fields.os < 4) ) break; - *eax = (CPUID4A_MSR_BASED_APIC | - CPUID4A_RELAX_TIMER_INT); + *eax = CPUID4A_RELAX_TIMER_INT; + if ( !cpu_has_vmx_apic_reg_virt ) + *eax |= CPUID4A_MSR_BASED_APIC; *ebx = 2047; /* long spin count */ break; } [-- Attachment #3: Type: text/plain, Size: 126 bytes --] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH RFC 3/3] Viridian: populate CPUID leaf 6 2013-06-21 10:31 [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features Jan Beulich 2013-06-21 10:36 ` [PATCH RFC 1/3] VMX: VMX: fix interaction of APIC-V and Viridian emulation Jan Beulich 2013-06-21 10:37 ` [PATCH RFC 2/3] VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V Jan Beulich @ 2013-06-21 10:38 ` Jan Beulich 2013-06-21 13:57 ` [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features Jan Beulich 3 siblings, 0 replies; 10+ messages in thread From: Jan Beulich @ 2013-06-21 10:38 UTC (permalink / raw) To: xen-devel; +Cc: Yang Z Zhang, Keir Fraser, Eddie Dong, Jun Nakajima [-- Attachment #1: Type: text/plain, Size: 1321 bytes --] Properly reporting hardware features we use can only help Windows in making decisions towards its own performance tuning. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/hvm/viridian.c +++ b/xen/arch/x86/hvm/viridian.c @@ -41,6 +41,11 @@ #define CPUID4A_MSR_BASED_APIC (1 << 3) #define CPUID4A_RELAX_TIMER_INT (1 << 5) +/* Viridian CPUID 4000006, Implementation HW features detected and in use. */ +#define CPUID6A_APIC_OVERLAY (1 << 0) +#define CPUID6A_MSR_BITMAPS (1 << 1) +#define CPUID6A_NESTED_PAGING (1 << 3) + int cpuid_viridian_leaves(unsigned int leaf, unsigned int *eax, unsigned int *ebx, unsigned int *ecx, unsigned int *edx) @@ -92,6 +97,15 @@ int cpuid_viridian_leaves(unsigned int l *eax |= CPUID4A_MSR_BASED_APIC; *ebx = 2047; /* long spin count */ break; + case 6: + /* Detected and in use hardware features. */ + if ( cpu_has_vmx_virtualize_apic_accesses ) + *eax |= CPUID6A_APIC_OVERLAY; + if ( cpu_has_vmx_msr_bitmap || (read_efer() & EFER_SVME) ) + *eax |= CPUID6A_MSR_BITMAPS; + if ( hap_enabled(d) ) + *eax |= CPUID6A_NESTED_PAGING; + break; } return 1; [-- Attachment #2: x86-Viridian-CPUID-leaf6.patch --] [-- Type: text/plain, Size: 1350 bytes --] Viridian: populate CPUID leaf 6 Properly reporting hardware features we use can only help Windows in making decisions towards its own performance tuning. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/hvm/viridian.c +++ b/xen/arch/x86/hvm/viridian.c @@ -41,6 +41,11 @@ #define CPUID4A_MSR_BASED_APIC (1 << 3) #define CPUID4A_RELAX_TIMER_INT (1 << 5) +/* Viridian CPUID 4000006, Implementation HW features detected and in use. */ +#define CPUID6A_APIC_OVERLAY (1 << 0) +#define CPUID6A_MSR_BITMAPS (1 << 1) +#define CPUID6A_NESTED_PAGING (1 << 3) + int cpuid_viridian_leaves(unsigned int leaf, unsigned int *eax, unsigned int *ebx, unsigned int *ecx, unsigned int *edx) @@ -92,6 +97,15 @@ int cpuid_viridian_leaves(unsigned int l *eax |= CPUID4A_MSR_BASED_APIC; *ebx = 2047; /* long spin count */ break; + case 6: + /* Detected and in use hardware features. */ + if ( cpu_has_vmx_virtualize_apic_accesses ) + *eax |= CPUID6A_APIC_OVERLAY; + if ( cpu_has_vmx_msr_bitmap || (read_efer() & EFER_SVME) ) + *eax |= CPUID6A_MSR_BITMAPS; + if ( hap_enabled(d) ) + *eax |= CPUID6A_NESTED_PAGING; + break; } return 1; [-- Attachment #3: Type: text/plain, Size: 126 bytes --] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features 2013-06-21 10:31 [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features Jan Beulich ` (2 preceding siblings ...) 2013-06-21 10:38 ` [PATCH RFC 3/3] Viridian: populate CPUID leaf 6 Jan Beulich @ 2013-06-21 13:57 ` Jan Beulich 2013-06-21 16:25 ` George Dunlap 3 siblings, 1 reply; 10+ messages in thread From: Jan Beulich @ 2013-06-21 13:57 UTC (permalink / raw) To: paul.durrant, George Dunlap Cc: Yang Z Zhang, Keir Fraser, Eddie Dong, Jun Nakajima, xen-devel >>> On 21.06.13 at 12:31, "Jan Beulich" <JBeulich@suse.com> wrote: > 1: VMX: fix interaction of APIC-V and Viridian emulation > 2: VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V > 3: Viridian: populate CPUID leaf 6 > > The concepts patch 1 bases upon have been tested to fix the Win2008 > boot hang previously reported, but the specific patch here so far hasn't > got validated. Additionally I will also want to know whether patch 2 > alone would also suffice to address the problem (it should in theory, but > so far it was only tested when at the same time also not setting > CPUID3A_MSR_APIC_ACCESS) - if it does, that might be a candidate > to still go into 4.3. George, the tests meanwhile completed successfully, i.e. both patch 1 and patch 2 alone address the issue. I'd therefore like to propose patch 2 as an immediate non-intrusive fix for 4.3, whereas I'd be fine deferring the first one until after 4.3; deferring the third one seems obvious as it is not fixing any known bug. Paul, would you btw feel like reviewing/acking patches 2 and 3? Jan ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features 2013-06-21 13:57 ` [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features Jan Beulich @ 2013-06-21 16:25 ` George Dunlap 2013-06-24 1:00 ` Zhang, Yang Z 2013-06-24 6:26 ` Jan Beulich 0 siblings, 2 replies; 10+ messages in thread From: George Dunlap @ 2013-06-21 16:25 UTC (permalink / raw) To: Jan Beulich Cc: Keir Fraser, Eddie Dong, xen-devel, paul.durrant, Jun Nakajima, Yang Z Zhang On 21/06/13 14:57, Jan Beulich wrote: >>>> On 21.06.13 at 12:31, "Jan Beulich" <JBeulich@suse.com> wrote: >> 1: VMX: fix interaction of APIC-V and Viridian emulation >> 2: VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V >> 3: Viridian: populate CPUID leaf 6 >> >> The concepts patch 1 bases upon have been tested to fix the Win2008 >> boot hang previously reported, but the specific patch here so far hasn't >> got validated. Additionally I will also want to know whether patch 2 >> alone would also suffice to address the problem (it should in theory, but >> so far it was only tested when at the same time also not setting >> CPUID3A_MSR_APIC_ACCESS) - if it does, that might be a candidate >> to still go into 4.3. > George, > > the tests meanwhile completed successfully, i.e. both patch 1 > and patch 2 alone address the issue. I'd therefore like to propose > patch 2 as an immediate non-intrusive fix for 4.3, whereas I'd be > fine deferring the first one until after 4.3; deferring the third one > seems obvious as it is not fixing any known bug. > > Paul, would you btw feel like reviewing/acking patches 2 and 3? Just to clarify -- #1 makes it so that the software EOI does what the hardware EOI would do if it were used instead? It's a bit hard to tell which one of 1 or 2 is the lowest risk from a release perspective -- my instinct is to go with #1 (assuming I've understood it correctly), as it relies on expected behavior of the hardware, not on expected behavior of Windows. But I think whichever you think is best is fine with me, as long as you get an Ack from Paul for #2. -George ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features 2013-06-21 16:25 ` George Dunlap @ 2013-06-24 1:00 ` Zhang, Yang Z 2013-06-24 6:22 ` Jan Beulich 2013-06-24 6:26 ` Jan Beulich 1 sibling, 1 reply; 10+ messages in thread From: Zhang, Yang Z @ 2013-06-24 1:00 UTC (permalink / raw) To: George Dunlap, Jan Beulich Cc: Keir Fraser, paul.durrant@citrix.com, Dong, Eddie, Nakajima, Jun, xen-devel George Dunlap wrote on 2013-06-22: > On 21/06/13 14:57, Jan Beulich wrote: >>>>> On 21.06.13 at 12:31, "Jan Beulich" <JBeulich@suse.com> wrote: >>> 1: VMX: fix interaction of APIC-V and Viridian emulation >>> 2: VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V >>> 3: Viridian: populate CPUID leaf 6 >>> >>> The concepts patch 1 bases upon have been tested to fix the Win2008 >>> boot hang previously reported, but the specific patch here so far hasn't >>> got validated. Additionally I will also want to know whether patch 2 >>> alone would also suffice to address the problem (it should in theory, but >>> so far it was only tested when at the same time also not setting >>> CPUID3A_MSR_APIC_ACCESS) - if it does, that might be a candidate >>> to still go into 4.3. >> George, >> >> the tests meanwhile completed successfully, i.e. both patch 1 >> and patch 2 alone address the issue. I'd therefore like to propose >> patch 2 as an immediate non-intrusive fix for 4.3, whereas I'd be >> fine deferring the first one until after 4.3; deferring the third one >> seems obvious as it is not fixing any known bug. >> >> Paul, would you btw feel like reviewing/acking patches 2 and 3? > > Just to clarify -- #1 makes it so that the software EOI does what the > hardware EOI would do if it were used instead? Correct! > It's a bit hard to tell which one of 1 or 2 is the lowest risk from a > release perspective -- my instinct is to go with #1 (assuming I've > understood it correctly), as it relies on expected behavior of the > hardware, not on expected behavior of Windows. But I think whichever > you think is best is fine with me, as long as you get an Ack from Paul > for #2. I think both #1 and #2 are necessary. We cannot expect the OS always follows the rule. Best regards, Yang ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features 2013-06-24 1:00 ` Zhang, Yang Z @ 2013-06-24 6:22 ` Jan Beulich 2013-06-24 6:25 ` Zhang, Yang Z 0 siblings, 1 reply; 10+ messages in thread From: Jan Beulich @ 2013-06-24 6:22 UTC (permalink / raw) To: Yang Z Zhang Cc: Keir Fraser, George Dunlap, Eddie Dong, xen-devel, paul.durrant@citrix.com, Jun Nakajima >>> On 24.06.13 at 03:00, "Zhang, Yang Z" <yang.z.zhang@intel.com> wrote: > George Dunlap wrote on 2013-06-22: >> It's a bit hard to tell which one of 1 or 2 is the lowest risk from a >> release perspective -- my instinct is to go with #1 (assuming I've >> understood it correctly), as it relies on expected behavior of the >> hardware, not on expected behavior of Windows. But I think whichever >> you think is best is fine with me, as long as you get an Ack from Paul >> for #2. > I think both #1 and #2 are necessary. We cannot expect the OS always follows > the rule. Sure, ultimately we want both. The question whether to limit ourselves to one of them is merely for the immediate 4.3 release. Jan ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features 2013-06-24 6:22 ` Jan Beulich @ 2013-06-24 6:25 ` Zhang, Yang Z 0 siblings, 0 replies; 10+ messages in thread From: Zhang, Yang Z @ 2013-06-24 6:25 UTC (permalink / raw) To: Jan Beulich Cc: Keir Fraser, George Dunlap, Dong, Eddie, xen-devel, paul.durrant@citrix.com, Nakajima, Jun Jan Beulich wrote on 2013-06-24: >>>> On 24.06.13 at 03:00, "Zhang, Yang Z" <yang.z.zhang@intel.com> wrote: >> George Dunlap wrote on 2013-06-22: >>> It's a bit hard to tell which one of 1 or 2 is the lowest risk from a >>> release perspective -- my instinct is to go with #1 (assuming I've >>> understood it correctly), as it relies on expected behavior of the >>> hardware, not on expected behavior of Windows. But I think whichever >>> you think is best is fine with me, as long as you get an Ack from Paul >>> for #2. >> I think both #1 and #2 are necessary. We cannot expect the OS always follows >> the rule. > > Sure, ultimately we want both. The question whether to limit ourselves > to one of them is merely for the immediate 4.3 release. If talking about 4.3 release, I agree with you. #2 is non-intrusive. Best regards, Yang ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features 2013-06-21 16:25 ` George Dunlap 2013-06-24 1:00 ` Zhang, Yang Z @ 2013-06-24 6:26 ` Jan Beulich 1 sibling, 0 replies; 10+ messages in thread From: Jan Beulich @ 2013-06-24 6:26 UTC (permalink / raw) To: George Dunlap Cc: Keir Fraser, Eddie Dong, xen-devel, paul.durrant, Jun Nakajima, Yang Z Zhang >>> On 21.06.13 at 18:25, George Dunlap <george.dunlap@eu.citrix.com> wrote: > It's a bit hard to tell which one of 1 or 2 is the lowest risk from a > release perspective -- my instinct is to go with #1 (assuming I've > understood it correctly), as it relies on expected behavior of the > hardware, not on expected behavior of Windows. But I think whichever > you think is best is fine with me, as long as you get an Ack from Paul > for #2. If you prefer #1, I'm fine with that. I proposed #2 to be it just because it's less of a change. For us to go with #1, let me split off the cleanup aspects of it into a separate patch; we'd want an ack from a VMX maintainer for it perhaps just as much as that from Paul for #2. Jan ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-06-24 6:26 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-06-21 10:31 [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features Jan Beulich 2013-06-21 10:36 ` [PATCH RFC 1/3] VMX: VMX: fix interaction of APIC-V and Viridian emulation Jan Beulich 2013-06-21 10:37 ` [PATCH RFC 2/3] VMX/Viridian: suppress MSR-based APIC suggestion when having APIC-V Jan Beulich 2013-06-21 10:38 ` [PATCH RFC 3/3] Viridian: populate CPUID leaf 6 Jan Beulich 2013-06-21 13:57 ` [PATCH RFC 0/3] VMX: fix interaction of Viridian emulation with advanced features Jan Beulich 2013-06-21 16:25 ` George Dunlap 2013-06-24 1:00 ` Zhang, Yang Z 2013-06-24 6:22 ` Jan Beulich 2013-06-24 6:25 ` Zhang, Yang Z 2013-06-24 6:26 ` Jan Beulich
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.