From: Chuck Anderson <chuck.anderson@oracle.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
Jan Beulich <JBeulich@novell.com>
Subject: Re: 2.6.32 PV Xen donU guest panic on nested call to arch_enter_lazy_mmu_mode()
Date: Wed, 08 Dec 2010 17:21:45 -0800 [thread overview]
Message-ID: <4D002F29.3080709@oracle.com> (raw)
In-Reply-To: <4D0006A3.8010307@goop.org>
Jeremy,
Is it possible for an ongoing lazy mode update to have batched some
MMU updates; an interrupt occurs; an interrupt routine does a non-lazy
MMU update for a PTE that is also in the lazy update queue; that update
is overwritten on return from the interrupt when the update queue is
flushed? Or are the PTE updates protected by a lock? If they are,
wouldn't we deadlock in the interrupt routine when it tries to obtain
that (I assume) spinlock?
Chuck
Jeremy Fitzhardinge wrote:
> Disabling interrupts would cause too much latency. I think we may have
> done this at one point, but it is very antisocial.
>
> Since lazy mode is effectively disabled in interrupt handlers anyway, it
> should just be enough to ignore enter/leave requests. Does this work
> for you?
>
> From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
> Date: Wed, 8 Dec 2010 14:21:16 -0800
> Subject: [PATCH] x86/paravirt: don't enter/leave lazy mode in interrupts.
>
> We already ignore the current state of lazy mode in interrupts, but we
> should also ignore any attempt to enter/leave lazy mode within
> an interrupt context.
>
> enter_lazy() will BUG if it sees an attempt at a nested entry to lazy
> mode, which is generally an error. However, it's possible that an
> interrupt handler may do something that would trigger a batched MMU
> update, for example, and that could interrupt an existing batched update.
next prev parent reply other threads:[~2010-12-09 1:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-08 0:54 2.6.32 PV Xen donU guest panic on nested call to arch_enter_lazy_mmu_mode() Chuck Anderson
2010-12-08 8:48 ` Jan Beulich
2010-12-08 21:21 ` Jeremy Fitzhardinge
2010-12-08 22:28 ` Jeremy Fitzhardinge
2010-12-09 1:21 ` Chuck Anderson [this message]
2010-12-09 6:50 ` Chuck Anderson
2010-12-09 17:43 ` Jeremy Fitzhardinge
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=4D002F29.3080709@oracle.com \
--to=chuck.anderson@oracle.com \
--cc=JBeulich@novell.com \
--cc=jeremy@goop.org \
--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.