From: Mark Mielke <mark@mark.mielke.cc>
To: Grant Taylor <gtaylor+lkml_abbje111802@picante.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [rfc] epoll interface change and glibc bits ...
Date: Mon, 18 Nov 2002 23:04:28 -0500 [thread overview]
Message-ID: <20021119040428.GB16798@mark.mielke.cc> (raw)
In-Reply-To: <200211190023.gAJ0NZmU001209@habanero.picante.com>
On Mon, Nov 18, 2002 at 07:23:35PM -0500, Grant Taylor wrote:
> >>>>> Mark Mielke <mark@mark.mielke.cc> writes:
> > I would even tend to delay executing low priority events until
> > epoll_wait(0) stopped telling me about high priority events.
> ...for this to work, you have to stow events over epoll calls. The
> sensible place to store these is in your per-fd structure. So you
> still don't save the access to your per-event structure, just the one
> array index lookup.
This isn't necessarily true. For a minimal example a stack or list of
undispatched events can be kept. Also, if all high priority events are
processed, I would not be so worried about low priority events taking
a longer time to be dispatched. Is it not my freedom as an event loop
designer to make these decisions?
> If you do priorities, you *must* do this; otherwise you will be
> processing all events as they arrive in userspace. Merely doing them
> in priority order will produce a slightly reduced but still O(n)
> latency for high priority events, rather than roughly bounded latency
> as is usually the intent.
Overall throughput is not significant. Some events require lower latency
than other events. An event loop that assumes that all events should have
equal latency may be satisfactory for some applications, but will result
in problems for others.
> BTW it is also possible to implement event prioritization in
> kernelspace. You just [e]poll several sets of epolled fd's and take
> the most interesting set of events each time. Unless, that is, the
> new syscall interface broke this...
I'm asking for a little freedom to innovate when the times comes. You are
suggesting that I shouldn't have this freedom, and that my ability to
innovate should be limited to what you or I can imagine at the current
point in time. We're talking about one extra field to a data structure.
I could have asked for epoll to implement a priority scheme internally...
I didn't... :-)
mark
--
mark@mielke.cc/markm@ncf.ca/markm@nortelnetworks.com __________________________
. . _ ._ . . .__ . . ._. .__ . . . .__ | Neighbourhood Coder
|\/| |_| |_| |/ |_ |\/| | |_ | |/ |_ |
| | | | | \ | \ |__ . | | .|. |__ |__ | \ |__ | Ottawa, Ontario, Canada
One ring to rule them all, one ring to find them, one ring to bring them all
and in the darkness bind them...
http://mark.mielke.cc/
next prev parent reply other threads:[~2002-11-19 3:50 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
[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 [this message]
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
-- strict thread matches above, loose matches on Subject: below --
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
2002-11-18 22:21 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
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
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=20021119040428.GB16798@mark.mielke.cc \
--to=mark@mark.mielke.cc \
--cc=gtaylor+lkml_abbje111802@picante.com \
--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
all inboxes | Powered by JetHome®