diff options
Diffstat (limited to 'results/scraper/fex/1107')
| -rw-r--r-- | results/scraper/fex/1107 | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/results/scraper/fex/1107 b/results/scraper/fex/1107 new file mode 100644 index 000000000..b665fd84d --- /dev/null +++ b/results/scraper/fex/1107 @@ -0,0 +1,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` \ No newline at end of file |