public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
To: Jamal Hadi Salim <hadi@cyberus.ca>
Cc: David Miller <davem@davemloft.net>,
	Ulrich Drepper <drepper@redhat.com>,
	Andrew Morton <akpm@osdl.org>, netdev <netdev@vger.kernel.org>,
	Zach Brown <zach.brown@oracle.com>,
	Christoph Hellwig <hch@infradead.org>,
	Chase Venters <chase.venters@clientec.com>,
	Johann Borck <johann.borck@densedata.com>,
	linux-kernel@vger.kernel.org, Jeff Garzik <jeff@garzik.org>
Subject: Re: [take29 0/8] kevent: Generic event handling mechanism.
Date: Sat, 23 Dec 2006 20:10:26 +0300	[thread overview]
Message-ID: <20061223171026.GA17343@2ka.mipt.ru> (raw)
In-Reply-To: <11668927001365@2ka.mipt.ru>

On Sat, Dec 23, 2006 at 07:51:40PM +0300, Evgeniy Polyakov (johnpol@2ka.mipt.ru) wrote:
> 
> Generic event handling mechanism.
> 
> Kevent is a generic subsytem which allows to handle event notifications.
> It supports both level and edge triggered events. It is similar to
> poll/epoll in some cases, but it is more scalable, it is faster and
> allows to work with essentially eny kind of events.
> 
> Events are provided into kernel through control syscall and can be read
> back through ring buffer or using usual syscalls.
> Kevent update (i.e. readiness switching) happens directly from internals
> of the appropriate state machine of the underlying subsytem (like
> network, filesystem, timer or any other).
> 
> Homepage:
> http://tservice.net.ru/~s0mbre/old/?section=projects&item=kevent
> 
> Documentation page:
> http://linux-net.osdl.org/index.php/Kevent
> 
> Consider for inclusion.
> 
> New benchmark, which can be a hoax though, can be found at 
> http://tservice.net.ru/~s0mbre/blog/2006/11/30#2006_11_30
> where kevent on amd64 with 1gb of ram can handle more than 7200 events per 
> second with 8000 requests concurrency with 'ab' benchmark and lighttpd.
> Although I tought it should not be published due to possible errors,
> I decided to send it for review.
> 
> With this release I start 3 days resending timeout - i.e. each third day I 
> will send either new version (if something new was requested and agreed to 
> be implemented) or resending with back counter started from three. 
> When back counter hits zero after three resending I consider there is no 
> interest in subsystem and I will stop further sending.
> First one will be sent about Jan 10.
> 
> Thanks for understanding and your time.
> 
> Changes from 'take28' patchset:
>  * optimized af_unix to use socket notifications
>  * changed ALWAYS_QUEUE behaviour with poll/select notifications - previously
>  	kevent was not queued into poll wait queue when ALWAYS_QUEUE flag
> 	is set
>  * added KEVENT_POLL_POLLRDHUP definition into ukevent.h header
>  * libevent-1.2 patch (Jamal, your request is completed, so I'm waiting two weeks
>  	before starting final countdown :)
> 	All regression tests passed successfully except test_evbuffer(), which
> 	crashes on my amd64 linux 2.6 test machine for all types of notifications,
> 	probably it is fixed in libevent-1.2a version, I did not check.
> 	Patch and README can be found at project homepage.

P.S. all kernel kevent options must be turned on (namely kevent_poll,
kevent_socket and kevent_pipe).
I did not hack 'configure' to check for supported notification types.

-- 
	Evgeniy Polyakov

  parent reply	other threads:[~2006-12-23 17:11 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3154985aa0591036@2ka.mipt.ru>
2006-12-17 13:53 ` [take28-resend_2->0 0/8] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-12-17 13:53   ` [take28-resend_2->0 1/8] kevent: Description Evgeniy Polyakov
2006-12-17 13:53     ` [take28-resend_2->0 2/8] kevent: Core files Evgeniy Polyakov
2006-12-17 13:53       ` [take28-resend_2->0 3/8] kevent: poll/select() notifications Evgeniy Polyakov
2006-12-17 13:53         ` [take28-resend_2->0 4/8] kevent: Socket notifications Evgeniy Polyakov
2006-12-17 13:53           ` [take28-resend_2->0 5/8] kevent: Timer notifications Evgeniy Polyakov
2006-12-17 13:53             ` [take28-resend_2->0 6/8] kevent: Pipe notifications Evgeniy Polyakov
2006-12-17 13:53               ` [take28-resend_2->0 7/8] kevent: Signal notifications Evgeniy Polyakov
2006-12-17 13:53                 ` [take28-resend_2->0 8/8] kevent: Kevent posix timer notifications Evgeniy Polyakov
2006-12-19  3:47   ` [take28-resend_2->0 0/8] kevent: Generic event handling mechanism Ulrich Drepper
2006-12-19  4:01     ` Randy Dunlap
2006-12-19  4:51     ` Evgeniy Polyakov
2006-12-19  6:21       ` Ulrich Drepper
2006-12-19  6:38         ` Evgeniy Polyakov
2006-12-19  8:01           ` Ulrich Drepper
2006-12-19  8:56             ` Evgeniy Polyakov
2006-12-21  9:14 ` [take28-resend_1->0 " Evgeniy Polyakov
2006-12-21  9:14   ` [take28-resend_1->0 1/8] kevent: Description Evgeniy Polyakov
2006-12-21  9:14     ` [take28-resend_1->0 2/8] kevent: Core files Evgeniy Polyakov
2006-12-21  9:14       ` [take28-resend_1->0 3/8] kevent: poll/select() notifications Evgeniy Polyakov
2006-12-21  9:14         ` [take28-resend_1->0 4/8] kevent: Socket notifications Evgeniy Polyakov
2006-12-21  9:14           ` [take28-resend_1->0 5/8] kevent: Timer notifications Evgeniy Polyakov
2006-12-21  9:14             ` [take28-resend_1->0 6/8] kevent: Pipe notifications Evgeniy Polyakov
2006-12-21  9:14               ` [take28-resend_1->0 7/8] kevent: Signal notifications Evgeniy Polyakov
2006-12-21  9:14                 ` [take28-resend_1->0 8/8] kevent: Kevent posix timer notifications Evgeniy Polyakov
2006-12-21 10:35   ` [take28-resend_1->0 0/8] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-12-21 10:41     ` Jeff Garzik
2006-12-21 10:49       ` Evgeniy Polyakov
2006-12-21 10:57         ` Evgeniy Polyakov
2006-12-21 13:48         ` jamal
2006-12-21 14:04           ` Evgeniy Polyakov
2006-12-21 14:21             ` jamal
2006-12-21 14:23               ` Evgeniy Polyakov
2006-12-21 14:36                 ` Evgeniy Polyakov
2006-12-21 14:40                   ` jamal
2006-12-21 14:46                     ` Evgeniy Polyakov
2006-12-21 16:42                       ` jamal
2006-12-21 16:51                         ` Evgeniy Polyakov
2006-12-23 16:51 ` [take29 " Evgeniy Polyakov
2006-12-23 16:51   ` [take29 1/8] kevent: Description Evgeniy Polyakov
2006-12-23 16:51     ` [take29 2/8] kevent: Core files Evgeniy Polyakov
2006-12-23 16:51       ` [take29 3/8] kevent: poll/select() notifications Evgeniy Polyakov
2006-12-23 16:51         ` [take29 4/8] kevent: Socket notifications Evgeniy Polyakov
2006-12-23 16:51           ` [take29 5/8] kevent: Timer notifications Evgeniy Polyakov
2006-12-23 16:51             ` [take29 6/8] kevent: Pipe notifications Evgeniy Polyakov
2006-12-23 16:51               ` [take29 7/8] kevent: Signal notifications Evgeniy Polyakov
2006-12-23 16:51                 ` [take29 8/8] kevent: Kevent posix timer notifications Evgeniy Polyakov
2006-12-23 17:10   ` Evgeniy Polyakov [this message]
2006-12-28 15:56   ` [take29 0/8] kevent: Generic event handling mechanism Ingo Molnar
2006-12-29  8:48     ` Evgeniy Polyakov
2006-12-28 16:01   ` Ingo Molnar
2006-12-29  8:55     ` Evgeniy Polyakov
2006-12-29 12:54       ` Ingo Molnar
2006-12-29 13:14         ` Evgeniy Polyakov
2006-12-29 13:24           ` Ingo Molnar
2006-12-29 12:25 ` [take30 0/9] " Evgeniy Polyakov
2006-12-29 12:25   ` [take30 1/9] kevent: Description Evgeniy Polyakov
2006-12-29 12:25     ` [take30 2/9] kevent: Core files Evgeniy Polyakov
2006-12-29 12:25       ` [take30 3/9] kevent: poll/select() notifications Evgeniy Polyakov
2006-12-29 12:25         ` [take30 4/9] kevent: Socket notifications Evgeniy Polyakov
2006-12-29 12:25           ` [take30 5/9] kevent: Timer notifications Evgeniy Polyakov
2006-12-29 12:25             ` [take30 6/9] kevent: Pipe notifications Evgeniy Polyakov
2006-12-29 12:25               ` [take30 7/9] kevent: Signal notifications Evgeniy Polyakov
2006-12-29 12:25                 ` [take30 8/9] kevent: Kevent posix timer notifications Evgeniy Polyakov
2006-12-29 12:25                   ` [take30 9/9] kevent: Private userspace notifications Evgeniy Polyakov
2007-01-08 19:25 ` [take31 0/10] kevent: Generic event handling mechanism Evgeniy Polyakov
2007-01-08 19:25   ` [take31 1/10] kevent: Description Evgeniy Polyakov
2007-01-08 19:25     ` [take31 2/10] kevent: Core files Evgeniy Polyakov
2007-01-08 19:25       ` [take31 3/10] kevent: poll/select() notifications Evgeniy Polyakov
2007-01-08 19:25         ` [take31 4/10] kevent: Socket notifications Evgeniy Polyakov
2007-01-08 19:25           ` [take31 5/10] kevent: Timer notifications Evgeniy Polyakov
2007-01-08 19:25             ` [take31 6/10] kevent: Pipe notifications Evgeniy Polyakov
2007-01-08 19:25               ` [take31 7/10] kevent: Signal notifications Evgeniy Polyakov
2007-01-08 19:26                 ` [take31 8/10] kevent: Kevent posix timer notifications Evgeniy Polyakov
2007-01-08 19:26                   ` [take31 9/10] kevent: Private userspace notifications Evgeniy Polyakov
2007-01-08 19:26                     ` [take31 10/10] kevent: Kevent based AIO (aio_sendfile()) 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=20061223171026.GA17343@2ka.mipt.ru \
    --to=johnpol@2ka.mipt.ru \
    --cc=akpm@osdl.org \
    --cc=chase.venters@clientec.com \
    --cc=davem@davemloft.net \
    --cc=drepper@redhat.com \
    --cc=hadi@cyberus.ca \
    --cc=hch@infradead.org \
    --cc=jeff@garzik.org \
    --cc=johann.borck@densedata.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=zach.brown@oracle.com \
    /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