All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: "Jiang, Yunhong" <yunhong.jiang@intel.com>
Cc: "Kleen, Andi" <andi.kleen@intel.com>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	Keir Fraser <keir.fraser@eu.citrix.com>,
	Jan Beulich <JBeulich@novell.com>
Subject: Re: One question to IST stack for PV guest
Date: Fri, 18 Dec 2009 13:21:45 -0800	[thread overview]
Message-ID: <4B2BF269.5040608@goop.org> (raw)
In-Reply-To: <C8EDE645B81E5141A8C6B2F73FD9265105AE092F76@shzsmsx501.ccr.corp.intel.com>

On 12/18/2009 01:05 AM, Jiang, Yunhong wrote:
> Jeremy/Keir, I'm trying to add vMCA injection to pv_ops dom0.  Because currently we didn't have virtual IST stack support, so I plan to use the kernel stack for vMCE. But Andi told me that this method should have issue if MCE is injected before syscall handler switches to kernel stack. After checking the code, seems this apply in pv_ops dom0, since undo_xen_syscall will switch to user space stack firstly (see following code).
>    

What are the requirements here?  Are these events delivered to dom0 to 
indicate that something needs attention on the machine, or are they 
delivered synchronously to whatever domain is currently running to say 
that something bad needs immediate attention?

> I'm not sure if we really need to switch to user space stack, or we can simply place user stack to oldrsp and don't switch the stack at all, since xen hypervisor has use the kernel stack already.
>
> Another option is to add vIST stack, but that requires changes for dom0/xen interface and is a bit complex.
>    

What about making the call a bit like the failsafe callback, which 
always uses the kernel stack, to deliver these exceptions?  That could 
reshape the kernel stack to conform to the normal stack frame and then 
call the usual arch/x86 handlers.

> I checked the 2.6.18 kernel and seems it have no such issue, because syscall entry in arch/x86_64/kernel/entry-xen.S will use kernel stack directly. (But vMCE injection may have issue still because it use zeroentry).
>
> BTW, Jeremy, seems vNMI support is not included in pvops dom0, will it be supported in future?
>    

There's been no call for it so far, so I hadn't worried about it much.  
I was thinking it might be useful as a debug tool, but I don't know what 
it gets used for normally.

     J

  reply	other threads:[~2009-12-18 21:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-18  9:05 One question to IST stack for PV guest Jiang, Yunhong
2009-12-18 21:21 ` Jeremy Fitzhardinge [this message]
2009-12-18 21:43   ` Kleen, Andi
2009-12-18 21:50     ` Jeremy Fitzhardinge
2009-12-18 22:07       ` Kleen, Andi
2009-12-18 22:26         ` Jeremy Fitzhardinge
2009-12-18 22:57           ` Kleen, Andi
2009-12-19  9:24   ` Ian Campbell
2009-12-19 14:41     ` Jiang, Yunhong
2009-12-23 11:42       ` Ian Campbell
2009-12-19 14:24   ` Jiang, Yunhong

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=4B2BF269.5040608@goop.org \
    --to=jeremy@goop.org \
    --cc=JBeulich@novell.com \
    --cc=andi.kleen@intel.com \
    --cc=keir.fraser@eu.citrix.com \
    --cc=xen-devel@lists.xensource.com \
    --cc=yunhong.jiang@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 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.