RE: [PATCH 0/24] Nested VMX, v5

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Dong, Eddie
Date: Friday, July 9, 2010 - 1:59 am

Nadav Har'El wrote:

Nadav & All:
	Thnaks for the posting and in general the patches are well written. I like the concept of VMCSxy and I feel it is pretty clear (better than my previous naming as well), but there are some confusing inside, especially for the term "shadow" which I feel quit hard.

	Comments from me:
	1: Basically there are 2 diferent type in VMCS, one is defined by hardware, whose layout is unknown to VMM. Another one is defined by VMM (this patch) and used for vmcs12.

	The former one is using "struct vmcs" to describe its data instance, but the later one doesn't have a clear definition (or struct vmcs12?). I suggest we can have a distinguish struct for this, for example "struct sw_vmcs"(software vmcs), or "struct vvmcs" (virtual vmcs).

	2: vmcsxy (vmcs12, vmcs02, vmcs01) are for instances of either "struct vmcs", or "struct sw_vmcs", but not for struct Clear distinguish between data structure and instance helps IMO.

	3: We may use prefix or suffix in addition to vmcsxy to explictly state the format of that instance. For example vmcs02 in current patch is for hardware use, hence it is an instance "struct vmcs", but vmcs01 is an instance of "struct sw_vmcs". Postfix and prefix helps to make better understand.

	4: Rename l2_vmcs to vmcs02, l1_shadow_vmcs to vmcs01, l1_vmcs to vmcs02, with prefix/postfix can strengthen above concept of vmcsxy.


	5: guest VMPTRLD emulation. Current patch creates vmcs02 instance each time when guest VMPTRLD, and free the instance at VMCLEAR. The code may fail if the vmcs (un-vmcleared) exceeds certain threshold to avoid denial of service. That is fine, but it brings additional complexity and may pay with a lot of memory. I think we can emulate using concept of "cached vmcs" here in case L1 VMM doesn't do vmclear in time.  L0 VMM can simply flush those vmcs02 to guest memory i.e. vmcs12 per need. For example if the cached vcs02 exceeds 10, we can do automatically flush.


Thx, Eddie




	--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/24] Nested VMX, v5, Nadav Har'El, (Sun Jun 13, 5:22 am)
[PATCH 1/24] Move nested option from svm.c to x86.c, Nadav Har'El, (Sun Jun 13, 5:23 am)
[PATCH 3/24] Implement VMXON and VMXOFF, Nadav Har'El, (Sun Jun 13, 5:24 am)
[PATCH 4/24] Allow setting the VMXE bit in CR4, Nadav Har'El, (Sun Jun 13, 5:24 am)
[PATCH 5/24] Introduce vmcs12: a VMCS structure for L1, Nadav Har'El, (Sun Jun 13, 5:25 am)
[PATCH 6/24] Implement reading and writing of VMX MSRs, Nadav Har'El, (Sun Jun 13, 5:25 am)
[PATCH 8/24] Hold a vmcs02 for each vmcs12, Nadav Har'El, (Sun Jun 13, 5:26 am)
[PATCH 9/24] Implement VMCLEAR, Nadav Har'El, (Sun Jun 13, 5:27 am)
[PATCH 10/24] Implement VMPTRLD, Nadav Har'El, (Sun Jun 13, 5:27 am)
[PATCH 11/24] Implement VMPTRST, Nadav Har'El, (Sun Jun 13, 5:28 am)
[PATCH 12/24] Add VMCS fields to the vmcs12, Nadav Har'El, (Sun Jun 13, 5:28 am)
[PATCH 13/24] Implement VMREAD and VMWRITE, Nadav Har'El, (Sun Jun 13, 5:29 am)
[PATCH 14/24] Prepare vmcs02 from vmcs01 and vmcs12, Nadav Har'El, (Sun Jun 13, 5:29 am)
[PATCH 15/24] Move register-syncing to a function, Nadav Har'El, (Sun Jun 13, 5:30 am)
[PATCH 16/24] Implement VMLAUNCH and VMRESUME, Nadav Har'El, (Sun Jun 13, 5:30 am)
[PATCH 18/24] Exiting from L2 to L1, Nadav Har'El, (Sun Jun 13, 5:31 am)
[PATCH 20/24] Correct handling of interrupt injection, Nadav Har'El, (Sun Jun 13, 5:32 am)
[PATCH 21/24] Correct handling of exception injection, Nadav Har'El, (Sun Jun 13, 5:33 am)
[PATCH 22/24] Correct handling of idt vectoring info, Nadav Har'El, (Sun Jun 13, 5:33 am)
[PATCH 24/24] Miscellenous small corrections, Nadav Har'El, (Sun Jun 13, 5:34 am)
Re: [PATCH 3/24] Implement VMXON and VMXOFF, Avi Kivity, (Mon Jun 14, 1:21 am)
Re: [PATCH 8/24] Hold a vmcs02 for each vmcs12, Avi Kivity, (Mon Jun 14, 1:57 am)
Re: [PATCH 9/24] Implement VMCLEAR, Avi Kivity, (Mon Jun 14, 2:03 am)
Re: [PATCH 10/24] Implement VMPTRLD, Avi Kivity, (Mon Jun 14, 2:07 am)
Re: [PATCH 11/24] Implement VMPTRST, Avi Kivity, (Mon Jun 14, 2:15 am)
Re: [PATCH 12/24] Add VMCS fields to the vmcs12, Avi Kivity, (Mon Jun 14, 2:24 am)
Re: [PATCH 13/24] Implement VMREAD and VMWRITE, Avi Kivity, (Mon Jun 14, 2:36 am)
Re: [PATCH 16/24] Implement VMLAUNCH and VMRESUME, Avi Kivity, (Mon Jun 14, 4:41 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Avi Kivity, (Mon Jun 14, 5:04 am)
Re: [PATCH 0/24] Nested VMX, v5, Avi Kivity, (Mon Jun 14, 5:34 am)
Re: [PATCH 0/24] Nested VMX, v5, Nadav Har'El, (Mon Jun 14, 6:03 am)
Re: [PATCH 0/24] Nested VMX, v5, Avi Kivity, (Tue Jun 15, 3:00 am)
Re: [PATCH 4/24] Allow setting the VMXE bit in CR4, Gleb Natapov, (Tue Jun 15, 4:09 am)
Re: [PATCH 9/24] Implement VMCLEAR, Gleb Natapov, (Tue Jun 15, 6:47 am)
Re: [PATCH 9/24] Implement VMCLEAR, Avi Kivity, (Tue Jun 15, 6:50 am)
Re: [PATCH 9/24] Implement VMCLEAR, Gleb Natapov, (Tue Jun 15, 6:54 am)
Re: [PATCH 1/24] Move nested option from svm.c to x86.c, Nadav Har'El, (Tue Jun 15, 7:27 am)
Re: [PATCH 4/24] Allow setting the VMXE bit in CR4, Nadav Har'El, (Tue Jun 15, 7:44 am)
Re: [PATCH 3/24] Implement VMXON and VMXOFF, Marcelo Tosatti, (Tue Jun 15, 1:18 pm)
Re: [PATCH 3/24] Implement VMXON and VMXOFF, Nadav Har'El, (Wed Jun 16, 12:50 am)
Re: [PATCH 3/24] Implement VMXON and VMXOFF, Nadav Har'El, (Wed Jun 16, 4:14 am)
Re: [PATCH 3/24] Implement VMXON and VMXOFF, Avi Kivity, (Wed Jun 16, 4:26 am)
Re: [PATCH 10/24] Implement VMPTRLD, Gleb Natapov, (Wed Jun 16, 6:36 am)
Re: [PATCH 11/24] Implement VMPTRST, Gleb Natapov, (Wed Jun 16, 6:53 am)
Re: [PATCH 12/24] Add VMCS fields to the vmcs12, Gleb Natapov, (Wed Jun 16, 7:18 am)
Re: [PATCH 13/24] Implement VMREAD and VMWRITE, Gleb Natapov, (Wed Jun 16, 7:48 am)
Re: [PATCH 13/24] Implement VMREAD and VMWRITE, Gleb Natapov, (Wed Jun 16, 8:03 am)
Re: [PATCH 11/24] Implement VMPTRST, Nadav Har'El, (Wed Jun 16, 8:33 am)
Re: [PATCH 14/24] Prepare vmcs02 from vmcs01 and vmcs12, Gleb Natapov, (Thu Jun 17, 1:50 am)
Re: [PATCH 16/24] Implement VMLAUNCH and VMRESUME, Gleb Natapov, (Thu Jun 17, 3:59 am)
Re: [PATCH 5/24] Introduce vmcs12: a VMCS structure for L1, Alexander Graf, (Wed Jun 23, 2:15 am)
RE: [PATCH 9/24] Implement VMCLEAR, Dong, Eddie, (Mon Jul 5, 7:56 pm)
RE: [PATCH 10/24] Implement VMPTRLD, Dong, Eddie, (Mon Jul 5, 8:09 pm)
RE: [PATCH 8/24] Hold a vmcs02 for each vmcs12, Dong, Eddie, (Tue Jul 6, 2:50 am)
RE: [PATCH 0/24] Nested VMX, v5, Dong, Eddie, (Fri Jul 9, 1:59 am)
Re: [PATCH 0/24] Nested VMX, v5, Nadav Har'El, (Sun Jul 11, 1:27 am)
Re: [PATCH 0/24] Nested VMX, v5, Alexander Graf, (Sun Jul 11, 4:05 am)
Re: [PATCH 0/24] Nested VMX, v5, Nadav Har'El, (Sun Jul 11, 5:49 am)
Re: [PATCH 0/24] Nested VMX, v5, Avi Kivity, (Sun Jul 11, 6:12 am)
Re: [PATCH 0/24] Nested VMX, v5, Avi Kivity, (Sun Jul 11, 6:20 am)
Re: [PATCH 0/24] Nested VMX, v5, Nadav Har'El, (Sun Jul 11, 8:39 am)
Re: [PATCH 0/24] Nested VMX, v5, Avi Kivity, (Sun Jul 11, 8:45 am)
Re: [PATCH 0/24] Nested VMX, v5, Sheng Yang, (Wed Jul 14, 8:27 pm)
Re: [PATCH 8/24] Hold a vmcs02 for each vmcs12, Nadav Har'El, (Mon Aug 2, 6:38 am)
Re: [PATCH 9/24] Implement VMCLEAR, Nadav Har'El, (Tue Aug 3, 5:12 am)
Re: [PATCH 13/24] Implement VMREAD and VMWRITE, Nadav Har'El, (Wed Aug 4, 4:46 am)
Re: [PATCH 13/24] Implement VMREAD and VMWRITE, Nadav Har'El, (Wed Aug 4, 6:42 am)
Re: [PATCH 13/24] Implement VMREAD and VMWRITE, Nadav Har'El, (Wed Aug 4, 9:09 am)
Re: [PATCH 13/24] Implement VMREAD and VMWRITE, Avi Kivity, (Wed Aug 4, 9:41 am)
Re: [PATCH 10/24] Implement VMPTRLD, Nadav Har'El, (Thu Aug 5, 4:13 am)
Re: [PATCH 10/24] Implement VMPTRLD, Nadav Har'El, (Thu Aug 5, 4:35 am)
Re: [PATCH 9/24] Implement VMCLEAR, Nadav Har'El, (Thu Aug 5, 4:50 am)
Re: [PATCH 9/24] Implement VMCLEAR, Gleb Natapov, (Thu Aug 5, 4:53 am)
Re: [PATCH 9/24] Implement VMCLEAR, Nadav Har'El, (Thu Aug 5, 5:01 am)
Re: [PATCH 9/24] Implement VMCLEAR, Avi Kivity, (Thu Aug 5, 5:03 am)
Re: [PATCH 9/24] Implement VMCLEAR, Avi Kivity, (Thu Aug 5, 5:05 am)
Re: [PATCH 9/24] Implement VMCLEAR, Nadav Har'El, (Thu Aug 5, 5:10 am)
Re: [PATCH 9/24] Implement VMCLEAR, Avi Kivity, (Thu Aug 5, 5:13 am)
Re: [PATCH 9/24] Implement VMCLEAR, Nadav Har'El, (Thu Aug 5, 5:29 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Nadav Har'El, (Sun Sep 12, 7:05 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Avi Kivity, (Sun Sep 12, 7:29 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Nadav Har'El, (Sun Sep 12, 10:05 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Avi Kivity, (Sun Sep 12, 10:21 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Nadav Har'El, (Sun Sep 12, 12:51 pm)
Re: [PATCH 18/24] Exiting from L2 to L1, Sheng Yang, (Sun Sep 12, 10:53 pm)
Re: [PATCH 18/24] Exiting from L2 to L1, Avi Kivity, (Mon Sep 13, 1:48 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Avi Kivity, (Mon Sep 13, 1:52 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Nadav Har'El, (Mon Sep 13, 2:01 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Avi Kivity, (Mon Sep 13, 2:34 am)
Re: [PATCH 18/24] Exiting from L2 to L1, Nadav Har'El, (Tue Sep 14, 6:07 am)
Re: [PATCH 16/24] Implement VMLAUNCH and VMRESUME, Nadav Har'El, (Thu Sep 16, 9:06 am)
Re: [PATCH 22/24] Correct handling of idt vectoring info, Nadav Har'El, (Sun Sep 19, 11:37 pm)
Re: [PATCH 16/24] Implement VMLAUNCH and VMRESUME, Nadav Har'El, (Sun Sep 26, 4:14 am)
Re: [PATCH 16/24] Implement VMLAUNCH and VMRESUME, Avi Kivity, (Sun Sep 26, 5:56 am)
Re: [PATCH 16/24] Implement VMLAUNCH and VMRESUME, Nadav Har'El, (Sun Sep 26, 6:06 am)
Re: [PATCH 16/24] Implement VMLAUNCH and VMRESUME, Avi Kivity, (Sun Sep 26, 6:51 am)
Re: [PATCH 0/24] Nested VMX, v5, Nadav Har'El, (Sun Oct 17, 5:03 am)
Re: [PATCH 0/24] Nested VMX, v5, Avi Kivity, (Sun Oct 17, 5:10 am)
Re: [PATCH 0/24] Nested VMX, v5, Nadav Har'El, (Sun Oct 17, 5:39 am)
Re: [PATCH 0/24] Nested VMX, v5, Avi Kivity, (Sun Oct 17, 6:35 am)