diff mbox

KVM: nVMX: Advertise IA32_PAT in VM exit control

Message ID 1375693835-10988-1-git-send-email-yzt356@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Arthur Chunqi Li Aug. 5, 2013, 9:10 a.m. UTC
Advertise VM_EXIT_SAVE_IA32_PAT and VM_EXIT_LOAD_IA32_PAT.

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
---
 arch/x86/kvm/vmx.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Gleb Natapov Aug. 5, 2013, 9:33 a.m. UTC | #1
On Mon, Aug 05, 2013 at 05:10:35PM +0800, Arthur Chunqi Li wrote:
> Advertise VM_EXIT_SAVE_IA32_PAT and VM_EXIT_LOAD_IA32_PAT.
> 
> Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
> ---
>  arch/x86/kvm/vmx.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 45fd70c..240f0db 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -2198,7 +2198,8 @@ static __init void nested_vmx_setup_ctls_msrs(void)
>  #else
>  	nested_vmx_exit_ctls_high = 0;
>  #endif
> -	nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR;
> +	nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
> +		VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
>  
You should not set those if host does not support them, otherwise
GUEST_IA32_PAT may not be available.

--
			Gleb.
--
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
Arthur Chunqi Li Aug. 5, 2013, 9:36 a.m. UTC | #2
> On Mon, Aug 05, 2013 at 05:10:35PM +0800, Arthur Chunqi Li wrote:
>> Advertise VM_EXIT_SAVE_IA32_PAT and VM_EXIT_LOAD_IA32_PAT.
>> 
>> Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
>> ---
>> arch/x86/kvm/vmx.c |    3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>> 
>> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
>> index 45fd70c..240f0db 100644
>> --- a/arch/x86/kvm/vmx.c
>> +++ b/arch/x86/kvm/vmx.c
>> @@ -2198,7 +2198,8 @@ static __init void nested_vmx_setup_ctls_msrs(void)
>> #else
>>    nested_vmx_exit_ctls_high = 0;
>> #endif
>> -    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR;
>> +    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
>> +        VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
>> 
> You should not set those if host does not support them, otherwise
> GUEST_IA32_PAT may not be available
To Jan,
Is this different from IA32_EFER?

Arthur
> 
> --
>            Gleb.
--
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
Jan Kiszka Aug. 5, 2013, 10:38 a.m. UTC | #3
On 2013-08-05 11:36, Gmail wrote:
> 
> 
>> On Mon, Aug 05, 2013 at 05:10:35PM +0800, Arthur Chunqi Li wrote:
>>> Advertise VM_EXIT_SAVE_IA32_PAT and VM_EXIT_LOAD_IA32_PAT.
>>>
>>> Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
>>> ---
>>> arch/x86/kvm/vmx.c |    3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
>>> index 45fd70c..240f0db 100644
>>> --- a/arch/x86/kvm/vmx.c
>>> +++ b/arch/x86/kvm/vmx.c
>>> @@ -2198,7 +2198,8 @@ static __init void nested_vmx_setup_ctls_msrs(void)
>>> #else
>>>    nested_vmx_exit_ctls_high = 0;
>>> #endif
>>> -    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR;
>>> +    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
>>> +        VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
>>>
>> You should not set those if host does not support them, otherwise
>> GUEST_IA32_PAT may not be available
> To Jan,
> Is this different from IA32_EFER?

As we use a real VMCS to keep GUEST/HOST_IA32_EFER, we actually do
depend on the existence of the host feature. So my patch requires an
update as you noted.

Jan
Gleb Natapov Aug. 5, 2013, 10:55 a.m. UTC | #4
On Mon, Aug 05, 2013 at 12:38:32PM +0200, Jan Kiszka wrote:
> On 2013-08-05 11:36, Gmail wrote:
> > 
> > 
> >> On Mon, Aug 05, 2013 at 05:10:35PM +0800, Arthur Chunqi Li wrote:
> >>> Advertise VM_EXIT_SAVE_IA32_PAT and VM_EXIT_LOAD_IA32_PAT.
> >>>
> >>> Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
> >>> ---
> >>> arch/x86/kvm/vmx.c |    3 ++-
> >>> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> >>> index 45fd70c..240f0db 100644
> >>> --- a/arch/x86/kvm/vmx.c
> >>> +++ b/arch/x86/kvm/vmx.c
> >>> @@ -2198,7 +2198,8 @@ static __init void nested_vmx_setup_ctls_msrs(void)
> >>> #else
> >>>    nested_vmx_exit_ctls_high = 0;
> >>> #endif
> >>> -    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR;
> >>> +    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
> >>> +        VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
> >>>
> >> You should not set those if host does not support them, otherwise
> >> GUEST_IA32_PAT may not be available
> > To Jan,
> > Is this different from IA32_EFER?
> 
> As we use a real VMCS to keep GUEST/HOST_IA32_EFER, we actually do
> depend on the existence of the host feature. So my patch requires an
> update as you noted.
> 
Your patch didn't add new users of GUEST_IA32_PAT and
VM_ENTRY_LOAD_IA32_PAT is enabled by nested only if host has it, so I am
not sure why you are saying that patch should be updated.


--
			Gleb.
--
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
Arthur Chunqi Li Aug. 5, 2013, 11 a.m. UTC | #5
On Mon, Aug 5, 2013 at 6:55 PM, Gleb Natapov <gleb@redhat.com> wrote:
> On Mon, Aug 05, 2013 at 12:38:32PM +0200, Jan Kiszka wrote:
>> On 2013-08-05 11:36, Gmail wrote:
>> >
>> >
>> >> On Mon, Aug 05, 2013 at 05:10:35PM +0800, Arthur Chunqi Li wrote:
>> >>> Advertise VM_EXIT_SAVE_IA32_PAT and VM_EXIT_LOAD_IA32_PAT.
>> >>>
>> >>> Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
>> >>> ---
>> >>> arch/x86/kvm/vmx.c |    3 ++-
>> >>> 1 file changed, 2 insertions(+), 1 deletion(-)
>> >>>
>> >>> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
>> >>> index 45fd70c..240f0db 100644
>> >>> --- a/arch/x86/kvm/vmx.c
>> >>> +++ b/arch/x86/kvm/vmx.c
>> >>> @@ -2198,7 +2198,8 @@ static __init void nested_vmx_setup_ctls_msrs(void)
>> >>> #else
>> >>>    nested_vmx_exit_ctls_high = 0;
>> >>> #endif
>> >>> -    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR;
>> >>> +    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
>> >>> +        VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
>> >>>
>> >> You should not set those if host does not support them, otherwise
>> >> GUEST_IA32_PAT may not be available
>> > To Jan,
>> > Is this different from IA32_EFER?
>>
>> As we use a real VMCS to keep GUEST/HOST_IA32_EFER, we actually do
>> depend on the existence of the host feature. So my patch requires an
>> update as you noted.
>>
> Your patch didn't add new users of GUEST_IA32_PAT and
> VM_ENTRY_LOAD_IA32_PAT is enabled by nested only if host has it, so I am
> not sure why you are saying that patch should be updated.
I think Jan points [1] and you refer to another.

[1] http://www.mail-archive.com/kvm@vger.kernel.org/msg94188.html

Arthur
>
>
> --
>                         Gleb.
--
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
Jan Kiszka Aug. 5, 2013, 11:04 a.m. UTC | #6
On 2013-08-05 13:00, Arthur Chunqi Li wrote:
> On Mon, Aug 5, 2013 at 6:55 PM, Gleb Natapov <gleb@redhat.com> wrote:
>> On Mon, Aug 05, 2013 at 12:38:32PM +0200, Jan Kiszka wrote:
>>> On 2013-08-05 11:36, Gmail wrote:
>>>>
>>>>
>>>>> On Mon, Aug 05, 2013 at 05:10:35PM +0800, Arthur Chunqi Li wrote:
>>>>>> Advertise VM_EXIT_SAVE_IA32_PAT and VM_EXIT_LOAD_IA32_PAT.
>>>>>>
>>>>>> Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
>>>>>> ---
>>>>>> arch/x86/kvm/vmx.c |    3 ++-
>>>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
>>>>>> index 45fd70c..240f0db 100644
>>>>>> --- a/arch/x86/kvm/vmx.c
>>>>>> +++ b/arch/x86/kvm/vmx.c
>>>>>> @@ -2198,7 +2198,8 @@ static __init void nested_vmx_setup_ctls_msrs(void)
>>>>>> #else
>>>>>>    nested_vmx_exit_ctls_high = 0;
>>>>>> #endif
>>>>>> -    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR;
>>>>>> +    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
>>>>>> +        VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
>>>>>>
>>>>> You should not set those if host does not support them, otherwise
>>>>> GUEST_IA32_PAT may not be available
>>>> To Jan,
>>>> Is this different from IA32_EFER?
>>>
>>> As we use a real VMCS to keep GUEST/HOST_IA32_EFER, we actually do
>>> depend on the existence of the host feature. So my patch requires an
>>> update as you noted.
>>>
>> Your patch didn't add new users of GUEST_IA32_PAT and
>> VM_ENTRY_LOAD_IA32_PAT is enabled by nested only if host has it, so I am
>> not sure why you are saying that patch should be updated.
> I think Jan points [1] and you refer to another.
> 
> [1] http://www.mail-archive.com/kvm@vger.kernel.org/msg94188.html

Yep, that's what I was referring to.

Jan
Gleb Natapov Aug. 5, 2013, 11:05 a.m. UTC | #7
On Mon, Aug 05, 2013 at 01:04:25PM +0200, Jan Kiszka wrote:
> On 2013-08-05 13:00, Arthur Chunqi Li wrote:
> > On Mon, Aug 5, 2013 at 6:55 PM, Gleb Natapov <gleb@redhat.com> wrote:
> >> On Mon, Aug 05, 2013 at 12:38:32PM +0200, Jan Kiszka wrote:
> >>> On 2013-08-05 11:36, Gmail wrote:
> >>>>
> >>>>
> >>>>> On Mon, Aug 05, 2013 at 05:10:35PM +0800, Arthur Chunqi Li wrote:
> >>>>>> Advertise VM_EXIT_SAVE_IA32_PAT and VM_EXIT_LOAD_IA32_PAT.
> >>>>>>
> >>>>>> Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
> >>>>>> ---
> >>>>>> arch/x86/kvm/vmx.c |    3 ++-
> >>>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>>>>>
> >>>>>> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> >>>>>> index 45fd70c..240f0db 100644
> >>>>>> --- a/arch/x86/kvm/vmx.c
> >>>>>> +++ b/arch/x86/kvm/vmx.c
> >>>>>> @@ -2198,7 +2198,8 @@ static __init void nested_vmx_setup_ctls_msrs(void)
> >>>>>> #else
> >>>>>>    nested_vmx_exit_ctls_high = 0;
> >>>>>> #endif
> >>>>>> -    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR;
> >>>>>> +    nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
> >>>>>> +        VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
> >>>>>>
> >>>>> You should not set those if host does not support them, otherwise
> >>>>> GUEST_IA32_PAT may not be available
> >>>> To Jan,
> >>>> Is this different from IA32_EFER?
> >>>
> >>> As we use a real VMCS to keep GUEST/HOST_IA32_EFER, we actually do
> >>> depend on the existence of the host feature. So my patch requires an
> >>> update as you noted.
> >>>
> >> Your patch didn't add new users of GUEST_IA32_PAT and
> >> VM_ENTRY_LOAD_IA32_PAT is enabled by nested only if host has it, so I am
> >> not sure why you are saying that patch should be updated.
> > I think Jan points [1] and you refer to another.
> > 
> > [1] http://www.mail-archive.com/kvm@vger.kernel.org/msg94188.html
> 
> Yep, that's what I was referring to.
> 
Ah, too many patches :)

--
			Gleb.
--
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
diff mbox

Patch

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 45fd70c..240f0db 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -2198,7 +2198,8 @@  static __init void nested_vmx_setup_ctls_msrs(void)
 #else
 	nested_vmx_exit_ctls_high = 0;
 #endif
-	nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR;
+	nested_vmx_exit_ctls_high |= VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
+		VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
 
 	/* entry controls */
 	rdmsr(MSR_IA32_VMX_ENTRY_CTLS,