From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
Wei Liu <wei.liu2@citrix.com>, Jan Beulich <jbeulich@suse.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: [PATCH] libxc: create an initial FPU state for HVM guests
Date: Tue, 13 Oct 2015 18:17:47 +0200 [thread overview]
Message-ID: <561D2EAB.6080402@citrix.com> (raw)
In-Reply-To: <1444743745.23192.91.camel@citrix.com>
El 13/10/15 a les 15.42, Ian Campbell ha escrit:
> On Tue, 2015-10-13 at 15:32 +0200, Roger Pau Monne wrote:
>> Xen always set the FPU as initialized when loading a HVM context, so
>> libxc
>> has to provide a valid FPU context when setting the CPU registers.
>>
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>> Cc: Jan Beulich <jbeulich@suse.com>
>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
>> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>> Cc: Ian Campbell <ian.campbell@citrix.com>
>> Cc: Wei Liu <wei.liu2@citrix.com>
>> ---
>> tools/libxc/xc_dom_x86.c | 34 ++++++++++++++++++++++++++++++++++
>> 1 file changed, 34 insertions(+)
>>
>> diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c
>> index dd331bf..f8d580c 100644
>> --- a/tools/libxc/xc_dom_x86.c
>> +++ b/tools/libxc/xc_dom_x86.c
>> @@ -841,6 +841,23 @@ static int vcpu_hvm(struct xc_dom_image *dom)
>> struct hvm_save_descriptor end_d;
>> HVM_SAVE_TYPE(END) end;
>> } bsp_ctx;
>> + struct {
>> + uint16_t fcw;
>> + uint16_t fsw;
>> + uint8_t ftw;
>> + uint8_t rsvd1;
>> + uint16_t fop;
>> + union {
>> + uint64_t addr;
>> + struct {
>> + uint32_t offs;
>> + uint16_t sel;
>> + uint16_t rsvd;
>> + };
>> + } fip, fdp;
>> + uint32_t mxcsr;
>> + uint32_t mxcsr_mask;
>> + } *fpu_ctxt;
>> uint8_t *full_ctx = NULL;
>> int rc;
>>
>> @@ -908,6 +925,23 @@ static int vcpu_hvm(struct xc_dom_image *dom)
>> /* Set the control registers. */
>> bsp_ctx.cpu.cr0 = X86_CR0_PE | X86_CR0_ET;
>>
>> + /*
>> + * XXX: Set initial FPU state.
>> + *
>> + * This should be removed once Xen is able to know if the
>> + * FPU state saved is valid or not, now Xen always sets
>> + * fpu_initialised to true regardless of the FPU state.
>
> I suppose we aren't just doing that now because there is some complexity in
> doing so? Can that be mentioned in the commit log please.
Yes, this is the easiest way for me to unblock the push gate.
I'm going to work on fixing the CPU save/restore stuff ASAP, but it's
probably going to be a more complex patch(es) involving compatibility
layers and stuff.
I've added the following to the commit message:
This is a stop-gap measure in order to unblock OSSTest Windows 7
failures while a proper fix for the HVM CPU save/restore is being worked on.
Roger.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2015-10-13 16:18 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-13 13:32 [PATCH] libxc: create an initial FPU state for HVM guests Roger Pau Monne
2015-10-13 13:36 ` Andrew Cooper
2015-10-13 13:42 ` Ian Campbell
2015-10-13 16:17 ` Roger Pau Monné [this message]
2015-10-13 14:43 ` Jan Beulich
2015-10-13 16:18 ` Roger Pau Monné
2015-10-14 9:52 ` Jan Beulich
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=561D2EAB.6080402@citrix.com \
--to=roger.pau@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.