Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread Evgeniy Polyakov
On Thu, Dec 21, 2006 at 12:14:17PM +0300, Evgeniy Polyakov ([EMAIL PROTECTED]) 
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=projectsitem=kevent
 
 Documentation page:
 http://linux-net.osdl.org/index.php/Kevent
 
 Consider for inclusion.

Due to this stall kevent inclusion into lighttpd CVS tree is postponed.

The last version will be released saturday or sunday, and looking into
overhelming flow of feedback comments on this feature, project will not
be released to linux-kernel@, after this I will
complete netchannels support and start kevent based AIO project - mostly
network AIO with new design, which is based on set of entities, which
can describe set of tasks which should be performed
asynchronously (from user point of view, although read and write
obviously must be done after open and before close), for example syscall
which gets as parameter destination socket and local filename (with
optional offset and length fields), which will asynchronously from user
point of view open a file and transfer requested part to the destination
socket and then return opened file descriptor (or it can be closed if
requested). Similar mechanism can be done for read/write calls.

Interested parties will be able to apply patches for theirs own kernels.

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread Jeff Garzik

Evgeniy Polyakov wrote:

On Thu, Dec 21, 2006 at 12:14:17PM +0300, Evgeniy Polyakov ([EMAIL PROTECTED]) 
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=projectsitem=kevent

Documentation page:
http://linux-net.osdl.org/index.php/Kevent

Consider for inclusion.


Due to this stall kevent inclusion into lighttpd CVS tree is postponed.

The last version will be released saturday or sunday, and looking into
overhelming flow of feedback comments on this feature, project will not
be released to linux-kernel@, after this I will
complete netchannels support and start kevent based AIO project - mostly
network AIO with new design, which is based on set of entities, which
can describe set of tasks which should be performed
asynchronously (from user point of view, although read and write
obviously must be done after open and before close), for example syscall


kevent is being considered for inclusion, but there is no need to get 
impatient.  Once kevent code stops getting revised rapidly, Andrew 
Morton can pick it up for -mm, for wide dissemination, testing and 
review.  After that phase, it can be pushed to mainline.


The feeling I get from other kernel hackers is that you are demanding 
inclusion now! now! now! rather than giving all stakeholders a chance 
to give input, and let your design sink into the collective brain.


This isn't just an optional feature but a key new addition to the 
kernel.  So we should intentionally take more time and consideration 
than normal.  We don't want to go back and have to change fundamental 
kevent details due to design flaws, we want to get it right.


Jeff



-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread Evgeniy Polyakov
On Thu, Dec 21, 2006 at 05:41:41AM -0500, Jeff Garzik ([EMAIL PROTECTED]) wrote:
 Evgeniy Polyakov wrote:
 On Thu, Dec 21, 2006 at 12:14:17PM +0300, Evgeniy Polyakov 
 ([EMAIL PROTECTED]) 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=projectsitem=kevent
 
 Documentation page:
 http://linux-net.osdl.org/index.php/Kevent
 
 Consider for inclusion.
 
 Due to this stall kevent inclusion into lighttpd CVS tree is postponed.
 
 The last version will be released saturday or sunday, and looking into
 overhelming flow of feedback comments on this feature, project will not
 be released to linux-kernel@, after this I will
 complete netchannels support and start kevent based AIO project - mostly
 network AIO with new design, which is based on set of entities, which
 can describe set of tasks which should be performed
 asynchronously (from user point of view, although read and write
 obviously must be done after open and before close), for example syscall
 
 kevent is being considered for inclusion, but there is no need to get 
 impatient.  Once kevent code stops getting revised rapidly, Andrew 
 Morton can pick it up for -mm, for wide dissemination, testing and 
 review.  After that phase, it can be pushed to mainline.

I do not say 'hey, include it now, or I will cry', I just want to have
_some_ progress. But I do not get _any_ feedback. What should I think?
I doubt bothering people each third day with new resend is a good idea,
so I plan to drop it.

Btw, Andrew dropped 'take23' patchset from his tree, when it was
obsoleted, but did not import later versions :)

 The feeling I get from other kernel hackers is that you are demanding 
 inclusion now! now! now! rather than giving all stakeholders a chance 
 to give input, and let your design sink into the collective brain.

No. I do not want immediate inclusion, I want progress, so I could setup
my plans on it - if people keep silence, I stop this and work on my own
kevent goals, since I like current state of hte kevent for my tasks.

I do not hack for inclusion.

 This isn't just an optional feature but a key new addition to the 
 kernel.  So we should intentionally take more time and consideration 
 than normal.  We don't want to go back and have to change fundamental 
 kevent details due to design flaws, we want to get it right.

So comment on its bugs, its design, implementation, ask questions,
request features, show interest (even with 'I have no time right now,
but will loko at it after in a week after vacations').

No one does it, so no one cares, so my behaviour.

   Jeff

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread Evgeniy Polyakov
On Thu, Dec 21, 2006 at 01:49:18PM +0300, Evgeniy Polyakov ([EMAIL PROTECTED]) 
wrote:
 So comment on its bugs, its design, implementation, ask questions,
 request features, show interest (even with 'I have no time right now,
 but will loko at it after in a week after vacations').
 
 No one does it, so no one cares, so my behaviour.

Btw, kevent will celebrate its first birtday (one year!) in two weeks
(Jan 6). Feel free to party!

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread jamal
Evgeniy,

On Thu, 2006-21-12 at 13:49 +0300, Evgeniy Polyakov wrote:

 So comment on its bugs, its design, implementation, ask questions,
 request features, show interest (even with 'I have no time right now,
 but will loko at it after in a week after vacations').
 
 No one does it, so no one cares, so my behaviour.
 

Please dont be discouraged by lack of attention - you are doing good
work.

I will concur with Jeff's point that since you are putting out a
profound conceptual changes, and there are many stake holders, it
requires scrutiny on their part. You need to build consensus in such a
situation. 
Some things that would help progress and build momentum:
- As i have advised you before, why dont you modify something like
existing libraries such as some of the loop thingies of desktop managers
such as kde/gnome or better things like libevent etc. Then write your
app on top of that? nobody is gonna run your httpd but if you
demonstrate that libevent is much better with your changes (with zero
changes to apps), people will migrate
- from a user space angle if people like Ulrich would state their views
on the current version you have. 
Note, they dont have to agree with you i.e the conclusion could be a
simple agree to disagree.
- There really oughta be a limit on how long people are allowed to be
silent. After that IMO your code should just go in ...
 

cheers,
jamal

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread Evgeniy Polyakov
On Thu, Dec 21, 2006 at 08:48:05AM -0500, jamal ([EMAIL PROTECTED]) wrote:
 Evgeniy,
 
 On Thu, 2006-21-12 at 13:49 +0300, Evgeniy Polyakov wrote:
 
  So comment on its bugs, its design, implementation, ask questions,
  request features, show interest (even with 'I have no time right now,
  but will loko at it after in a week after vacations').
  
  No one does it, so no one cares, so my behaviour.
  
 
 Please dont be discouraged by lack of attention - you are doing good
 work.
 
 I will concur with Jeff's point that since you are putting out a
 profound conceptual changes, and there are many stake holders, it
 requires scrutiny on their part. You need to build consensus in such a
 situation. 
 Some things that would help progress and build momentum:
 - As i have advised you before, why dont you modify something like
 existing libraries such as some of the loop thingies of desktop managers
 such as kde/gnome or better things like libevent etc. Then write your
 app on top of that? nobody is gonna run your httpd but if you
 demonstrate that libevent is much better with your changes (with zero
 changes to apps), people will migrate
 - from a user space angle if people like Ulrich would state their views
 on the current version you have. 
 Note, they dont have to agree with you i.e the conclusion could be a
 simple agree to disagree.
 - There really oughta be a limit on how long people are allowed to be
 silent. After that IMO your code should just go in ...

I modified world-wide used web server lighttpd and ran a lot of tests
with it (compared to epoll version with major performance win).

I was asked yesterday by Jan Kneschke (lighttpd main developer) if
kevent API is ready so he could include my patch into mainline lighttpd 
tree, but I answered 'I do not know if kevent will be or not included, 
everyone keeps silence'.

I just do not know _what_ else should be done not even for inclusion - 
but at least for some progress.

You want libevent to be patched? Its site is currently down, but ok, I
will create a patch.

 cheers,
 jamal

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread jamal
On Thu, 2006-21-12 at 17:04 +0300, Evgeniy Polyakov wrote:

 I modified world-wide used web server lighttpd and ran a lot of tests
 with it (compared to epoll version with major performance win).
 
 I was asked yesterday by Jan Kneschke (lighttpd main developer) if
 kevent API is ready so he could include my patch into mainline lighttpd 
 tree, but I answered 'I do not know if kevent will be or not included, 
 everyone keeps silence'.
 

Ok, so you are building the momentum then. People like Jan are the users
of such API and should be speaking up. Then kernel people will be forced
to look at it.

 I just do not know _what_ else should be done not even for inclusion - 
 but at least for some progress.

I know you are frustrated but stop doing the above like a broken vinyl
record, it doesnt help your case. 

 You want libevent to be patched? Its site is currently down, but ok, I
 will create a patch.
 

I promise in 2 weeks to migrate an app or two that i have that use
libevent to your version if you have it by then. I will then test and
give you my opinion. 

cheers,
jamal

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread Evgeniy Polyakov
On Thu, Dec 21, 2006 at 09:21:07AM -0500, jamal ([EMAIL PROTECTED]) wrote:
  I just do not know _what_ else should be done not even for inclusion - 
  but at least for some progress.
 
 I know you are frustrated but stop doing the above like a broken vinyl
 record, it doesnt help your case. 

That's why I'm going to stop void resending completely.

  You want libevent to be patched? Its site is currently down, but ok, I
  will create a patch.
  
 
 I promise in 2 weeks to migrate an app or two that i have that use
 libevent to your version if you have it by then. I will then test and
 give you my opinion. 

Ok, when site will be ready I will patch libevent and post patch or link
in this thread. I plan to complete it this week.

 cheers,
 jamal

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread Evgeniy Polyakov
On Thu, Dec 21, 2006 at 05:23:37PM +0300, Evgeniy Polyakov ([EMAIL PROTECTED]) 
wrote:
 Ok, when site will be ready I will patch libevent and post patch or link
 in this thread. I plan to complete it this week.

Btw, it uses only read/write/signal on fd events, so it must use
-poll() and thus be as fast as epoll. 

Things like sockets/pipes can only benefit from direct kevent usage 
instead of -poll() and wrappers.

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread jamal
On Thu, 2006-21-12 at 17:36 +0300, Evgeniy Polyakov wrote:

 Btw, it uses only read/write/signal on fd events, so it must use
 -poll() and thus be as fast as epoll. 
 

It is supposed to detect the best mechanism in the kernel and switch
to that.
At the moment for example in my app it defaults to epoll.

 Things like sockets/pipes can only benefit from direct kevent usage 
 instead of -poll() and wrappers.

You should be able change it to use those schemes when it detects
that the kernel supports them.

cheers,
jamal

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread Evgeniy Polyakov
On Thu, Dec 21, 2006 at 09:40:26AM -0500, jamal ([EMAIL PROTECTED]) wrote:
  Things like sockets/pipes can only benefit from direct kevent usage 
  instead of -poll() and wrappers.
 
 You should be able change it to use those schemes when it detects
 that the kernel supports them.

I.e. stat() for each new file descriptor - note, that _you_ asked it :)

 cheers,
 jamal

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread jamal
On Thu, 2006-21-12 at 17:46 +0300, Evgeniy Polyakov wrote:
 On Thu, Dec 21, 2006 at 09:40:26AM -0500, jamal ([EMAIL PROTECTED]) wrote:
   Things like sockets/pipes can only benefit from direct kevent usage 
   instead of -poll() and wrappers.
  
  You should be able change it to use those schemes when it detects
  that the kernel supports them.
 
 I.e. stat() for each new file descriptor - note, that _you_ asked it :)

Didnt follow. Is there some issue with libevent you mean? 

cheers,
jamal


-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [take28-resend_1-0 0/8] kevent: Generic event handling mechanism.

2006-12-21 Thread Evgeniy Polyakov
On Thu, Dec 21, 2006 at 11:42:04AM -0500, jamal ([EMAIL PROTECTED]) wrote:
Things like sockets/pipes can only benefit from direct kevent usage 
instead of -poll() and wrappers.
   
   You should be able change it to use those schemes when it detects
   that the kernel supports them.
  
  I.e. stat() for each new file descriptor - note, that _you_ asked it :)
 
 Didnt follow. Is there some issue with libevent you mean? 

libevent provides file descriptor without any additional info about it -
so when it is added into the waiting subsystem, userspace must select
different usage cases (i.e. different kevent notifications for different
types of file descriptor - socket notifications for sockets and pipes,
poll/select for all others), this requires stat() call per provided file
descriptor.

Event addition/waiting itself is the same - only parameters (type and
requested event) are changed.

 cheers,
 jamal

-- 
Evgeniy Polyakov
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html