Messages in this thread | | | Date | Thu, 8 Aug 2002 03:27:04 +0200 | From | "Udo A. Steinberg" <> | Subject | Re: context switch vs. signal delivery [was: Re: Accelerating user mode |
| |
On Tue, 06 Aug 2002 13:42:18 -0400 Jeff Dike <jdike@karaya.com> wrote: > > The kernel process can examine the signal pending mask of the process after > it has transferred SIGIO to itself. This can be done either through > /proc/<pid>/status or a ptrace extension, since we're happily postulating > new things for it to do anyway. If there is a SIGIO pending, it calls > sigio_handler. > > Any other possibilities that you see?
Another possibility could be the kernel process and the task processes sharing a pending signal queue, either for one particular signal or all signals. The kernel process would block SIGIO while the task runs and when the task enters kernel mode with a SIGIO still trapped in the task process, SIGIO would get delivered in the kernel and cleared from the shared pending queue, which is just what we want.
Someone actually already tried implementing it with a clone extension, see http://www.rhdv.cistron.nl/sigqueue.html
-Udo. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |