[PATCH RESEND 0/2] ARM: v7m: handle faults and enable debugging

Ben Wolsieffer posted 2 patches 3 years, 6 months ago
There is a newer version of this series
arch/arm/include/asm/traps.h |   2 +
arch/arm/include/asm/v7m.h   |  29 +++++++
arch/arm/kernel/Makefile     |   2 +-
arch/arm/kernel/entry-v7m.S  |  68 ++++++++++++++-
arch/arm/kernel/traps-v7m.c  | 162 +++++++++++++++++++++++++++++++++++
5 files changed, 258 insertions(+), 5 deletions(-)
create mode 100644 arch/arm/kernel/traps-v7m.c
[PATCH RESEND 0/2] ARM: v7m: handle faults and enable debugging
Posted by Ben Wolsieffer 3 years, 6 months ago
This series enables real exception handlers on no-MMU systems,
increasing robustness in the face of buggy user- or kernel-space
software. Previously, any fault would trigger the invalid exception
handler, which would hang the system. With this series, faults only
kill the offending process and allow the rest of the system to
continue operating.

The second patch in this series adds support for undefined instruction
hooks, enabling software breakpoints through ptrace. Using this
functionality currently requires a patch to gdb.

This series has been tested on an STM32F746 (Cortex-M7).

I would appreciate feedback in particular on the following questions:
* Is the fault table formatting acceptable? Or should the lines be
  wrapped/shortened?
* Does my chosen mapping between faults and signals make sense?

Ben Wolsieffer (2):
  ARM: v7m: handle faults
  ARM: v7m: support undefined instruction hooks

 arch/arm/include/asm/traps.h |   2 +
 arch/arm/include/asm/v7m.h   |  29 +++++++
 arch/arm/kernel/Makefile     |   2 +-
 arch/arm/kernel/entry-v7m.S  |  68 ++++++++++++++-
 arch/arm/kernel/traps-v7m.c  | 162 +++++++++++++++++++++++++++++++++++
 5 files changed, 258 insertions(+), 5 deletions(-)
 create mode 100644 arch/arm/kernel/traps-v7m.c

-- 
2.37.2
Re: [PATCH RESEND 0/2] ARM: v7m: handle faults and enable debugging
Posted by Linus Walleij 3 years, 6 months ago
On Sat, Sep 17, 2022 at 6:14 AM Ben Wolsieffer <benwolsieffer@gmail.com> wrote:

> This series enables real exception handlers on no-MMU systems,
> increasing robustness in the face of buggy user- or kernel-space
> software. Previously, any fault would trigger the invalid exception
> handler, which would hang the system. With this series, faults only
> kill the offending process and allow the rest of the system to
> continue operating.
>
> The second patch in this series adds support for undefined instruction
> hooks, enabling software breakpoints through ptrace. Using this
> functionality currently requires a patch to gdb.
>
> This series has been tested on an STM32F746 (Cortex-M7).
>
> I would appreciate feedback in particular on the following questions:
> * Is the fault table formatting acceptable? Or should the lines be
>   wrapped/shortened?
> * Does my chosen mapping between faults and signals make sense?

Very few people use NOMMU so I would seek review from the
STM32 community.

The kernel looks better after than before the patches so:
Acked-by: Linus Walleij <linus.walleij@linaro.org>
but I do not fully understand this code, so my review is
a bit superficial.

Yours,
Linus Walleij