OpenCloudOS-Kernel/arch/avr32/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
..
.gitignore avr32: add .gitignore files 2008-09-19 18:21:29 +02:00
Makefile Generic semaphore implementation 2008-04-17 10:42:34 -04:00
asm-offsets.c avr32: Fix lockup after Java stack underflow in user mode 2008-09-01 13:04:04 +02:00
avr32_ksyms.c avr32: add generic_find_next_le_bit bit function 2008-09-19 18:21:30 +02:00
cpu.c sysdev: Pass the attribute to the low level sysdev show/store function 2008-07-21 21:55:02 -07:00
entry-avr32b.S KEYS: Extend TIF_NOTIFY_RESUME to (almost) all architectures [try #6] 2009-09-02 21:29:19 +10:00
head.S AVR32: Get rid of board_early_init 2006-11-06 10:43:23 +01:00
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
irq.c sparseirq: use kstat_irqs_cpu on non-x86 architectures too 2009-01-12 20:01:12 +01:00
kprobes.c [AVR32] Enable debugging only when needed 2008-01-25 08:31:39 +01:00
module.c module: cleanup FIXME comments about trimming exception table entries. 2009-06-12 21:47:05 +09:30
nmi_debug.c [AVR32] NMI debugging 2008-01-25 08:31:43 +01:00
ocd.c libfs: allow error return from simple attributes 2008-02-08 09:22:34 -08:00
process.c ptrace: remove PT_DTRACE from avr32, mn10300, parisc, s390, sh, xtensa 2009-06-18 13:03:48 -07:00
ptrace.c [AVR32] Enable debugging only when needed 2008-01-25 08:31:39 +01:00
setup.c avr32: added mem kernel command line option support 2008-09-22 09:51:01 +02:00
signal.c KEYS: Add missing linux/tracehook.h #inclusions 2009-09-09 18:30:02 +10:00
stacktrace.c fix core/stacktrace changes on avr32, mips, sh 2008-07-18 14:42:35 +02:00
switch_to.S [PATCH] avr32 architecture 2006-09-26 08:48:54 -07:00
sys_avr32.c avr32: Introducing asm/syscalls.h 2008-12-17 13:32:38 +01:00
syscall-stubs.S avr32: Fix out-of-range rcalls in large kernels 2009-01-16 09:31:57 +01:00
syscall_table.S net: Introduce recvmmsg socket syscall 2009-10-12 23:40:10 -07:00
time.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
traps.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
vmlinux.lds.S linker script: unify usage of discard definition 2009-07-09 11:27:40 +09:00