Re: [PATCH v4 0/2] make sigaltstack() compatible with swapcontext()
From: Stas Sergeev <hidden>
Date: 2016-03-06 20:27:46
Also in:
lkml
06.03.2016 23:02, Szabolcs Nagy пишет:
* Stas Sergeev [off-list ref] [2016-03-01 00:29:03 +0300]:quoted
The following patches make it possible to use swapcontext() in a sighandler that works on sigaltstack.i don't think that's possible, the (obsolete) userspace *context functions cannot operate on kernel provided ucontext_t structs,
It doesn't have to. It does the normal getcontext()/swapcontext() sequences, as if it would be switching from any casual code place. Kernel-provided context structs are completely irrelevant. For more details please see the test-case I posted in that patch series. It shows what can be done and how.
so they are not usable in signal handlers.
Please note the fact that swapcontext() also replaces the signal mask as part of the context switching. This is a very strong hint that it was intended to work with signal handlers. And in fact it perfectly does. What I want is only to make it friendly to sigaltstack. I am not making it friendly to signal handlers in general, because it already is.
at least not on most target archs. so i don't understand how the tests can work portably.
If you apply my patch series, you can immediately test it on any arch you want, thanks to the test-case my patch adds to the kernel. Please let me know on what arch it fails.