Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1664913 > unrolled thread

[PATCH v2 01/12] ARC: [plat-eznps] Handle memory error as an exception

Started byNoam Camus <noamca@mellanox.com>
First post2017-06-13 16:10 +0200
Last post2017-06-15 00:40 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH v2 01/12] ARC: [plat-eznps] Handle memory error as an exception Noam Camus <noamca@mellanox.com> - 2017-06-13 16:10 +0200
    Re: [PATCH v2 01/12] ARC: [plat-eznps] Handle memory error as an  exception Vineet Gupta <Vineet.Gupta1@synopsys.com> - 2017-06-15 00:40 +0200

#1664913 — [PATCH v2 01/12] ARC: [plat-eznps] Handle memory error as an exception

FromNoam Camus <noamca@mellanox.com>
Date2017-06-13 16:10 +0200
Subject[PATCH v2 01/12] ARC: [plat-eznps] Handle memory error as an exception
Message-ID<tRUG7-w3-53@gated-at.bofh.it>
From: Noam Camus <noamca@mellanox.com>

On ARC700, user mode memory error is treated as L2 interrupt, but NPS
hardware treats it as Machine Check exception.

Address this by defining an NPS specific bus error handler.

Signed-off-by: Noam Camus <noamca@mellanox.com>
Signed-off-by: Elad Kanfi <eladkan@mellanox.com>
---
 arch/arc/kernel/traps.c     |    2 +-
 arch/arc/plat-eznps/Kconfig |   12 ++++++++++++
 arch/arc/plat-eznps/mtm.c   |   11 +++++++++++
 3 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c
index ff83e78..62675b9 100644
--- a/arch/arc/kernel/traps.c
+++ b/arch/arc/kernel/traps.c
@@ -80,7 +80,7 @@ int name(unsigned long address, struct pt_regs *regs) \
 DO_ERROR_INFO(SIGILL, "Priv Op/Disabled Extn", do_privilege_fault, ILL_PRVOPC)
 DO_ERROR_INFO(SIGILL, "Invalid Extn Insn", do_extension_fault, ILL_ILLOPC)
 DO_ERROR_INFO(SIGILL, "Illegal Insn (or Seq)", insterror_is_error, ILL_ILLOPC)
-DO_ERROR_INFO(SIGBUS, "Invalid Mem Access", do_memory_error, BUS_ADRERR)
+DO_ERROR_INFO(SIGBUS, "Invalid Mem Access", __weak do_memory_error, BUS_ADRERR)
 DO_ERROR_INFO(SIGTRAP, "Breakpoint Set", trap_is_brkpt, TRAP_BRKPT)
 DO_ERROR_INFO(SIGBUS, "Misaligned Access", do_misaligned_error, BUS_ADRALN)
 
diff --git a/arch/arc/plat-eznps/Kconfig b/arch/arc/plat-eznps/Kconfig
index feaa471..fa25136 100644
--- a/arch/arc/plat-eznps/Kconfig
+++ b/arch/arc/plat-eznps/Kconfig
@@ -32,3 +32,15 @@ config EZNPS_MTM_EXT
 	  any of them seem like CPU from Linux point of view.
 	  All threads within same core share the execution unit of the
 	  core and HW scheduler round robin between them.
+
+config EZNPS_MEM_ERROR
+       bool "ARC-EZchip Memory error as an exception"
+       depends on EZNPS_MTM_EXT
+       default n
+       help
+	  On the real chip of the NPS, user memory errors are handled
+	  as a machine check exception, whereas on simulator platform
+	  for NPS, is handled as an interrupt level 2 (like legacy arc
+	  real chip architecture).This configuration will cause the kernel
+	  to handle memory error similar to a machine check exception.
+	  It means NOT sending a SIGBUS, but panic the system.
diff --git a/arch/arc/plat-eznps/mtm.c b/arch/arc/plat-eznps/mtm.c
index e0cb36b..59a0162 100644
--- a/arch/arc/plat-eznps/mtm.c
+++ b/arch/arc/plat-eznps/mtm.c
@@ -25,6 +25,17 @@
 #define MT_CTRL_ST_CNT		0xF
 #define NPS_NUM_HW_THREADS	0x10
 
+#ifdef CONFIG_EZNPS_MEM_ERROR
+int do_memory_error(unsigned long address, struct pt_regs *regs)
+{
+	char *str = "Invalid Mem Access";
+
+	die(str, regs, address);
+
+	return 1;
+}
+#endif
+
 static void mtm_init_nat(int cpu)
 {
 	struct nps_host_reg_mtm_cfg mtm_cfg;
-- 
1.7.1

[toc] | [next] | [standalone]


#1666296 — Re: [PATCH v2 01/12] ARC: [plat-eznps] Handle memory error as an exception

FromVineet Gupta <Vineet.Gupta1@synopsys.com>
Date2017-06-15 00:40 +0200
SubjectRe: [PATCH v2 01/12] ARC: [plat-eznps] Handle memory error as an exception
Message-ID<tSp7b-2DF-17@gated-at.bofh.it>
In reply to#1664913
On 06/13/2017 07:03 AM, Noam Camus wrote:
> From: Noam Camus <noamca@mellanox.com>
> 
> On ARC700, user mode memory error is treated as L2 interrupt, but NPS
> hardware treats it as Machine Check exception.
> 
> Address this by defining an NPS specific bus error handler.

This still leaves too much to dig thru. I've rewritten the changelog here and pushed !

-Vineet

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web