linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
To: benh@kernel.crashing.org, mpe@ellerman.id.au
Cc: anton@samba.org, paulus@samba.org, npiggin@gmail.com,
	linuxppc-dev@lists.ozlabs.org,
	Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Subject: [RFC PATCH v3 05/12] powerpc: reverse the soft_enable logic
Date: Thu, 25 Aug 2016 11:59:56 +0530	[thread overview]
Message-ID: <1472106603-23336-6-git-send-email-maddy@linux.vnet.ibm.com> (raw)
In-Reply-To: <1472106603-23336-1-git-send-email-maddy@linux.vnet.ibm.com>

"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 initialized 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 update 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.

Foundation patch to support checking of new flag value for "paca->soft_enabled".
Modify the condition checking for the "soft_enabled".

Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
---
 arch/powerpc/include/asm/hw_irq.h | 4 ++--
 arch/powerpc/kernel/entry_64.S    | 5 ++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index a7564b8a4831..c19169ac1fbb 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -30,8 +30,8 @@
 /*
  * flags for paca->soft_enabled
  */
-#define IRQ_DISABLE_MASK_NONE		1
-#define IRQ_DISABLE_MASK_LINUX		0
+#define IRQ_DISABLE_MASK_NONE		0
+#define IRQ_DISABLE_MASK_LINUX		1
 
 #endif /* CONFIG_PPC64 */
 
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index 3078de64824b..b50d79e5bfbc 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -131,8 +131,7 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_SPLPAR)
 	 */
 #if defined(CONFIG_TRACE_IRQFLAGS) && defined(CONFIG_BUG)
 	lbz	r10,PACASOFTIRQEN(r13)
-	xori	r10,r10,IRQ_DISABLE_MASK_NONE
-1:	tdnei	r10,0
+1:	tdnei	r10,IRQ_DISABLE_MASK_NONE
 	EMIT_BUG_ENTRY 1b,__FILE__,__LINE__,BUGFLAG_WARNING
 #endif
 
@@ -1012,7 +1011,7 @@ _GLOBAL(enter_rtas)
 	 * check it with the asm equivalent of WARN_ON
 	 */
 	lbz	r0,PACASOFTIRQEN(r13)
-1:	tdnei	r0,IRQ_DISABLE_MASK_LINUX
+1:	tdeqi	r0,IRQ_DISABLE_MASK_NONE
 	EMIT_BUG_ENTRY 1b,__FILE__,__LINE__,BUGFLAG_WARNING
 #endif
 	
-- 
2.7.4

  parent reply	other threads:[~2016-08-25  6:37 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-25  6:29 [RFC PATCH v3 00/12] powerpc: "paca->soft_enabled" based local atomic operation implementation Madhavan Srinivasan
2016-08-25  6:29 ` [RFC PATCH v3 01/12] powerpc: Add #defs for paca->soft_enabled flags Madhavan Srinivasan
2016-08-25  6:29 ` [RFC PATCH v3 02/12] powerpc: Cleanup to use IRQ_DISABLE_MASK_* macros for paca->soft_enabled update Madhavan Srinivasan
2016-08-25  6:29 ` [RFC PATCH v3 03/12] powerpc: move set_soft_enabled() Madhavan Srinivasan
2016-08-25  6:29 ` [RFC PATCH v3 04/12] powerpc: Use set_soft_enabled api to update paca->soft_enabled Madhavan Srinivasan
2016-08-25  6:29 ` Madhavan Srinivasan [this message]
2016-08-25  6:29 ` [RFC PATCH v3 06/12] powerpc: Avoid using EXCEPTION_PROLOG_1 macro in MASKABLE_* Madhavan Srinivasan
2016-08-25  6:29 ` [RFC PATCH v3 07/12] powerpc: Add new _EXCEPTION_PROLOG_1 macro Madhavan Srinivasan
2016-08-25  6:29 ` [RFC PATCH v3 08/12] powerpc: Introduce new mask bit for soft_enabled Madhavan Srinivasan
2016-08-25  7:05   ` Nicholas Piggin
2016-08-26  1:27     ` Madhavan Srinivasan
2016-08-25  6:30 ` [RFC PATCH v3 09/12] powerpc: Add "bitmask" paramater to MASKABLE_* macros Madhavan Srinivasan
2016-08-25  6:30 ` [RFC PATCH v3 10/12] powerpc: Add support to mask perf interrupts Madhavan Srinivasan
2016-08-25  6:30 ` [RFC PATCH v3 11/12] powerpc: Support to replay PMIs Madhavan Srinivasan
2016-08-25  7:08   ` Nicholas Piggin
2016-08-26  1:29     ` Madhavan Srinivasan
2016-08-25  6:30 ` [RFC PATCH v3 12/12] powerpc: rewrite local_t using soft_irq Madhavan Srinivasan
2016-08-25  7:15 ` [RFC PATCH v3 00/12] powerpc: "paca->soft_enabled" based local atomic operation implementation Nicholas Piggin
2016-08-26  1:31   ` 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=1472106603-23336-6-git-send-email-maddy@linux.vnet.ibm.com \
    --to=maddy@linux.vnet.ibm.com \
    --cc=anton@samba.org \
    --cc=benh@kernel.crashing.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --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).