linux/arch/sh/kernel
Arnaldo Carvalho de Melo a2e2725541 net: Introduce recvmmsg socket syscall
Meaning receive multiple messages, reducing the number of syscalls and
net stack entry/exit operations.

Next patches will introduce mechanisms where protocols that want to
optimize this operation will provide an unlocked_recvmsg operation.

This takes into account comments made by:

. Paul Moore: sock_recvmsg is called only for the first datagram,
  sock_recvmsg_nosec is used for the rest.

. Caitlin Bestler: recvmmsg now has a struct timespec timeout, that
  works in the same fashion as the ppoll one.

  If the underlying protocol returns a datagram with MSG_OOB set, this
  will make recvmmsg return right away with as many datagrams (+ the OOB
  one) it has received so far.

. Rémi Denis-Courmont & Steven Whitehouse: If we receive N < vlen
  datagrams and then recvmsg returns an error, recvmmsg will return
  the successfully received datagrams, store the error and return it
  in the next call.

This paves the way for a subsequent optimization, sk_prot->unlocked_recvmsg,
where we will be able to acquire the lock only at batch start and end, not at
every underlying recvmsg call.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-10-12 23:40:10 -07:00
..
cpu sh: Add support DMA Engine to SH7780 2009-09-25 12:19:33 +09:00
vsyscall kbuild: rename ld-option to cc-ldoption 2009-09-20 12:27:42 +02:00
.gitignore
asm-offsets.c
cpufreq.c
crash_dump.c
debugtraps.S
disassemble.c
dumpstack.c
dwarf.c sh: includecheck fix: dwarf.c 2009-09-24 16:21:50 +09:00
early_printk.c
entry-common.S
ftrace.c
gpio.c
head_32.S
head_64.S
idle.c
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
io_generic.c
io_trapped.c
io.c
irq.c Use macros for .bss.page_aligned section. 2009-09-21 06:27:08 +02:00
kgdb.c
kprobes.c
localtimer.c
machine_kexec.c
machvec.c
Makefile
module.c
nmi_debug.c
process_32.c
process_64.c
ptrace_32.c
ptrace_64.c
relocate_kernel.S
setup.c
sh_bios.c
sh_ksyms_32.c
sh_ksyms_64.c
signal_32.c
signal_64.c
smp.c
stacktrace.c
swsusp.c
sys_sh32.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
sys_sh64.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
sys_sh.c
syscalls_32.S perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
syscalls_64.S net: Introduce recvmmsg socket syscall 2009-10-12 23:40:10 -07:00
time.c
topology.c
traps_32.c sh: Fix up uninitialized variable use caught by gcc 4.4. 2009-09-24 17:48:15 +09:00
traps_64.c
traps.c
unwinder.c
vmlinux.lds.S