[Xen-devel] [PATCH] x86/vmx: Fixup removals from MSR load-lists

2019-04-04 Thread Igor Druzhinin
Commit fd32dcfe ("x86/vmx: Don't leak EFER.NXE into guest context")
introduced a regression on Harpertown and earlier cores (Gen 1 VT-x)
where as soon as guest EFER becomes equal to Xen EFER
(almost any 64-bit VM) stale version of EFER is incorrectly
loaded into a guest causing almost immediate guest failure.

Signed-off-by: Igor Druzhinin 
---
I assume this is a candidate for backporting to stable-4.12.
---
 xen/arch/x86/hvm/vmx/vmcs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 74f2a08..45d1849 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1490,15 +1490,15 @@ int vmx_del_msr(struct vcpu *v, uint32_t msr, enum 
vmx_msr_list_type type)
 switch ( type )
 {
 case VMX_MSR_HOST:
-__vmwrite(VM_EXIT_MSR_LOAD_COUNT, vmx->host_msr_count--);
+__vmwrite(VM_EXIT_MSR_LOAD_COUNT, --vmx->host_msr_count);
 break;
 
 case VMX_MSR_GUEST:
-__vmwrite(VM_EXIT_MSR_STORE_COUNT, vmx->msr_save_count--);
+__vmwrite(VM_EXIT_MSR_STORE_COUNT, --vmx->msr_save_count);
 
 /* Fallthrough */
 case VMX_MSR_GUEST_LOADONLY:
-__vmwrite(VM_ENTRY_MSR_LOAD_COUNT, vmx->msr_load_count--);
+__vmwrite(VM_ENTRY_MSR_LOAD_COUNT, --vmx->msr_load_count);
 break;
 }
 
-- 
2.7.4


___
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [PATCH] x86/vmx: Fixup removals from MSR load-lists

2019-04-04 Thread Andrew Cooper
On 04/04/2019 15:42, Igor Druzhinin wrote:

I'd add "entries" to the subject, which can be done on commit.

> Commit fd32dcfe ("x86/vmx: Don't leak EFER.NXE into guest context")
> introduced a regression on Harpertown and earlier cores (Gen 1 VT-x)
> where as soon as guest EFER becomes equal to Xen EFER
> (almost any 64-bit VM) stale version of EFER is incorrectly
> loaded into a guest causing almost immediate guest failure.
>
> Signed-off-by: Igor Druzhinin 

Reviewed-by: Andrew Cooper 

___
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [PATCH] x86/vmx: Fixup removals from MSR load-lists

2019-04-04 Thread Jan Beulich
>>> On 04.04.19 at 16:42,  wrote:
> Commit fd32dcfe ("x86/vmx: Don't leak EFER.NXE into guest context")
> introduced a regression on Harpertown and earlier cores (Gen 1 VT-x)
> where as soon as guest EFER becomes equal to Xen EFER
> (almost any 64-bit VM) stale version of EFER is incorrectly
> loaded into a guest causing almost immediate guest failure.

I'm afraid this is not an overly helpful description, considering the
actual fix. It's definitely not that commit which has introduced the
bug - vmx_del_msr() has been there before. Hence the bug was
only uncovered by the referenced commit.

With a reference to the actual faulty commit added
Reviewed-by: Jan Beulich 

Jan



___
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [PATCH] x86/vmx: Fixup removals from MSR load-lists

2019-04-08 Thread Tian, Kevin
> From: Igor Druzhinin [mailto:igor.druzhi...@citrix.com]
> Sent: Thursday, April 4, 2019 10:42 PM
> 
> Commit fd32dcfe ("x86/vmx: Don't leak EFER.NXE into guest context")
> introduced a regression on Harpertown and earlier cores (Gen 1 VT-x)
> where as soon as guest EFER becomes equal to Xen EFER
> (almost any 64-bit VM) stale version of EFER is incorrectly
> loaded into a guest causing almost immediate guest failure.
> 
> Signed-off-by: Igor Druzhinin 

Acked-by: Kevin Tian 

___
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel