linux/fs
Bharath Ramesh fc9c9ab22d [PATCH] AYSNC IO using singals other than SIGIO
A question on sigwaitinfo based IO mechanism in multithreaded applications.

I am trying to use RT signals to notify me of IO events using RT signals
instead of SIGIO in a multithreaded applications.  I noticed that there was
some discussion on lkml during november 1999 with the subject of the
discussion as "Signal driven IO".  In the thread I noticed that RT signals
were being delivered to the worker thread.  I am running 2.6.10 kernel and
I am trying to use the very same mechanism and I find that only SIGIO being
propogated to the worker threads and RT signals only being propogated to
the main thread and not the worker threads where I actually want them to be
propogated too.  On further inspection I found that the following patch
which I have attached solves the problem.

I am not sure if this is a bug or feature in the kernel.


Roland McGrath <roland@redhat.com> said:

This relates only to fcntl F_SETSIG, which is a Linux extension.  So there is
no POSIX issue.  When changing various things like the normal SIGIO signalling
to do group signals, I was concerned strictly with the POSIX semantics and
generally avoided touching things in the domain of Linux inventions.  That's
why I didn't change this when I changed the call right next to it.  There is
no reason I can see that F_SETSIG-requested signals shouldn't use a group
signal like normal SIGIO does.  I'm happy to ACK this patch, there is nothing
wrong with its change to the semantics in my book.  But neither POSIX nor I
care a whit what F_SETSIG does.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-16 15:25:41 -07:00
..
adfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
affs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
afs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
autofs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
autofs4 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
befs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cifs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
coda Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cramfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
debugfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
devfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
devpts Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
efs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
exportfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ext2 [PATCH] Fix acl Oops 2005-04-16 15:24:00 -07:00
ext3 [PATCH] Fix acl Oops 2005-04-16 15:24:00 -07:00
fat Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
freevxfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hfsplus Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hostfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hpfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hppfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hugetlbfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
isofs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
jbd Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
jffs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
jffs2 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
jfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lockd Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
minix Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
msdos Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ncpfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nfsd Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nls Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ntfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
openpromfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
partitions Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
proc [PATCH] meminfo: add Cached underflow check 2005-04-16 15:24:08 -07:00
qnx4 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ramfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
reiserfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
romfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smbfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysv Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
udf Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ufs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
umsdos Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vfat Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
aio.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
attr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bad_inode.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
binfmt_aout.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
binfmt_elf.c [PATCH] ppc64: Improve mapping of vDSO 2005-04-16 15:24:35 -07:00
binfmt_elf_fdpic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
binfmt_em86.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
binfmt_flat.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
binfmt_misc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
binfmt_script.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
binfmt_som.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bio.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
block_dev.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
buffer.c [PATCH] end_buffer_write_sync() avoid pointless assignments 2005-04-16 15:24:07 -07:00
char_dev.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat_ioctl.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dcache.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dcookies.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
direct-io.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dnotify.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dquot.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
eventpoll.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
exec.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fcntl.c [PATCH] AYSNC IO using singals other than SIGIO 2005-04-16 15:25:41 -07:00
fifo.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
file.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
file_table.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
filesystems.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fs-writeback.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
inode.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioctl.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig.binfmt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
libfs.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
locks.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mbcache.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mpage.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
namei.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
namespace.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nfsctl.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
open.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pipe.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
posix_acl.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
quota.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
quota_v1.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
quota_v2.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
read_write.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
readdir.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
select.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
seq_file.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
stat.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
super.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xattr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xattr_acl.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00