All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hollis Blanchard <hollisb@us.ibm.com>
To: Keir Fraser <keir@xensource.com>
Cc: xen-devel <xen-devel@lists.xensource.com>,
	xen-ppc-devel <xen-ppc-devel@lists.xensource.com>
Subject: Re: [Xen-devel] schedule() vs softirqs
Date: Fri, 15 Dec 2006 13:09:41 -0600	[thread overview]
Message-ID: <1166209782.18449.40.camel@basalt> (raw)
In-Reply-To: <C1A88D8D.628A%keir@xensource.com>

On Fri, 2006-12-15 at 17:36 +0000, Keir Fraser wrote:
> On 15/12/06 17:27, "Hollis Blanchard" <hollisb@us.ibm.com> wrote:
> 
> > We recently uncovered a bug on PowerPC where if a timer tick arrives
> > just inside schedule() while interrupts are still enabled, the
> > decrementer is never reprogrammed to that appropriate value. This is
> > because once inside schedule(), we never handle any subsequent softirqs:
> > we call context_switch() and resume the guest.
> 
> Easily fixed. You need to handle softirqs in the exit path to guest context.
> You need to do this final check with interrupts disabled to avoid races.

Ah OK, I see now how x86 is doing that. I don't think that code flow
really makes sense: why would you jump out of do_softirq() into assembly
just to call do_softirq() again?

Also, that doesn't solve the lazy register saving problem.

However, I think I see how we can implement our desired context_switch()
scheme in arch-specific code. The context_switch() call in schedule()
will return, so please don't add a BUG() after that. :)

-- 
Hollis Blanchard
IBM Linux Technology Center

  reply	other threads:[~2006-12-15 19:09 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-15 17:27 schedule() vs softirqs Hollis Blanchard
2006-12-15 17:36 ` Keir Fraser
2006-12-15 19:09   ` Hollis Blanchard [this message]
2006-12-15 20:00     ` Keir Fraser
2006-12-15 20:41       ` Hollis Blanchard
2006-12-15 21:39         ` Keir Fraser
2006-12-15 23:51           ` Hollis Blanchard

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=1166209782.18449.40.camel@basalt \
    --to=hollisb@us.ibm.com \
    --cc=keir@xensource.com \
    --cc=xen-devel@lists.xensource.com \
    --cc=xen-ppc-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.