All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jan Beulich" <jbeulich@novell.com>
To: Mats Petersson <Mats.Petersson@amd.com>
Cc: xen-devel@lists.xensource.com
Subject: RE: svm vmexit action sequence
Date: Fri, 11 May 2007 09:42:53 +0200	[thread overview]
Message-ID: <46443A9D.76E4.0078.0@novell.com> (raw)

Sorry, yet another question: both variants adjust rSP around the 
vmload/vmrun/vmsave block - since these adjustments are already inverting
one another on 64-bits (and I'm making them so also on 32-bits), I would
think they could equally well both be left off - I think nothing inspects the
host VMCB while the guest is running, and hence nothing can get confused
by these pointing to a different stack slot.

Finally, is there a win of using an adjustment to rSP through add/sub
compared to using a push? I'd like to make the 64-bit save/restore
sequences symmetrical in either both skipping the RAX slot or both
pushing/popping a value (the pop would obviously go to a different
register, as the value must be discarded). I would even consider
replacing the whole push/pop sequences by using moves - this ought
to be faster, despite creating bigger code (assuming that the
throughput of moves is higher than that of back-to-back pushes/pops).

Jan

>>> "Petersson, Mats" <Mats.Petersson@amd.com> 10.05.07 18:12 >>>


> -----Original Message-----
> From: xen-devel-bounces@lists.xensource.com 
> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of 
> Jan Beulich
> Sent: 10 May 2007 17:02
> To: xen-devel@lists.xensource.com 
> Subject: [Xen-devel] svm vmexit action sequence
> 
> Is there any particular reason why on 32-bits the order is VMLOAD then
> HVM_SAVE_ALL_NOSEGREGS, while on 64-bits its is the other way around?
> Trying to put in the saving of EAX, I could save a 
> GET_CURRENT() on 32-bits
> if I could order things the same way as on 64-bits.

I don't see any reason why these shouldn't be the same (or at least as
similar as possible).
> 
> Also, both versions seem to have a redundant GET_CURRENT() right after
> the clgi/sti sequence - again, is there a particular reason for this?

No reason as far as I can tell. Assuming rbx (in 64-bit case) isn't
clobbered by called functions, that is. I can't remember for 64-bit if
rbx is "safe" or not. [It certainly is safe in 32-bit]. 

Thanks for spotting these things.

--
Mats
> 
> Thanks, Jan
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com 
> http://lists.xensource.com/xen-devel 
> 
> 
> 

             reply	other threads:[~2007-05-11  7:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-11  7:42 Jan Beulich [this message]
2007-05-11  7:51 ` svm vmexit action sequence Keir Fraser
  -- strict thread matches above, loose matches on Subject: below --
2007-05-10 16:01 Jan Beulich
2007-05-10 16:12 ` Petersson, Mats
2007-05-11  7:28   ` Jan Beulich
2007-05-11  7:37     ` Keir Fraser

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=46443A9D.76E4.0078.0@novell.com \
    --to=jbeulich@novell.com \
    --cc=Mats.Petersson@amd.com \
    --cc=xen-devel@lists.xensource.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 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.