Zbr's days.
January
Sun Mon Tue Wed Thu Fri Sat
 
10
     
2007
Months
Jan

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

Wed, 10 Jan 2007

Climbing evening. First one this year.


After Week of continuous drinking, lazy-boom-slacking and other non-sport stuff, I eventually started training. And miracle has happend - Grange took his fifth point to the climbing zone too. So I started to climb on the walls, but not usual boulderings and traverses - although not a lot of traces were completed (and only one of them was new, which I miserably failed on-sight, but not because it was complex, but only due to the fact, that it was the last trace after 3 hours of climbing, and I tried it on-sight), eventually I completed it.
And now (I write it in the middle of the Jan 11, when I eventually bring myself to the office) I feel that every piece of my body is in pain. It is extremely pleasant masochistic feeling - I like it.
I think if you have awakened and nothing aches, then you are likely dead.
Excellent time.

/life :: Link / Comments (0)


Further development. Ideas. Plans. Agenda.


It looks like kevent is going to be frozen (see looksthis thread in linux-kernel@ about too fast rate of new code creation).
Netchannels are also implemented.
So I have split my TODO list into TODO and DONE parts. Currently it has following items in TODO section:

  • Integration of kevents into mainline
  • Some thoughts about FS (especially about journalling and WAFL approach (I think log-structured fs is really progressive idea)), so it could be used with receiving zero-copy, or even be a network filesystem with distributed capabilities.
    Also need to consider filesystem stress testing and emulation tool.
  • Some thoughts about different threading models. Especially after this analysis.
Things which originally appeared in TODO, but was implemented and essentially completed.
  • Network tree allocator, full sending and receiving zero-copy networking
  • Complete userspace network stack (which actually requires just to sync with TCP stack used in netchannels) and move netchannels into userspace (with help of full zero-copy support and userspace stack)
  • Fast NAT, which will not use Linux connection tracking system (which is extremely slow)
  • True asynchronous IO. My thoughts are described here and here.


Actually kevent integration could be put into DONE section too, since it does not require too much of efforts to maintain it in the separate tree with regular sync with mainline - no one requests more, so it will silently live and work in the own repository.

Although netchannels do not work with my network tree allocator, I will not for a while work with this project due to absence of real need for zero-copy.

Next item in TODO list is filesystem and related development - it is indeed very interesting task, and my next killer project will definitely new filesystem, which, as a minimum must, will behave faster than speed of light and will scale more than universe.
But it is very complex task and I want to have some time something different than kernel, but not less interesting.

So I select new threading model implementation - essentially it will be so called N:M threading model, implemented on top of POSIX interface - I want to create a library, which would be placed just instead of glibc libpthread with at least main functionality.

Or maybe just get a vacation and move to the edge of the Earth. Stop, since Earth is roughly a sphere, I already on the edge. Crap.

Hmm, or maybe drop my current work and organize something own - the more I do own project, the more I like the idea, but not right now.

Will go hacking.

/devel :: Link / Comments (0)


New kevent 'take32' release.


This early morning hack (I hope no one at work reads what I'm doing) contains following major changes:

  • Added aio_sendfile_path() - this syscall allows to asynchronosly transfer file specified by provided pathname to destination socket. Opened file descriptor is returned.
  • Added trivial scheduler which selects execution thread. It allows to specify given thread 'by-hands', but since kaio provides '-1' it uses round-robin to get processing thread. In theory it can be bound to scheduler statistics or gamma-ray receiver data.
  • Number of bug fixes in kevent based AIO mpage_readpages().
Benchmark of the 100 1MB files transfer (files are in VFS already) using sync sendfile() against aio_sendfile_path() shows about 10MB/sec performance win (78 MB/s vs 66-72 MB/s over 1 Gb network, sendfile sending server is one-way AMD Athlong 64 3500+) for aio_sendfile_path().

Well, call me a looser, but I started 3 days resending timeout.
I know it is annoying and disturbing, and I really doubt it is a good way to tell the world about my work, and I bet you all tired from those pathos words, but I really would like to get some feedback, since I want to start to work on network AIO, but sending mails into unfeedbackable (I used word 'destination' for hackers and maillists, but you actually know what I mean) really does not motivate me for that.

/devel/kevent :: Link / Comments (0)