From: "zhou drangon" <drangon.mail@gmail.com>
To: linux-kernel@vger.kernel.org
Subject: re: [take22 0/4] kevent: Generic event handling mechanism.
Date: Thu, 2 Nov 2006 10:30:33 +0800 [thread overview]
Message-ID: <aaf959cb0611011830j1ca3e469tc4a6af3a2a010fa@mail.gmail.com> (raw)
In-Reply-To: <aaf959cb0611011829k36deda6ahe61bcb9bf8e612e1@mail.gmail.com>
performance is great, and we are exciting at the result.
I want to know why there can be so much improvement, can we improve epoll too ?
for Kevent, I am more interesting at a universal event machanism.
In one interface, we can wait for timer event, socket event, and disk AIO event,
this can make the userland application easier to handle multiple event.
2006/11/2, Nate Diller <nate.diller@gmail.com>:
> On 11/1/06, Evgeniy Polyakov <johnpol@2ka.mipt.ru> wrote:
> > On Wed, Nov 01, 2006 at 06:20:43PM +0000, Oleg Verych (olecom@flower.upol.cz) wrote:
> > >
> > > Hallo, Evgeniy Polyakov.
> >
> > Hello, Oleg.
> >
> > > On 2006-11-01, you wrote:
> > > []
> > > >> Quantifying "how much more scalable" would be nice, as would be some
> > > >> example where it is useful. ("It makes my webserver twice as fast on
> > > >> monster 64-cpu box").
> > > >
> > > > Trivial kevent web-server can handle 3960+ req/sec on Xeon 2.4Ghz with
> > > [...]
> > >
> > > Seriously. I'm seeing that patches also. New, shiny, always ready "for
> > > inclusion". But considering kernel (linux in this case) as not thing
> > > for itself, i want to ask following question.
> > >
> > > Where's real-life application to do configure && make && make install?
> >
> > Your real life or mine as developer?
> > I fortunately do not know anything about your real life, but my real life
> > applications can be found on project's homepage.
> > There is a link to archive there, where you can find plenty of sources.
> > You likely do not know, but it is a bit risky business to patch all
> > existing applications to show that approach is correct, if
> > implementation is not completed.
> > You likely do not know, but after I first time announced kevents in
> > February I changed interfaces 4 times - and it is just interfaces, not
> > including numerous features added/removed by developer's requests.
> >
> > > There were some comments about laking much of such programs, answers were
> > > "was in prev. e-mail", "need to update them", something like that.
> > > "Trivial web server" sources url, mentioned in benchmark isn't pointed
> > > in patch advertisement. If it was, should i actually try that new
> > > *trivial* wheel?
> >
> > Answer is trivial - there is archive where one can find a source code
> > (filenames are posted regulary). Should I create a rpm? For what glibc
> > version?
> >
> > > Saying that, i want to give you some short examples, i know.
> > > *Linux kernel <-> userspace*:
> > > o Alexey Kuznetsov networking <-> (excellent) iproute set of utilities;
> >
> > iproute documentation was way too bad when Alexey presented it first
> > time :)
> >
> > > o Maxim Krasnyansky tun net driver <-> vtun daemon application;
> > >
> > > *Glibc with mister Drepper* has huge set of tests, please search for
> > > `tst*' files in the sources.
> >
> > Btw, show me splice() 'shiny' application? Does lighttpd use it?
> > Or move_pages().
> >
> > > To make a little hint to you, Evgeniy, why don't you find a little
> > > animal in the open source zoo to implement little interface to
> > > proposed kernel subsystem and then show it to The Big Jury (not me),
> > > we have here? And i can not see, how you've managed to implement
> > > something like that having almost nothing on the test basket.
> > > Very *suspicious* ch.
> >
> > There are always people who do not like something, what can I do with
> > it? I present the code, we discuss it, I ask for inclusion (since it is
> > the only way to get feedback), something requires changes, it is changed
> > and so on - it is development process.
> > I created 'little animal in the open source zoo' by myself to show how
> > simple kevents are.
> >
> > > One, that comes in mind is lighthttpd <http://www.lighttpd.net/>.
> > > It had sub-interface for event systems like select,poll,epoll, when i
> > > checked its sources last time. And it is mature, btw.
> >
> > As I already told several times, I changed only interfaces 4 times
> > already, since no one seems to know what we really want and how
> > interface should look like.
>
> Indesiciveness has certainly been an issue here, but I remember akpm
> and Ulrich both giving concrete suggestions. I was particularly
> interested in Andrew's request to explain and justify the differences
> between kevent and BSD's kqueue interface. Was there a discussion
> that I missed? I am very interested to see your work on this
> mechanism merged, because you've clearly emphasized performance and
> shown impressive results. But it seems like we lose out on a lot by
> throwing out all the applications that already use kqueue.
>
> NATE
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
next prev parent reply other threads:[~2006-11-02 2:30 UTC|newest]
Thread overview: 221+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1154985aa0591036@2ka.mipt.ru>
2006-10-27 16:10 ` [take21 " Evgeniy Polyakov
2006-10-27 16:10 ` [take21 1/4] kevent: Core files Evgeniy Polyakov
2006-10-27 16:10 ` [take21 2/4] kevent: poll/select() notifications Evgeniy Polyakov
2006-10-27 16:10 ` [take21 3/4] kevent: Socket notifications Evgeniy Polyakov
2006-10-27 16:10 ` [take21 4/4] kevent: Timer notifications Evgeniy Polyakov
2006-10-28 10:04 ` [take21 2/4] kevent: poll/select() notifications Eric Dumazet
2006-10-28 10:08 ` Evgeniy Polyakov
2006-10-28 10:28 ` [take21 1/4] kevent: Core files Eric Dumazet
2006-10-28 10:53 ` Evgeniy Polyakov
2006-10-28 12:36 ` Eric Dumazet
2006-10-28 13:03 ` Evgeniy Polyakov
2006-10-28 13:23 ` Eric Dumazet
2006-10-28 13:28 ` Evgeniy Polyakov
2006-10-28 13:34 ` Eric Dumazet
2006-10-28 13:47 ` Evgeniy Polyakov
2006-10-27 16:42 ` [take21 0/4] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-11-07 11:26 ` Jeff Garzik
2006-11-07 11:46 ` Jeff Garzik
2006-11-07 11:58 ` Evgeniy Polyakov
2006-11-07 11:51 ` Evgeniy Polyakov
2006-11-07 12:17 ` Jeff Garzik
2006-11-07 12:29 ` Evgeniy Polyakov
2006-11-07 12:32 ` Jeff Garzik
2006-11-07 19:34 ` Andrew Morton
2006-11-07 20:52 ` David Miller
2006-11-07 21:38 ` Andrew Morton
2006-11-01 11:36 ` [take22 " Evgeniy Polyakov
2006-11-01 11:36 ` [take22 1/4] kevent: Core files Evgeniy Polyakov
2006-11-01 11:36 ` [take22 2/4] kevent: poll/select() notifications Evgeniy Polyakov
2006-11-01 11:36 ` [take22 3/4] kevent: Socket notifications Evgeniy Polyakov
2006-11-01 11:36 ` [take22 4/4] kevent: Timer notifications Evgeniy Polyakov
2006-11-01 13:06 ` [take22 0/4] kevent: Generic event handling mechanism Pavel Machek
2006-11-01 13:25 ` Evgeniy Polyakov
2006-11-01 16:05 ` Pavel Machek
2006-11-01 16:24 ` Evgeniy Polyakov
2006-11-01 18:13 ` Oleg Verych
2006-11-01 18:57 ` Evgeniy Polyakov
2006-11-02 2:12 ` Nate Diller
[not found] ` <aaf959cb0611011829k36deda6ahe61bcb9bf8e612e1@mail.gmail.com>
2006-11-02 2:30 ` zhou drangon [this message]
2006-11-02 7:46 ` Eric Dumazet
2006-11-02 8:01 ` Evgeniy Polyakov
2006-11-02 8:18 ` Eric Dumazet
2006-11-02 8:46 ` Evgeniy Polyakov
2006-11-02 11:33 ` Eric Dumazet
2006-11-06 21:17 ` Eric Dumazet
2006-11-07 8:32 ` Evgeniy Polyakov
2006-11-07 9:18 ` Evgeniy Polyakov
2006-11-07 12:09 ` Evgeniy Polyakov
2006-11-09 7:48 ` Evgeniy Polyakov
2006-11-03 2:42 ` zhou drangon
2006-11-03 9:16 ` Evgeniy Polyakov
2006-11-02 6:21 ` Evgeniy Polyakov
2006-11-02 19:40 ` Nate Diller
2006-11-03 8:42 ` Evgeniy Polyakov
2006-11-03 8:57 ` Pavel Machek
2006-11-03 9:04 ` David Miller
2006-11-07 12:05 ` Jeff Garzik
2006-11-03 9:13 ` Evgeniy Polyakov
2006-11-05 11:19 ` Pavel Machek
2006-11-05 11:43 ` Evgeniy Polyakov
2006-11-07 12:02 ` Jeff Garzik
2006-11-03 18:49 ` Oleg Verych
2006-11-04 10:24 ` Evgeniy Polyakov
2006-11-04 17:47 ` Evgeniy Polyakov
2006-11-01 16:07 ` James Morris
2006-11-07 16:50 ` [take23 0/5] " Evgeniy Polyakov
2006-11-07 16:50 ` [take23 1/5] kevent: Description Evgeniy Polyakov
2006-11-07 16:50 ` [take23 2/5] kevent: Core files Evgeniy Polyakov
2006-11-07 16:50 ` [take23 3/5] kevent: poll/select() notifications Evgeniy Polyakov
2006-11-07 16:50 ` [take23 4/5] kevent: Socket notifications Evgeniy Polyakov
2006-11-07 16:50 ` [take23 5/5] kevent: Timer notifications Evgeniy Polyakov
2006-11-07 22:53 ` [take23 3/5] kevent: poll/select() notifications Davide Libenzi
2006-11-08 8:45 ` Evgeniy Polyakov
2006-11-08 17:03 ` Evgeniy Polyakov
2006-11-07 22:16 ` [take23 2/5] kevent: Core files Andrew Morton
2006-11-08 8:24 ` Evgeniy Polyakov
2006-11-07 22:16 ` [take23 1/5] kevent: Description Andrew Morton
2006-11-08 8:23 ` Evgeniy Polyakov
2006-11-07 22:17 ` [take23 0/5] kevent: Generic event handling mechanism Andrew Morton
2006-11-08 8:21 ` Evgeniy Polyakov
2006-11-08 14:51 ` Eric Dumazet
2006-11-08 22:03 ` Andrew Morton
2006-11-08 22:44 ` Davide Libenzi
2006-11-08 23:07 ` Eric Dumazet
2006-11-08 23:56 ` Davide Libenzi
2006-11-09 7:24 ` Eric Dumazet
2006-11-09 7:52 ` Eric Dumazet
2006-11-09 17:12 ` Davide Libenzi
2006-11-09 8:23 ` [take24 0/6] " Evgeniy Polyakov
2006-11-09 8:23 ` [take24 1/6] kevent: Description Evgeniy Polyakov
2006-11-09 8:23 ` [take24 2/6] kevent: Core files Evgeniy Polyakov
2006-11-09 8:23 ` [take24 3/6] kevent: poll/select() notifications Evgeniy Polyakov
2006-11-09 8:23 ` [take24 4/6] kevent: Socket notifications Evgeniy Polyakov
2006-11-09 8:23 ` [take24 5/6] kevent: Timer notifications Evgeniy Polyakov
2006-11-09 8:23 ` [take24 6/6] kevent: Pipe notifications Evgeniy Polyakov
2006-11-09 9:08 ` [take24 3/6] kevent: poll/select() notifications Eric Dumazet
2006-11-09 9:29 ` Evgeniy Polyakov
2006-11-09 18:51 ` Davide Libenzi
2006-11-09 19:10 ` Evgeniy Polyakov
2006-11-09 19:42 ` Davide Libenzi
2006-11-09 20:10 ` Davide Libenzi
2006-11-11 17:36 ` [take24 7/6] kevent: signal notifications Evgeniy Polyakov
2006-11-11 22:28 ` [take24 0/6] kevent: Generic event handling mechanism Ulrich Drepper
2006-11-13 10:54 ` Evgeniy Polyakov
2006-11-13 11:16 ` Evgeniy Polyakov
2006-11-20 0:02 ` Ulrich Drepper
2006-11-20 8:25 ` Evgeniy Polyakov
2006-11-20 8:43 ` Andrew Morton
2006-11-20 8:51 ` Evgeniy Polyakov
2006-11-20 9:15 ` Andrew Morton
2006-11-20 9:19 ` Evgeniy Polyakov
2006-11-20 20:29 ` Ulrich Drepper
2006-11-20 21:46 ` Jeff Garzik
2006-11-20 21:52 ` Ulrich Drepper
2006-11-21 9:09 ` Ingo Oeser
2006-11-22 11:38 ` Michael Tokarev
2006-11-22 11:47 ` Evgeniy Polyakov
2006-11-22 12:33 ` Jeff Garzik
2006-11-21 9:53 ` Evgeniy Polyakov
2006-11-21 16:58 ` Ulrich Drepper
2006-11-21 17:43 ` Evgeniy Polyakov
2006-11-21 18:46 ` Evgeniy Polyakov
2006-11-21 20:01 ` Jeff Garzik
2006-11-22 10:41 ` Evgeniy Polyakov
2006-11-21 20:19 ` Jeff Garzik
2006-11-22 10:39 ` Evgeniy Polyakov
2006-11-22 7:38 ` Ulrich Drepper
2006-11-22 10:44 ` Evgeniy Polyakov
2006-11-22 21:02 ` Ulrich Drepper
2006-11-23 12:23 ` Evgeniy Polyakov
2006-11-23 8:52 ` Kevent POSIX timers support Evgeniy Polyakov
2006-11-23 20:26 ` Ulrich Drepper
2006-11-24 9:50 ` Evgeniy Polyakov
2006-11-27 18:20 ` Ulrich Drepper
2006-11-27 18:24 ` David Miller
2006-11-27 18:36 ` Ulrich Drepper
2006-11-27 18:49 ` David Miller
2006-11-28 9:16 ` Evgeniy Polyakov
2006-11-28 19:13 ` David Miller
2006-11-28 19:22 ` Evgeniy Polyakov
2006-12-12 1:36 ` David Miller
2006-12-12 5:31 ` Evgeniy Polyakov
2006-11-28 9:16 ` Evgeniy Polyakov
2006-12-13 13:21 ` Tushar Adeshara
2006-12-13 13:27 ` Evgeniy Polyakov
2006-11-22 7:33 ` [take24 0/6] kevent: Generic event handling mechanism Ulrich Drepper
2006-11-22 10:38 ` Evgeniy Polyakov
2006-11-22 22:22 ` Ulrich Drepper
2006-11-23 12:18 ` Evgeniy Polyakov
2006-11-23 22:23 ` Ulrich Drepper
2006-11-24 10:57 ` Evgeniy Polyakov
2006-11-27 19:12 ` Ulrich Drepper
2006-11-28 11:00 ` Evgeniy Polyakov
2006-11-22 12:09 ` Evgeniy Polyakov
2006-11-22 12:15 ` Evgeniy Polyakov
2006-11-22 13:46 ` Evgeniy Polyakov
2006-11-22 22:24 ` Ulrich Drepper
2006-11-23 12:22 ` Evgeniy Polyakov
2006-11-23 20:34 ` Ulrich Drepper
2006-11-24 10:58 ` Evgeniy Polyakov
2006-11-27 18:23 ` Ulrich Drepper
2006-11-28 10:13 ` Evgeniy Polyakov
2006-12-27 20:45 ` Ulrich Drepper
2006-12-28 9:50 ` Evgeniy Polyakov
2006-11-21 16:29 ` [take25 " Evgeniy Polyakov
2006-11-21 16:29 ` [take25 1/6] kevent: Description Evgeniy Polyakov
2006-11-21 16:29 ` [take25 2/6] kevent: Core files Evgeniy Polyakov
2006-11-21 16:29 ` [take25 3/6] kevent: poll/select() notifications Evgeniy Polyakov
2006-11-21 16:29 ` [take25 4/6] kevent: Socket notifications Evgeniy Polyakov
2006-11-21 16:29 ` [take25 5/6] kevent: Timer notifications Evgeniy Polyakov
2006-11-21 16:29 ` [take25 6/6] kevent: Pipe notifications Evgeniy Polyakov
2006-11-22 11:20 ` Eric Dumazet
2006-11-22 11:30 ` Evgeniy Polyakov
2006-11-22 23:46 ` [take25 1/6] kevent: Description Ulrich Drepper
2006-11-23 11:52 ` Evgeniy Polyakov
2006-11-23 19:45 ` Ulrich Drepper
2006-11-24 11:01 ` Evgeniy Polyakov
2006-11-24 16:06 ` Ulrich Drepper
2006-11-24 16:14 ` Evgeniy Polyakov
2006-11-24 16:31 ` Evgeniy Polyakov
2006-11-27 19:20 ` Ulrich Drepper
2006-11-22 23:52 ` Ulrich Drepper
2006-11-23 11:55 ` Evgeniy Polyakov
2006-11-23 20:00 ` Ulrich Drepper
2006-11-23 21:49 ` Hans Henrik Happe
2006-11-23 22:34 ` Ulrich Drepper
2006-11-24 11:50 ` Evgeniy Polyakov
2006-11-24 16:17 ` Ulrich Drepper
2006-11-24 11:46 ` Evgeniy Polyakov
2006-11-24 16:30 ` Ulrich Drepper
2006-11-24 16:49 ` Evgeniy Polyakov
2006-11-27 19:23 ` Ulrich Drepper
2006-11-23 22:33 ` Ulrich Drepper
2006-11-23 22:48 ` Jeff Garzik
2006-11-23 23:45 ` Ulrich Drepper
2006-11-24 0:48 ` Eric Dumazet
2006-11-24 8:14 ` Andrew Morton
2006-11-24 8:33 ` Eric Dumazet
2006-11-24 15:26 ` Ulrich Drepper
2006-11-24 13:07 ` Miquel van Smoorenburg
2006-11-24 0:14 ` Hans Henrik Happe
2006-11-24 12:05 ` Evgeniy Polyakov
2006-11-24 12:13 ` Evgeniy Polyakov
2006-11-27 19:43 ` Ulrich Drepper
2006-11-28 10:26 ` Evgeniy Polyakov
2006-11-30 19:14 ` [take26 0/8] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-11-30 19:14 ` [take26 1/8] kevent: Description Evgeniy Polyakov
2006-11-30 19:14 ` [take26 2/8] kevent: Core files Evgeniy Polyakov
2006-11-30 19:14 ` [take26 3/8] kevent: poll/select() notifications Evgeniy Polyakov
2006-11-30 19:14 ` [take26 4/8] kevent: Socket notifications Evgeniy Polyakov
2006-11-30 19:14 ` [take26 5/8] kevent: Timer notifications Evgeniy Polyakov
2006-11-30 19:14 ` [take26 6/8] kevent: Pipe notifications Evgeniy Polyakov
2006-11-30 19:14 ` [take26 7/8] kevent: Signal notifications Evgeniy Polyakov
2006-11-30 19:14 ` [take26 8/8] kevent: Kevent posix timer notifications Evgeniy Polyakov
2006-11-03 16:30 [take22 0/4] kevent: Generic event handling mechanism Jonathan Lemon
2006-11-05 20:47 ` Pavel Machek
2006-11-06 10:13 ` Evgeniy Polyakov
2006-11-06 10:16 ` Pavel Machek
2006-11-06 10:37 ` Evgeniy Polyakov
2006-11-06 12:58 ` Pavel Machek
2006-11-06 13:54 ` Evgeniy Polyakov
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=aaf959cb0611011830j1ca3e469tc4a6af3a2a010fa@mail.gmail.com \
--to=drangon.mail@gmail.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®