From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Alexander Graf <agraf@suse.de>
Cc: kvm list <kvm@vger.kernel.org>, kvm-ppc <kvm-ppc@vger.kernel.org>
Subject: Re: [PATCH 2/2] KVM: PPC: Book3S: Call into C interrupt handlers
Date: Fri, 27 Apr 2012 00:00:54 +0000 [thread overview]
Message-ID: <1335484854.21961.103.camel@pasglop> (raw)
In-Reply-To: <9976749E-FC87-4A2C-84AF-B0ECF4BE739B@suse.de>
On Fri, 2012-04-27 at 01:50 +0200, Alexander Graf wrote:
> Yup. We're running the entire guest with IRQs off. Do you have any better idea how to make sure that we're atomic wrt signal delivery?
Something like this entry path:
- local_irq_disable
- check TIF_NEED_RESCHED, TIF_SIGPENDING,... (probably
_TIF_USER_WORK_MASK in fact)
- if any set, re-enable then -> back to qemu
- ppc64: hard disable
- ppc64: check irq_pending, something set (other than hard disable) ->
local_irq_enable() and try again the whole sequence
- call trace_irq_enable() (tell lockdep/irqtrace we are re-enabling)
- enter the guest, last rfi will turn EE on
And exit:
- irqs are hard off from the interrupt handler
- call local_irq_disable() to tell lockdep about it and mark
soft-disabled on ppc64
- ppc64: maybe set PACA_HARD_IRQ_DIS (tbd)
- do things like do_IRQ() etc... if needed
- local_irq_enable() (will hard enable if PACA_HARD_IRQ_DIS was set)
Cheers,
Ben.
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Alexander Graf <agraf@suse.de>
Cc: kvm list <kvm@vger.kernel.org>, kvm-ppc <kvm-ppc@vger.kernel.org>
Subject: Re: [PATCH 2/2] KVM: PPC: Book3S: Call into C interrupt handlers
Date: Fri, 27 Apr 2012 10:00:54 +1000 [thread overview]
Message-ID: <1335484854.21961.103.camel@pasglop> (raw)
In-Reply-To: <9976749E-FC87-4A2C-84AF-B0ECF4BE739B@suse.de>
On Fri, 2012-04-27 at 01:50 +0200, Alexander Graf wrote:
> Yup. We're running the entire guest with IRQs off. Do you have any better idea how to make sure that we're atomic wrt signal delivery?
Something like this entry path:
- local_irq_disable
- check TIF_NEED_RESCHED, TIF_SIGPENDING,... (probably
_TIF_USER_WORK_MASK in fact)
- if any set, re-enable then -> back to qemu
- ppc64: hard disable
- ppc64: check irq_pending, something set (other than hard disable) ->
local_irq_enable() and try again the whole sequence
- call trace_irq_enable() (tell lockdep/irqtrace we are re-enabling)
- enter the guest, last rfi will turn EE on
And exit:
- irqs are hard off from the interrupt handler
- call local_irq_disable() to tell lockdep about it and mark
soft-disabled on ppc64
- ppc64: maybe set PACA_HARD_IRQ_DIS (tbd)
- do things like do_IRQ() etc... if needed
- local_irq_enable() (will hard enable if PACA_HARD_IRQ_DIS was set)
Cheers,
Ben.
next prev parent reply other threads:[~2012-04-27 0:00 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-26 10:19 [PATCH 1/2] PPC: Export some interrupt handlers Alexander Graf
2012-04-26 10:19 ` Alexander Graf
2012-04-26 10:19 ` [PATCH 2/2] KVM: PPC: Book3S: Call into C " Alexander Graf
2012-04-26 10:19 ` Alexander Graf
2012-04-26 21:45 ` Benjamin Herrenschmidt
2012-04-26 21:45 ` Benjamin Herrenschmidt
2012-04-26 22:24 ` Alexander Graf
2012-04-26 22:24 ` Alexander Graf
2012-04-26 23:12 ` Benjamin Herrenschmidt
2012-04-26 23:12 ` Benjamin Herrenschmidt
2012-04-26 23:30 ` Alexander Graf
2012-04-26 23:30 ` Alexander Graf
2012-04-26 23:37 ` Benjamin Herrenschmidt
2012-04-26 23:37 ` Benjamin Herrenschmidt
2012-04-26 23:50 ` Alexander Graf
2012-04-26 23:50 ` Alexander Graf
2012-04-27 0:00 ` Benjamin Herrenschmidt [this message]
2012-04-27 0:00 ` Benjamin Herrenschmidt
2012-04-26 21:54 ` Scott Wood
2012-04-26 21:54 ` Scott Wood
2012-04-26 22:26 ` Alexander Graf
2012-04-26 22:26 ` Alexander Graf
2012-04-26 22:58 ` Benjamin Herrenschmidt
2012-04-26 22:58 ` Benjamin Herrenschmidt
2012-04-27 5:48 ` Paul Mackerras
2012-04-27 5:48 ` Paul Mackerras
2012-04-27 11:23 ` Alexander Graf
2012-04-27 11:23 ` Alexander Graf
2012-04-27 14:19 ` Alexander Graf
2012-04-27 14:19 ` Alexander Graf
2012-04-27 16:37 ` Scott Wood
2012-04-27 16:37 ` Scott Wood
2012-04-27 16:54 ` Alexander Graf
2012-04-27 16:54 ` Alexander Graf
2012-04-27 22:20 ` Benjamin Herrenschmidt
2012-04-27 22:20 ` Benjamin Herrenschmidt
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=1335484854.21961.103.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=agraf@suse.de \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@vger.kernel.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.