mbox series

[v5,0/9] linux-user: Detect and report host crashes

Message ID 20231003192012.1674888-1-richard.henderson@linaro.org
Headers show
Series linux-user: Detect and report host crashes | expand

Message

Richard Henderson Oct. 3, 2023, 7:20 p.m. UTC
More signal cleanups.  Mostly tested by temporarily adding an
abort, divide by zero, undefined instruction, null dereference,
within the implementation of a guest syscall to induce an error.

Changes for v5:
  * Remap guest abort, which means we need to try less hard on
    the host side to handle assertion failures.
  * Drop the backtrace.  Since backtrace_symbols only looks at the
    dynamic symbol set, we don't much that's useful -- we still
    need to use the debugger.


r~


Helge Deller (1):
  linux-user: Detect and report host crashes

Richard Henderson (8):
  linux-user: Split out die_with_signal
  linux-user: Exit not abort in die_with_backtrace
  linux-user: Only register handlers for core_dump_signal by default
  linux-user: Map unsupported signals to an out-of-bounds value
  linux-user: Simplify signal_init
  linux-user: Split out host_sig{segv,bus}_handler
  linux-user: Detect and report host SIGILL, SIGFPE, SIGTRAP
  linux-user: Remap guest SIGABRT

 linux-user/signal.c | 452 +++++++++++++++++++++++++++++---------------
 1 file changed, 296 insertions(+), 156 deletions(-)

Comments

Richard Henderson Oct. 13, 2023, 3:52 a.m. UTC | #1
Ping.

On 10/3/23 12:20, Richard Henderson wrote:
> More signal cleanups.  Mostly tested by temporarily adding an
> abort, divide by zero, undefined instruction, null dereference,
> within the implementation of a guest syscall to induce an error.
> 
> Changes for v5:
>    * Remap guest abort, which means we need to try less hard on
>      the host side to handle assertion failures.
>    * Drop the backtrace.  Since backtrace_symbols only looks at the
>      dynamic symbol set, we don't much that's useful -- we still
>      need to use the debugger.
> 
> 
> r~
> 
> 
> Helge Deller (1):
>    linux-user: Detect and report host crashes
> 
> Richard Henderson (8):
>    linux-user: Split out die_with_signal
>    linux-user: Exit not abort in die_with_backtrace
>    linux-user: Only register handlers for core_dump_signal by default
>    linux-user: Map unsupported signals to an out-of-bounds value
>    linux-user: Simplify signal_init
>    linux-user: Split out host_sig{segv,bus}_handler
>    linux-user: Detect and report host SIGILL, SIGFPE, SIGTRAP
>    linux-user: Remap guest SIGABRT
> 
>   linux-user/signal.c | 452 +++++++++++++++++++++++++++++---------------
>   1 file changed, 296 insertions(+), 156 deletions(-)
>
Helge Deller Oct. 13, 2023, 12:53 p.m. UTC | #2
On 10/13/23 05:52, Richard Henderson wrote:
> On 10/3/23 12:20, Richard Henderson wrote:
>> More signal cleanups.  Mostly tested by temporarily adding an
>> abort, divide by zero, undefined instruction, null dereference,
>> within the implementation of a guest syscall to induce an error.
>>
>> Changes for v5:
>>    * Remap guest abort, which means we need to try less hard on
>>      the host side to handle assertion failures.
>>    * Drop the backtrace.  Since backtrace_symbols only looks at the
>>      dynamic symbol set, we don't much that's useful -- we still
>>      need to use the debugger.

I've attached this series on git head and did some basic tests.
My various chroots still work, and after adding some temporary code to trigger
a segfault in qemu code it works as expected and reports the fault.

So:
Acked-by: Helge Deller <deller@gmx.de>

Thank you!
Helge