linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Nicholas Piggin <npiggin@gmail.com>
To: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Cc: benh@kernel.crashing.org, mpe@ellerman.id.au, anton@samba.org,
	paulus@samba.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [RFC PATCH 5/9] powerpc: reverse the soft_enable logic
Date: Tue, 26 Jul 2016 15:31:03 +1000	[thread overview]
Message-ID: <20160726153103.26dda0ce@roar.ozlabs.ibm.com> (raw)
In-Reply-To: <1469458342-26233-6-git-send-email-maddy@linux.vnet.ibm.com>

On Mon, 25 Jul 2016 20:22:18 +0530
Madhavan Srinivasan <maddy@linux.vnet.ibm.com> wrote:

> "paca->soft_enabled" is used as a flag to mask some of interrupts.
> Currently supported flags values and their details:
> 
> soft_enabled		MSR[EE]
> 
> 0			0	Disabled (PMI and HMI not masked)
> 1			1	Enabled
> 
> "paca->soft_enabled" is initialed to 1 to make the interripts as
> enabled. arch_local_irq_disable() will toggle the value when
> interrupts needs to disbled. At this point, the interrupts are not
> actually disabled, instead, interrupt vector has code to check for
> the flag and mask it when it occurs. By "mask it", it updated
> interrupt paca->irq_happened and return. arch_local_irq_restore() is
> called to re-enable interrupts, which checks and replays interrupts
> if any occured.
> 
> Now, as mentioned, current logic doesnot mask "performance monitoring
> interrupts" and PMIs are implemented as NMI. But this patchset
> depends on local_irq_* for a successful local_* update. Meaning, mask
> all possible interrupts during local_* update and replay them after
> the update.
> 
> So the idea here is to reserve the "paca->soft_enabled" logic. New
> values and details:
> 
> soft_enabled		MSR[EE]
> 
> 1			0	Disabled  (PMI and HMI not masked)
> 0			1	Enabled
> 
> Reason for the this change is to create foundation for a third flag
> value "2" for "soft_enabled" to add support to mask PMIs. When
> arch_irq_disable_* is called with a value "2", PMI interrupts are
> mask. But when called with a value of "1", PMI are not mask.
> 
> With new flag value for "soft_enabled", states looks like:
> 
> soft_enabled		MSR[EE]
> 
> 2			0	Disbaled PMIs also
> 1			0	Disabled  (PMI and HMI not masked)
> 0			1	Enabled
> 
> And interrupt handler code for checking has been modified to check for
> for "greater than or equal" to 1 condition instead.

This bit of the patch seems to have been moved into other part
of the series. Ideally (unless there is a good reason), it is nice
to have each individual patch result in a working kernel before
and after.

Nice way to avoid adding more branches though.

Thanks,
Nick

  reply	other threads:[~2016-07-26  5:31 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-25 14:52 [RFC PATCH 0/9]powerpc: "paca->soft_enabled" based local atomic operation implementation Madhavan Srinivasan
2016-07-25 14:52 ` [RFC PATCH 1/9] Add #defs for paca->soft_enabled flags Madhavan Srinivasan
2016-07-26  5:27   ` Nicholas Piggin
2016-07-26  6:05     ` Madhavan Srinivasan
2016-07-26  6:13       ` Nicholas Piggin
2016-07-28 13:54       ` Nicholas Piggin
2016-07-25 14:52 ` [RFC PATCH 2/9] Cleanup to use LAZY_INTERRUPT_* macros for paca->soft_enabled update Madhavan Srinivasan
2016-07-25 14:52 ` [RFC PATCH 3/9] powerpc: move set_soft_enabled() Madhavan Srinivasan
2016-07-25 14:52 ` [RFC PATCH 4/9] powerpc: Use set_soft_enabled api to update paca->soft_enabled Madhavan Srinivasan
2016-07-25 14:52 ` [RFC PATCH 5/9] powerpc: reverse the soft_enable logic Madhavan Srinivasan
2016-07-26  5:31   ` Nicholas Piggin [this message]
2016-07-26  6:07     ` Madhavan Srinivasan
2016-07-25 14:52 ` [RFC PATCH 6/9] powerpc: modify __SOFTEN_TEST to support tri-state soft_enabled flag Madhavan Srinivasan
2016-07-26  5:41   ` Nicholas Piggin
2016-07-26  6:12     ` Madhavan Srinivasan
2016-07-25 14:52 ` [RFC PATCH 7/9] powerpc: Add support to mask perf interrupts Madhavan Srinivasan
2016-07-26  5:46   ` Nicholas Piggin
2016-07-26  6:25     ` Madhavan Srinivasan
2016-07-26  6:30       ` Nicholas Piggin
2016-07-26  6:46         ` Madhavan Srinivasan
2016-07-26  7:10           ` Nicholas Piggin
2016-07-26  7:22             ` Madhavan Srinivasan
2016-07-26  7:34               ` Nicholas Piggin
2016-07-25 14:52 ` [RFC PATCH 8/9] powerpc: Support to replay PMIs Madhavan Srinivasan
2016-07-26  5:50   ` Nicholas Piggin
2016-07-26  6:40     ` Madhavan Srinivasan
2016-07-25 14:52 ` [RFC PATCH 9/9] powerpc: rewrite local_t using soft_irq Madhavan Srinivasan
2016-07-26  5:53   ` Nicholas Piggin
2016-07-26  6:41     ` Madhavan Srinivasan
2016-07-26 12:21 ` [RFC PATCH 0/9]powerpc: "paca->soft_enabled" based local atomic operation implementation Benjamin Herrenschmidt
2016-07-26 13:42   ` Madhavan Srinivasan

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=20160726153103.26dda0ce@roar.ozlabs.ibm.com \
    --to=npiggin@gmail.com \
    --cc=anton@samba.org \
    --cc=benh@kernel.crashing.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=maddy@linux.vnet.ibm.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).