|
|
About
TODO
Blog
RSS
Old blog
Projects
Gallery
Notes
Sat, 10 Feb 2007
Watching '24' series...
It is for real maniacs - maniacs of series!
Little introduction: this serie tells us about one day (24 hours)
of life of USA on the edge of some catastrophe, and CTU agent Jack Bauer (Kiefer Sutherland) saves the world.
I was told about first season (first 24 hours - 24 series), and trash over them
was exactly how I like - so I started to watch second season, I managed
to complete it (althgough I watched only half of series) and was quite
exhausted, but the last serie asks for next season, so I asked
Bass to tell me
in short about third season - he replied something like 'trash all over the place -
killing, duying, viruses, guns, fights, death, sex, rock-n-roll, main hero is a hero'.
Yes, I wanted exactly that description, but again, third season asks for the next one,
but fourth one was not seen even by Bass, so he jumped in the middle of the
fifth, where everyone seems to die except Jack Bauer.
Lazyweb, please, if you know the end of the fifth season, do not hesitate and drop me a mail
about it - I do not want to watch the whole season - it is like a drug.
Bass seems found the solution - he will record me the first and the last
series from each season.
Good.
Looking to official site, it looks like there is a season number 6.
Bad.
P.S. And the last question - will that bad guy on yacht, who at the end of the second season
'started' third one by saying something like 'you will see' to another bad guy,
be killed by Jack and who is he at all? (do not even say he is an unknown illegitimate brother
of Jack Bauer or mr. President who revenges them)
Thanks.
/life :: Link / Comments (0)
Test which shows how broken is thread-like AIO design.
Linus has proposed
yet another way to do async syscalls.
It is a bit similar to fibrils, but different in that
regard, that Linus' patch just creates a new real thread
if async call blocks. So, when syscall blocks, system returns to user as a different
thread.
There is a huge problem with that - per syscall
thread creation/destruction. Linus, why do you think people
do not create new thread each time new client has connected to
web server?
Artificial example with sys_stat64() does not count -
try to have thousands of such threads.
That approach sucks even more than fibrils, imho, althogh Zach's one has a problem,
that fibril is always created no matter if call does not block.
Rescheduling is a problem.
To prove that this is a huge problem I've setup a simple test - I changed
all sockets allocation from process context (actually only TCP sending
functions) to GFP_ATOMIC, so when they will fail,
and thus process will put into sleep, since previous allocation
policy was GFP_KERNEL, a new thread would be created.
So, I got following results:
tcp_sendmsg: sock: ffff810038e57900, wait: 562.
tcp_sendmsg: sock: ffff810038e57340, wait: 563.
tcp_sendmsg: sock: ffff810038e56d80, wait: 564.
tcp_sendmsg: sock: ffff810038e567c0, wait: 565.
tcp_sendmsg: sock: ffff810038e56200, wait: 566.
printk: 20458 messages suppressed.
tcp_sendmsg: sock: ffff81003363d300, wait: 21025.
and the like...
That was a simple couple of seconds test run of ab benchmark
against 2.6.20 kernel with lighttpd web server - about 4k connections per second,
80k connections total, trivial index page (got from debian installer) on athlon64 with 1gb of ram
connected over 1gbit link.
And during that simple test system would created 21k threads?
No way, it is just broken design. It is wrong.
So, read my lips - ev-e-ry-thing con-nec-ted to the net-work sle-eps.
Linus, if you read this (although I doubt), please, do not make terrible mistake.
Do not include kevent, if you do not want, but please think about above test before it is too late.
/devel/kevent/aio :: Link / Comments (0)
|