sys_poll spends around 1/2 of the execution time allocating / freeing a few bytes temporary memory. The attached patch tries to avoid these allocation by using the stack - usually only a few bytes are needed, kmalloc is used for the rest. The result: one poll of stdin is down from 1736 cpu ticks to 865 cpu ticks (Pentium II/350 SMP, SMP kernel) select() should also be faster, but I haven't written a micro-benchmark for select. Please test it, -- Manfred