From linux-kernel Tue Sep 19 13:43:39 2000 From: Chuck Lever Date: Tue, 19 Sep 2000 13:43:39 +0000 To: linux-kernel Subject: Re: [PATCH] Fix queued SIGIO X-MARC-Message: https://marc.info/?l=linux-kernel&m=96937098427657 On Tue, 19 Sep 2000, Julian Anastasov wrote: > On Mon, 18 Sep 2000, Andi Kleen wrote: > > > > SI_SIGIO is not generated from kernel. The same is for the > > > other SI_ consts < 0 not defined with __SI_CODE. > > > > Ok, then you have already broken binary compatibility between 2.2 and 2.4 > > Looking in the old kernels, it seems the binary compatibility > was broken in 2.3.21 when si_code returns POLL_xxx events just like > mentioned in "The Single UNIX ® Specification, Version 2", > xsh/signal.h.html and not SI_SIGIO. > > SI_SIGIO in si_code for 2.2 does not return any information > about the events. I even see that Redhat maintains patch against 2.2 > to backport the POLL_xxx events from 2.3. Not sure after the changes > in 2.4.0-test1. Anyway, 2.2 looks unusable for me and I don't see other > way this problem to be fixed. The binary compatibility is impossible > to exist. The applications can support the both ways: the old SI_SIGIO > and the new POLL_xxx events (recompiled after test1) in si_code. because the 2.2 kernels are already "broken" in this regard, i can't see how binary compatibility between 2.2 and 2.4 could even be an issue. applications can't use this stuff in 2.2 without at least the RedHat patch. unless there's a problem implementing a glibc that runs on both 2.2 and 2.4, perhaps this should be revisited. also, the test at issue here (from line 363 of kernel/signal.c): /* If this was sent by a rt mechanism, try again. */ if (info->si_code != SI_USER) { ret = -EAGAIN; goto out; } has always been unclear as to its intent. it seems like there is overloading going on here -- if the real intent is to prevent users without credentials from sending "kernel-only" signals, then that should be the logic here. > The next step is somebody to implement event merging and to > allow receiving of many events with one call. For the next kernels. we just published a paper in the ALS proceedings describing our implementation of a new system call similar to sigtimedwait() that collects many events at once. - Chuck Lever -- corporate: personal: The Linux Scalability project: http://www.citi.umich.edu/projects/linux-scalability/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/