From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Yu Zhang <yu.c.zhang@linux.intel.com>,
Wei Liu <wei.liu2@citrix.com>,
Xen-devel <xen-devel@lists.xenproject.org>
Cc: Haozhong Zhang <haozhong.zhang@intel.com>,
qian.ouyang@intel.com, Jan Beulich <JBeulich@suse.com>
Subject: Re: [DO NOT APPLY PATCH XTF 0/2] UMIP test case
Date: Thu, 2 Mar 2017 12:39:33 +0000 [thread overview]
Message-ID: <778f948c-fdb7-7557-0f8c-0c6c29571cff@citrix.com> (raw)
In-Reply-To: <58B8104D.9000908@linux.intel.com>
On 02/03/17 12:30, Yu Zhang wrote:
> Wah. Thank you, Andrew & Wei. :-)
>
> On 3/2/2017 5:05 PM, Andrew Cooper wrote:
>> On 02/03/2017 08:42, Wei Liu wrote:
>>> I wrote this long time ago before UMIP was merged.
>>>
>>> Yu, since you asked, I might as well post it for your reference on
>>> how to
>>> do it with XTF.
>>>
>>> This series is not yet tested in any way.
>> Unfortunately, you execute all of the sensitive instructions in kernel
>> mode, where they wouldn't fault even with UMIP active.
>>
>> For full testing of a feature like this, the test should include a check
>> that the ability to modify CR4.UMIP depends strictly on the visibility
>> of the feature, that uses in the kernel still continue to work, even
>> when active, and that behaviour returns back to normal after the feature
>> has been deactivated.
>
> So, before cr4 is written, a cpuid is needed first in the test code,
> right?
Yes, but that is performed automatically by the framework for
convenience. The predicate cpu_has_umip will work fine for your test.
>
> But besides the emulation of cpuid and cr4, my understanding is that
> hypervisor need to inject a GP fault if an instruction causes a VM
> exit, right? This should be different than the normal GP fault inside
> a VM, and how do we test this code path?
Using the Force Emulation Prefix. This breaks out to the hypervisor and
runs the instruction through the emulator. You should test both that
the native instructions behave as expected, and that once forced, the
instructions also behave sensibly.
The FEP test is to cover alternative cases with would require emulation
normally (e.g. memory operand hitting an MMIO region, or the page marked
NX in EPT because of VM instrospection being active).
>
> Our QA and I may need to have a study of the XTF, and may probably
> seek for your help in the future. :-)
> Anyway, thanks a lot!
Haozhong (CC'd) has previously used XTF for a load of nested-virt
testing, if you'd like an alternative opinion, (although I do hope you
find XTF easy to use and useful).
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
prev parent reply other threads:[~2017-03-02 12:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-02 2:33 About UMIP unit test Yu Zhang
2017-03-02 8:06 ` Andrew Cooper
2017-03-02 8:42 ` [DO NOT APPLY PATCH XTF 0/2] UMIP test case Wei Liu
2017-03-02 8:42 ` [DO NOT APPLY PATCH XTF 1/2] x86: add UMIP feature bit Wei Liu
2017-03-02 8:42 ` [DO NOT APPLY PATCH XTF 2/2] Add UMIP test Wei Liu
2017-03-02 9:05 ` [DO NOT APPLY PATCH XTF 0/2] UMIP test case Andrew Cooper
2017-03-02 10:53 ` Wei Liu
2017-03-02 12:30 ` Yu Zhang
2017-03-02 12:39 ` Andrew Cooper [this message]
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=778f948c-fdb7-7557-0f8c-0c6c29571cff@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=JBeulich@suse.com \
--cc=haozhong.zhang@intel.com \
--cc=qian.ouyang@intel.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.org \
--cc=yu.c.zhang@linux.intel.com \
/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).