From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
Subject: Re: fpu_taskswitch adjustment proposal
Date: Mon, 18 Jun 2012 14:24:51 -0400 [thread overview]
Message-ID: <20120618182450.GF24750@phenom.dumpdata.com> (raw)
In-Reply-To: <4FDEF595020000780008A5B7@nat28.tlf.novell.com>
On Mon, Jun 18, 2012 at 08:32:05AM +0100, Jan Beulich wrote:
> >>> On 15.06.12 at 19:06, Keir Fraser <keir@xen.org> wrote:
> > On 15/06/2012 17:03, "Jan Beulich" <JBeulich@suse.com> wrote:
> >
> >> While pv-ops so far doesn't care to eliminate the two trap-and-
> >> emulate CR0 accesses from the asm/xor.h save/restore
> >> operations, the legacy x86-64 kernel uses conditional clts()/stts()
> >> for this purpose. While looking into whether to extend this to the
> >> newly added (in 3.5) AVX operations there I realized that this isn't
> >> fully correct: It doesn't properly nest inside a kernel_fpu_begin()/
> >> kernel_fpu_end() pair (as it will stts() at the end no matter what
> >> the original state of CR0.TS was).
That sounds like a bug in the generic code then?
> >>
> >> In order to not introduce completely new hypercalls to overcome
> >> this (fpu_taskswitch isn't really extensible on its own), I'm
> >> considering to add a new VM assist, altering the fpu_taskswitch
> >> behavior so that it would return an indicator whether any change
> >> to the virtual CR0.TS was done. That way, the kernel can
> >> implement a true save/restore cycle here.
How would that work with the multi-calls? Right now clts is batched
and so is cr0 write.
> >
> > It should be possible for the guest kernel to track its CR0.TS setting
> > shouldn't it? It gets modified only via a few paravirt hooks, and implicitly
Hm, the clts() paravirt could take advantage of the per-cpu cr0 to
figure out whether it truly needs to do anything.
> > cleared on #NM.
> Sure, but selling this to the Linux maintainers I would expect to be
> harder than fitting the Xen side of things into the current save-
> and-restore model the native xor code uses. It would only be strait
> forward to implement on the legacy, forward ported trees.
>
> However, with the #NM handler in pv-ops apparently not
> leveraging the fact that CR0.TS is already cleared for it on entry,
> maybe this could indeed be introduced together. Konrad?
Would this require an extra pvops call from the #NM handler?
>
> Jan
next prev parent reply other threads:[~2012-06-18 18:24 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-15 16:03 fpu_taskswitch adjustment proposal Jan Beulich
2012-06-15 17:06 ` Keir Fraser
2012-06-18 7:32 ` Jan Beulich
2012-06-18 12:12 ` Keir Fraser
2012-06-18 12:45 ` Jan Beulich
2012-06-18 13:59 ` Keir Fraser
2012-06-18 18:24 ` Konrad Rzeszutek Wilk [this message]
2012-06-18 22:35 ` Keir Fraser
2012-06-26 16:25 ` 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=20120618182450.GF24750@phenom.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=JBeulich@suse.com \
--cc=keir@xen.org \
--cc=xen-devel@lists.xen.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.