public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Edgar Toernig <froese@gmx.de>
To: Davide Libenzi <davidel@xmailserver.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [rfc] epoll interface change and glibc bits ...
Date: Tue, 19 Nov 2002 06:35:46 +0100	[thread overview]
Message-ID: <3DD9CDB2.2075CCB4@gmx.de> (raw)
In-Reply-To: Pine.LNX.4.44.0211182000590.979-100000@blue1.dev.mcafeelabs.com

Davide Libenzi wrote:
> 
> On Tue, 19 Nov 2002, Edgar Toernig wrote:
> > What about adding an fd twice to the epoll-set?  Do you get an
> > error, will it override the previous settings for that fd, will
> > it be ignored, or is it registered twice and you get two results
> > for that fd?
> 
> You get EEXIST
> Well, there's the remote possibility, trying very badly from two threads,
> to add the same fd twice. It is an harmless condition though.

Just IMHO: I would prefer a different behaviour:

	int epoll_ctl(int epfd, int fd, int events)

which registers interest for "events" on "fd" and retuns previous
registered events for that fd (implies that the fd is removed when
"events" is 0) or -1 for error.

If you don't like it, at least an EP_CTL_GET should be added though.

Btw, what errno for an invalid fd (not epfd)?

> > Is the epoll-fd itself poll/epoll/selectable?
> 
> Yes.

Fine.  I guess, only POLLIN/readable is generated.

> 
> > Can I build cluster of epoll-sets?
> 
> Uh ?!

The previous "yes" already answers this ;-)  What I meant, ie three
fd-sets - low, normal, high priority fds - and a fourth set consisting
of the three epfds for these sets.

> > What happens if the epollfd is put into its own fd set?
> 
> You might find your machine a little bit frozen :)
> Either 1) I remove the read lock from poll() or 2) I check the condition
> at insetion time to avoid it. I very much prefer 2)

Hehe, sure.  But could become tricky: someone may build a circular chain
of epoll-fd-sets.

> > Can I send the epoll-fd over a unix-socket to another
> > process?
> 
> I'd say yes. SCM_RIGHTS should simply do an in-kernel file* to remote task
> descriptor mapping.

And what happens then?  Will the set refers to the fds from the sender
process or of fds of the receiving process (which may not even have
all those fds open)?

Another btw, what happens on close of an fd?  Will it get removed from all
epoll-fd-sets automatically?

> > Then, please add more details of how events are generated.  You
> > say, that an inactive-to-active transition causes an event.  What
> > is the starting point of the collection?  (I guess, all transitions
> 
> The starting point are the bits found at insertion time.

... and then after each epoll_wait call, I assume?

> > Does an operation on an fd effect the already collected but not yet
> > reported events?
> 
> You can do two operations on an existing fd. Remove is meaninless for this
> case. Modify will re-read available bits.

Huh, sorry.  I meant read/write/poll style of operations.

Anyway, thanks for the information.  I hope they will find their way
into the man-pages ;-)   (Ok, they may become more like the posix docs
but IMHO new interfaces should be well documented.)

Ciao, ET.

  reply	other threads:[~2002-11-19  5:29 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-18 22:21 [rfc] epoll interface change and glibc bits Dan Kegel
2002-11-18 23:09 ` Davide Libenzi
2002-11-18 23:39   ` Dan Kegel
2002-11-18 23:20     ` Davide Libenzi
2002-11-18 23:52       ` Dan Kegel
2002-11-18 23:35         ` Davide Libenzi
2002-11-19  0:53           ` Dan Kegel
2002-11-19  1:34             ` Davide Libenzi
2002-11-19  2:08               ` Dan Kegel
2002-11-19  2:04                 ` Davide Libenzi
2002-11-19  3:46           ` Edgar Toernig
2002-11-19  4:14             ` Davide Libenzi
2002-11-19  5:35               ` Edgar Toernig [this message]
2002-11-19  6:09                 ` Mark Mielke
2002-11-19 17:07                   ` Davide Libenzi
2002-11-20  1:59                 ` Davide Libenzi
2002-11-20  3:09                   ` Jamie Lokier
2002-11-20  3:46                     ` Davide Libenzi
2002-11-20  4:04                     ` Davide Libenzi
2002-11-20  8:01                       ` Mark Mielke
2002-11-20 23:19                         ` Davide Libenzi
2002-11-20 23:51                           ` Mark Mielke
2002-11-20 23:57                             ` Davide Libenzi
2002-11-21  0:28                               ` Jamie Lokier
2002-11-21  1:23                                 ` Mark Mielke
2002-11-21  1:20                                   ` Davide Libenzi
2002-11-21  0:33                               ` Mark Mielke
2002-11-21  0:55                                 ` Jamie Lokier
2002-11-21  1:04                                   ` Davide Libenzi
2002-11-21 20:08                                 ` Denis Vlasenko
2002-11-21 16:51                                   ` Mark Mielke
2002-11-21 17:45                                     ` Davide Libenzi
2002-11-20 22:04                       ` Jamie Lokier
2002-11-20 22:08                         ` Davide Libenzi
2002-11-20 23:28                           ` Jamie Lokier
2002-11-20 23:33                             ` Davide Libenzi
2002-11-20  7:47                     ` Mark Mielke
2002-11-19  3:53         ` Mark Mielke
  -- strict thread matches above, loose matches on Subject: below --
2002-11-19 19:33 Grant Taylor
2002-11-19 19:51 ` Davide Libenzi
2002-11-19 20:57   ` Mark Mielke
2002-11-19 20:54     ` Davide Libenzi
2002-11-19 17:28 Dan Kegel
2002-11-19  5:49 Grant Taylor
2002-11-19  6:22 ` Mark Mielke
2002-11-19 15:24   ` Jamie Lokier
     [not found] <20021118223125.GB14649@mark.mielke.cc>
2002-11-19  0:23 ` Grant Taylor
2002-11-19  3:58   ` Davide Libenzi
2002-11-19  4:04   ` Mark Mielke
2002-11-18 22:04 Grant Taylor
2002-11-18 22:32 ` Mark Mielke
2002-11-18 23:07 ` Davide Libenzi
2002-11-18 18:40 Grant Taylor
2002-11-18 16:05 Davide Libenzi
2002-11-18 16:12 ` Jakub Jelinek
2002-11-18 16:15   ` Davide Libenzi
2002-11-18 16:18     ` Jakub Jelinek
2002-11-18 16:32       ` Davide Libenzi
2002-11-18 22:22         ` Matthew D. Hall
2002-11-18 17:51 ` Mark Mielke
2002-11-18 18:37   ` Davide Libenzi
2002-11-18 19:59     ` Ulrich Drepper
2002-11-18 21:31       ` Davide Libenzi
2002-11-18 22:56         ` Jamie Lokier
2002-11-18 23:56           ` Davide Libenzi
2002-11-19  1:34             ` Jamie Lokier
2002-11-19  1:50               ` Davide Libenzi

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=3DD9CDB2.2075CCB4@gmx.de \
    --to=froese@gmx.de \
    --cc=davidel@xmailserver.org \
    --cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox