From: Haozhong Zhang <haozhong.zhang@intel.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [XTF PATCH 02/16] vvmx: test whether MSR_IA32_FEATURE_CONTROL is set correctly
Date: Mon, 19 Dec 2016 10:20:03 +0800 [thread overview]
Message-ID: <20161219022003.lgbbn3bstmdgdx3y@hz-desktop> (raw)
In-Reply-To: <3b4a9e38-af92-2e79-911d-0487fc3ed301@citrix.com>
On 12/16/16 16:17 +0000, Andrew Cooper wrote:
>On 16/12/16 13:43, Haozhong Zhang wrote:
>> diff --git a/tests/vvmx/msr.c b/tests/vvmx/msr.c
>> new file mode 100644
>> index 0000000..100491d
>> --- /dev/null
>> +++ b/tests/vvmx/msr.c
>> @@ -0,0 +1,67 @@
>> +#include <xtf.h>
>> +
>> +#include <arch/x86/msr-index.h>
>> +
>> +/*
>> + * NB. Guest MSR_IA32_FEATURE_CONTROL is set by Xen hypervisor instead
>> + * by guest firmware or hvmloader, so this test checks whether bits in
>> + * MSR_IA32_FEATURE_CONTROL are set correctly and does not require they
>> + * are all zero.
>> + *
>> + * TODO: If the behavior in above NB is changed in future, remember to
>> + * adjust this test.
>
>What are the purposes of these lock bits on real hardware? I presume it
>is to allow a user choice in the BIOS, but to force the choice to be
>immutable once the OS loads?
>
same as my understanding
>If so, I don't expect Xen's behaviour to ever change. We'd prefer to do
>all configuration like that at the toolstack/hypervisor level, rather
>than the in-guest firmware (if any).
>
OK, then TODO is not necessary at all. My concern was that Intel SDM
says MSR_IA32_FEATURE_CONTROL is cleared to zero when a logical
processor is reset that is not consistent to what Xen currently
presents in HVM domains.
>> + */
>> +static bool test_msr_feature_control(void)
>> +{
>> + bool passed = true;
>> + uint32_t cpuid_feat_ecx = cpuid_ecx(1);
>> + uint64_t msr_feat_ctrl;
>> +
>> + if ( rdmsr_safe(MSR_IA32_FEATURE_CONTROL, &msr_feat_ctrl) )
>> + {
>> + xtf_failure("Fail: fault when rdmsr MSR_IA32_FEATURE_CONTROL\n");
>
>"Fail: Fault when reading MSR_IA32_FEATURE_CONTROL\n" would be slightly
>clearer.
>
will change
>> + passed = false;
>
>The status functions including xtf_failure and xtf_success are sticky,
>worst-takes-priority. Therefore, you don't need the xtf_failure(NULL)
>case in test_main(). You can also even leave via the xtf_success(NULL)
>case and the overall report will be FAILURE.
>
Thanks for reminding me of this which I didn't notice.
>> + goto out;
>
>In the past, I have found it very useful to proceed with as many checks
>as reasonable, even in the face of a failure.
>
>Sometime, a subtle change in Xen can have a cascade failure for the
>guest, and seeing all the failures at once can help identify which area
>went wrong.
>
I'll add case to test vmxon w/ VMX is turned off by hypervisor.
>> + }
>> +
>> + if ( (msr_feat_ctrl & IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX) &&
>> + !(cpuid_feat_ecx & X86_FEATURE_SMX) )
>
>cpu_has_smx please.
>
Will change.
Thanks,
Haozhong
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-12-19 2:20 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-16 13:43 [XTF PATCH 00/16] Add test cases for nested vmxon Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 01/16] vvmx: test whether VMX feature is present in CPUID Haozhong Zhang
2016-12-16 14:40 ` Andrew Cooper
2016-12-19 1:51 ` Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 02/16] vvmx: test whether MSR_IA32_FEATURE_CONTROL is set correctly Haozhong Zhang
2016-12-16 16:17 ` Andrew Cooper
2016-12-19 2:20 ` Haozhong Zhang [this message]
2016-12-19 15:29 ` Andrew Cooper
2016-12-16 13:43 ` [XTF PATCH 03/16] vvmx: test whether MSR_IA32_VMX_BASIC " Haozhong Zhang
2016-12-16 17:19 ` Andrew Cooper
2016-12-19 2:44 ` Haozhong Zhang
2016-12-19 15:41 ` Andrew Cooper
2016-12-20 2:45 ` Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 04/16] vvmx: add C wrappers of vmxon/vmread/vmptrld Haozhong Zhang
2016-12-16 19:03 ` [licensing] was: " Andrew Cooper
2016-12-19 3:20 ` Haozhong Zhang
2016-12-19 14:41 ` Lars Kurth
2016-12-19 15:51 ` Ian Jackson
2016-12-19 15:58 ` Andrew Cooper
2016-12-19 15:20 ` Roger Pau Monné
2016-12-19 15:24 ` Andrew Cooper
2016-12-16 19:47 ` Andrew Cooper
2016-12-19 3:00 ` Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 05/16] vvmx: add a general error handler for VMX instructions Haozhong Zhang
2016-12-16 20:16 ` Andrew Cooper
2016-12-19 3:24 ` Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 06/16] vvmx: test vmxon with CR4.VMXE cleared Haozhong Zhang
2016-12-16 20:25 ` Andrew Cooper
2016-12-19 3:26 ` Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 07/16] vvmx: test vmxon in CPL=3 and out of VMX operation Haozhong Zhang
2016-12-16 20:33 ` Andrew Cooper
2016-12-19 3:35 ` Haozhong Zhang
2016-12-19 16:02 ` Andrew Cooper
2016-12-19 16:02 ` Andrew Cooper
2016-12-16 13:43 ` [XTF PATCH 08/16] vvmx: test vmxon with invalidly wide VMXON region address Haozhong Zhang
2016-12-16 20:40 ` Andrew Cooper
2016-12-19 3:36 ` Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 09/16] vvmx: test vmxon with unaligned " Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 10/16] vvmx: test vmxon with mismatched VMCS revision ID Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 11/16] vvmx: test vmxon with bit 31 of VMCS revision ID set Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 12/16] vvmx: test the correct vmxon Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 13/16] vvmx: test vmxon in VMX root w/ CPL = 0 and w/o current VMCS Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 14/16] vvmx: test vmxon in VMX root w/ CPL = 3 " Haozhong Zhang
2016-12-16 20:59 ` Andrew Cooper
2016-12-19 3:46 ` Haozhong Zhang
2016-12-19 16:07 ` Andrew Cooper
2016-12-20 2:50 ` Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 15/16] vvmx: test vmxon in VMX root w/ CPL = 0 and w/ " Haozhong Zhang
2016-12-16 13:43 ` [XTF PATCH 16/16] vvmx: test vmxon in VMX root w/ CPL = 3 " Haozhong Zhang
2016-12-16 14:12 ` [XTF PATCH 00/16] Add test cases for nested vmxon Andrew Cooper
2016-12-19 1:44 ` Haozhong Zhang
2016-12-19 16:18 ` Andrew Cooper
2016-12-16 21:26 ` Andrew Cooper
2016-12-19 5:31 ` Haozhong Zhang
2016-12-19 16:34 ` Andrew Cooper
2016-12-20 2:32 ` Haozhong Zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161219022003.lgbbn3bstmdgdx3y@hz-desktop \
--to=haozhong.zhang@intel.com \
--cc=andrew.cooper3@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).