Hi, The following two patches, that I cooked today and haven't properly benchmarked, implements a new socket syscall, recvmmsg, that stands for receive multiple messages, in one call. I implemented the attached program as a test case and to show it in action, and lightly tested it using two clients (netcat) sending big files from a machine with a 100 mbit/s NIC and another with a 1 Gbit/s NIC to a server with the patched kernel, output: $ ./recvmmsg 5001 128 nr_datagrams received: 19 4352 bytes received from doppio.ghostprotocols.net in 17 datagrams 256 bytes received from filo.ghostprotocols.net in 1 datagrams 256 bytes received from doppio.ghostprotocols.net in 1 datagrams nr_datagrams received: 14 2816 bytes received from doppio.ghostprotocols.net in 11 datagrams 256 bytes received from filo.ghostprotocols.net in 1 datagrams 512 bytes received from doppio.ghostprotocols.net in 2 datagrams nr_datagrams received: 19 2304 bytes received from doppio.ghostprotocols.net in 9 datagrams 256 bytes received from filo.ghostprotocols.net in 1 datagrams 2304 bytes received from doppio.ghostprotocols.net in 9 datagrams nr_datagrams received: 14 2816 bytes received from doppio.ghostprotocols.net in 11 datagrams 256 bytes received from filo.ghostprotocols.net in 1 datagrams 512 bytes received from doppio.ghostprotocols.net in 2 datagrams nr_datagrams received: 19 4608 bytes received from doppio.ghostprotocols.net in 18 datagrams 256 bytes received from filo.ghostprotocols.net in 1 datagrams filo is the machine with a 100 mbit/s NIC, obviously :-) There are some things I probably will change, like perhaps pushing it deeper from socket to sock level, but I'd like to hear about the general feeling about at least the userspace interface. Best Regards, - Arnaldo