poll-readme This patch removes the wait queue manipulation when you call poll(2) with a timeout of 0 (i.e. don't wait). The theory behind this is that if you don't want to wait, there is no need to place the process on a wait queue (a process placed on a wait queue will be put to sleep on a subsequent call to schedule(), not before, as kernel code is not pre-emtable). These unnecessary manipulations of wait queues consume a lot of time: without this patch it takes 4.9 milliseconds to call poll(2) and now it takes 2.9 milliseconds. The timing test was performed on a Pentium 100 while polling 1021 file descriptors. The file descriptors are from the pseudo tty device created for a rlogin session. The patch is against virgin 2.1.51. It has been included in 2.1.52. See my select patch which also avoids allocating space for a wait table if not needed.