blob: b665fd84db190c88d965f05eb46356080a56ce03 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
Defer host signal installation until guest installs signal handler
Right now we install all of the host signal handlers up front.
Instead of installing all of them, retain the information and only install with the kernel once the guest has installed one.
Specifically this will need to immediately install the signal handlers that FEX requires, then defer everything else.
- x86 host needs: SIGILL SIG63
- AArch64 host needs: SIGBUS SIGILL SIG63
- We may eventually also need SIGSYS installed up front.
The rest of the signals can be deferred.
This is important for TTY handoff issues. The kernel changes behaviour of TTY handoff if you have specific signal handlers installed or not.
```bash
FEXInterpreter /bin/sh
ls
<terminal never gives back the control to user>
```
Once signals are correctly deferred then this should be tested again and ensured it is fixed.
Files:
- Source/Tests/LinuxSyscalls/SignalDelegator.cpp - For signal installation
- External/FEXCore/Source/Interface/Core/JIT/{Arm64, x86_64}/JIT.cpp - For the backends installing signals with `RegisterHostSignalHandler` and `RegisterHostSignalHandlerForGuest`
|