From: Dan Kegel <dank@kegel.com>
To: Vitaly Luban <vitaly@luban.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: spin_lock_bh() usage check, please (was: [PATCH][RFC] Signal-per-fd for RT signals)
Date: Sat, 15 Sep 2001 15:07:07 -0700 [thread overview]
Message-ID: <3BA3D10B.FE3C6C79@kegel.com> (raw)
In-Reply-To: <3BA2AFFF.C7B8C4DF@kegel.com> <3BA2E144.FB0E5D55@luban.org> <3BA2E99A.1134E382@kegel.com> <3BA350A7.7D39FC23@kegel.com> <3BA3C61A.DED5A27A@luban.org>
Vitaly Luban wrote:
> Dan Kegel wrote: ...
> > My variant makes the following changes: ..
> > * it keeps poll data, not pointers, in struct file. This saves space
> > and makes the consequence of screwing up less severe.
> > * it overloads an existing struct file field to avoid the space penalty;
> > it doesn't bloat struct file.
> > * it assumes that it's better to keep the kernel uncluttered, so it
> > changes the meaning of siginfo.si_code rather than introduces new ioctl's.
> > (I hear the Austin draft of the Posix single unix spec is deleting all mention
> > of SIGIO, so it looks like we're free to 'improve' that interface freely
> > once Austin becomes the law of the land :-)
>
> I'm reluctant to make such changes, like f_error field overloading because
> a) it may backbite in future if you'll use this mechanism for all I/O and not
> only sockets, since you are interfering with it's legitimate usage, in short,
> it makes patch more dependent of possible kernel code changes
> b) I want the default kernel behavior to be exactly the same, as if without this
> patch, thus additional fcntl to control this feature. If you do not activate it,
> you don't get it,
You're absolutely right. My patch is aggressive. It does things that would
require buy-in by a lot of people. Your patch is much safer.
But I doubt very much that SIGIO style readiness notification will ever
be used with files. aio_{read,write} style completion notification is
much more appropriate for file I/O, and my proposal (if I make it) will not
affect that.
> Keeping pointer allows for additional sanity check to make sure I'm not screwed,
That's a good thing, yes.
> and cheap update events information in siginfo.
> Keeping interests strips you of this ability. And also, you have to have
> additional method of gettong events information in user space, because you
> are not updating siginfo, and cannot rely on it anymore.
I disagree there. My patch's updates are just as cheap as yours, and
programs which use si_band instead of si_code are potentially unaffected by my
patch; it's possible to write programs that work identically with or without
my patch. (My Poller_sigio.cc is such a program.)
> So, to utilize signal per fd feature you have to modify
> event loop and not file descriptor setup, which I'd also try to avoid.
Agreed. It is messy to have to go out and 'fix' existing programs to
be compatible with a proposed interface change like this. You are absolutely
right to avoid the kind of change I made.
On the other hand, my change might in the long run yield both a simpler
kernel and simpler userland programs. That's the only reason I am playing
with this approch. I'm not seriously proposing it as yet. I only posted it
so you could see how I addressed the first two kinds of oops'es; the fixes
should be similar in your patch.
Thanks again for creating and maintaining your patch! I look forward to
stress-testing the next version.
- Dan
next prev parent reply other threads:[~2001-09-15 22:07 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-15 1:33 [PATCH][RFC] Signal-per-fd for RT signals Dan Kegel
2001-09-15 5:04 ` Vitaly Luban
2001-09-15 5:39 ` Dan Kegel
2001-09-15 12:59 ` spin_lock_bh() usage check, please (was: [PATCH][RFC] Signal-per-fd for RT signals) Dan Kegel
2001-09-15 21:20 ` Vitaly Luban
2001-09-15 22:07 ` Dan Kegel [this message]
2001-09-16 2:35 ` [PATCH][RFC] Signal-per-fd for RT signals Vitaly Luban
2001-09-16 3:51 ` Dan Kegel
2001-09-22 23:30 ` [PATCH][RFC] Signal-per-fd for RT signals; write_lock_bh(file_lock)? Dan Kegel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3BA3D10B.FE3C6C79@kegel.com \
--to=dank@kegel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=vitaly@luban.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.