Zbr's days.

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

Wed, 19 Apr 2006

Kevent based AIO sendfile.


Noone need an excuse to rewrite something.
So I decided to change aio_sendfile() design. It will not significantly change from what was described before, exception is that repeatedly called from keventd context kevent's main processing function will populate pages into VFS cache, and then send them over the net without temporary caching them in kevent's private structure.

Small note: do not mix kevent and keventd. The former is a mechanims of delivering edge and level triggered events to userspace, the latter is a kernel thread in which context workqueues work.

So with aio_sendfile() I just move the work from userspace process' context to keventd context and slighlty change the way pages are inserted into VFS cache and processed. Yes, I'm lazy boom slacker, but it is the simplest way to combine completely different execution contexts of network, VFS and block layer processings.

:: Link / Comments ()