Zbr's days.

About :: TODO :: Blog :: RSS :: Old blog :: Projects :: GIT :: Gallery :: Notes

Wed, 22 Nov 2006

New features scheduled (implemented) for the next kevent release.


Most of them are implemented in the local tree, I'm just waiting for ack from Ulrich Drepper:

  • new command, which allows to mark any events as ready. It is also possible to just wake up listener of the given kevent queue if number of events requested to be marked as ready is zero. It allows glibc to notify other event processing threads, which are parked in the waiting syscalls like kevent_wait() or kevent_get_events(), that they can process new events in cae of originally awakened thread was terminated.
  • fixed unsufficient parameters check in kevent pipe notifications (spotted by Eric Dumazet).
  • return -ENOSYS if there is no registered event type instead of -EINVAL.
  • add 'flags' parameters to kevent_init() syscall (not implemented yet).

Actually looking at how kevent makes fast progress and how slowly I get positive feedback and how complex are negotiations about features and requirement addons are performed with some people, I seriously doubt there will be enough resources to really complete the task in the way I want and think is the best for future development.
I have several possible ways to solve existing (stagnating) problem with APIs and feature addons:
  • just implement all horrible workarounds and ugliness I'm asked about, which I think will allow quite fast kevent integration into mainline.
  • continuously perform seems to be endless negotiations with mutual insults in linux-kernel@. This will not force kevent inclusion, and likely will not end up with it at all, but there is probability (I think it is somewhere between zero and void), that I can convince people that I am right. Practice shows that it is hardly to convince people, which do not hear what you talk to them, no matter correct it is or not.
  • say that 'I do not care and will not even discuss all requested utterly damaged ideas' or something like that and stop discussion. It can or can not help with kevent integration, but in any case I at least will have enough time for more interesting tasks than empty talks in linux-kernel@. For example netchannels wildcard support and fast NAT implementation, zero-copy support for netchannels, asynchronous IO, threading library, log-structured filesystem
The more I think, the more I like third variant...

/devel/kevent :: Link / Comments ()