Skip to main content

Posts

Showing posts from September 12, 2010

Improving (network) I/O performance

Introduction The reason for the current work is to analyze different methods for efficent delivery of network events from kernel mode to user mode. Five methods are examined, poll() that has been chosen as the better old-style method, standard /dev/poll interface, standard RT signals, RT signals with one-sig-per-fd patch and a new /dev/epoll that uses a quite different notification method. This work is composed by : 1) the new /dev/epoll kernel patch 2) the /dev/poll patch from Provos-Lever modified to work with 2.4.6 3) the HTTP server 4) the deadconn(tm) tool to create "dead" connections As a measurement tool httperf has been chosen coz, even if not perfect, it offers a quite sufficent number of loading options. The new /dev/epoll kernel patch The patch is quite simple and it adds notification callbacks to the 'struct file' data structure : ******* include/linux/fs.h struct file { ... /* file callback list */ rwlock_t f_cblo