?

Log in

No account? Create an account
splice() gets network receive - brad's life [entries|archive|friends|userinfo]
Brad Fitzpatrick

[ website | bradfitz.com ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

splice() gets network receive [Jul. 17th, 2007|05:59 pm]
Brad Fitzpatrick
[Tags|, , ]

As a follow-up to my earlier excitement, more fun developments in splice() syscall land:

http://www.ussg.iu.edu/hypermail/linux/kernel/0707.1/1426.html
http://www.ussg.iu.edu/hypermail/linux/kernel/0707.1/1427.html

Network receive support!

Getting closer.

Pretty soon Perlbal can do zero-copy network receive/send, without any copies to/from userspace.
LinkReply

Comments:
From: baudehlo
2007-07-18 02:54 am (UTC)

Biggest overhead?

Is copying network packets really the biggest overhead in perlbal? I would have thought more likely it's just perl data structures getting copied all the time.

Though I guess any small win is worth it with the amount of data you're copying around.
(Reply) (Thread)
[User Picture]From: brad
2007-07-18 03:06 am (UTC)

Re: Biggest overhead?

I know where Perl uses CPU, so I'm pretty careful to avoid painful stuff. I believe the reads/writes syscalls were actually a big part of the last profile I did.
(Reply) (Parent) (Thread)
[User Picture]From: xb95
2007-07-18 02:59 am (UTC)
Good stuff. You've only been talking about wanting that for at least three years now (as long as I can remember).

How long before that hits mainstream (Debian/Ubuntu/RHEL/CentOS/FC/whatever) kernels that are part of main distributions?
(Reply) (Thread)