-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Everything that is bad about signal passing #709
Comments
We run signals here: https://github.com/lsds/lkl/blob/86819ac5446e1fa31ca67db68aa165bbf07b90a9/arch/lkl/kernel/syscalls.c#L234 This does a loop here, popping signals off the pending list and delivering them: There are a few things wrong here:
I think the correct fix is to:
We probably need to do steps 1-4 in the idle task loop so that we wake up threads with pending signals even if no threads issue syscalls: |
Our code for injecting signals into LKL looks quite different from that of other Linux architectures:
|
This is the correct thing to do for sync signals because they are delivered to an lthread, but the Linux scheduler may be pointing at the wrong thread. This won't work with async signals because they'd run in the correct host task but the wrong lthread. |
This is a catch all issue for things to do with signals. See also #680 Incomplete/unsafe signal handling with SGX1 |
Enable busybox ping network test when this bug is fixed. #809 |
See also #838 for the futex issue that prevents tgkill01 and rt_sigqueueinfo tests passing. |
Catch all for fixes to hopefully solve a whole bunch of actual bugs.
The text was updated successfully, but these errors were encountered: