linux_dsm_epyc7002/arch/alpha/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 alpha: .gitignore vmlinux.lds 2009-01-15 16:39:40 -08:00
alpha_ksyms.c Generic semaphore implementation 2008-04-17 10:42:34 -04:00
asm-offsets.c CRED: Separate task security context from task_struct 2008-11-14 10:39:16 +11:00
binfmt_loader.c alpha: binfmt_aout fix 2009-05-02 15:36:10 -07:00
console.c ALPHA: support graphics on non-zero PCI domains 2007-06-01 08:18:29 -07:00
core_apecs.c [PATCH] alpha pt_regs cleanups: machine_check() 2006-10-08 12:32:36 -07:00
core_cia.c [PATCH] alpha pt_regs cleanups: machine_check() 2006-10-08 12:32:36 -07:00
core_irongate.c Introduce flags for reserve_bootmem() 2008-02-07 08:42:25 -08:00
core_lca.c [PATCH] alpha pt_regs cleanups: machine_check() 2006-10-08 12:32:36 -07:00
core_marvel.c alpha: AGP update (fixes compile failure) 2009-09-24 07:21:06 -07:00
core_mcpcia.c alpha: fixes for specific machine types 2007-04-17 16:36:27 -07:00
core_polaris.c [PATCH] alpha pt_regs cleanups: machine_check() 2006-10-08 12:32:36 -07:00
core_t2.c alpha: fix compile failures with gcc-4.3 (bug #10438) 2008-06-20 16:46:10 -07:00
core_titan.c alpha: AGP update (fixes compile failure) 2009-09-24 07:21:06 -07:00
core_tsunami.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
core_wildfire.c [PATCH] alpha pt_regs cleanups: machine_check() 2006-10-08 12:32:36 -07:00
entry.S do_pipe cleanup: drop its last user in arch/alpha/ 2009-03-27 14:43:58 -04:00
err_common.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
err_ev6.c alpha: titan and marvel build fixes 2009-05-02 15:36:10 -07:00
err_ev7.c alpha: titan and marvel build fixes 2009-05-02 15:36:10 -07:00
err_impl.h alpha: titan and marvel build fixes 2009-05-02 15:36:10 -07:00
err_marvel.c alpha: titan and marvel build fixes 2009-05-02 15:36:10 -07:00
err_titan.c alpha: titan and marvel build fixes 2009-05-02 15:36:10 -07:00
es1888.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gct.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head.S alpha: convert to use __HEAD and HEAD_TEXT macros. 2009-04-26 09:20:38 -07:00
init_task.c alpha: use .data.init_task instead of .data.init_thread. 2009-09-24 17:16:22 -07:00
io.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq_alpha.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
irq_i8259.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
irq_impl.h alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
irq_pyxis.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
irq_srm.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
irq.c Merge branch 'core/percpu' into percpu-cpumask-x86-for-linus-2 2009-03-27 17:28:43 +01:00
machvec_impl.h alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
Makefile alpha: binfmt_aout fix 2009-05-02 15:36:10 -07:00
module.c alpha: handle kcalloc failure 2008-04-28 08:58:27 -07:00
ns87312.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
osf_sys.c Push BKL into do_mount() 2009-06-11 21:36:08 -04:00
pci_impl.h alpha: AGP update (fixes compile failure) 2009-09-24 07:21:06 -07:00
pci_iommu.c alpha: AGP update (fixes compile failure) 2009-09-24 07:21:06 -07:00
pci-noop.c alpha: compile fixes 2009-01-29 18:04:44 -08:00
pci-sysfs.c PCI/alpha: pci sysfs resources 2009-03-19 19:29:36 -07:00
pci.c alpha: convert u64 to unsigned long long 2009-04-01 08:59:16 -07:00
process.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
proto.h alpha: titan and marvel build fixes 2009-05-02 15:36:10 -07:00
ptrace.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
setup.c alpha: bad macro expansion, parameter is member 2009-06-16 19:47:46 -07:00
signal.c KEYS: Add missing linux/tracehook.h #inclusions 2009-09-09 18:30:02 +10:00
smc37c93x.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
smc37c669.c alpha: convert u64 to unsigned long long 2009-04-01 08:59:16 -07:00
smp.c cpumask: arch_send_call_function_ipi_mask: alpha 2009-09-24 09:34:43 +09:30
srm_env.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
srmcons.c alpha: fix trivial section mismatch warnings 2007-07-16 09:05:37 -07:00
sys_alcor.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_cabriolet.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_dp264.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_eb64p.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_eiger.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_jensen.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_marvel.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_miata.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_mikasa.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_nautilus.c alpha: nautilus - fix hang on boot 2009-01-15 16:39:40 -08:00
sys_noritake.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_rawhide.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_ruffian.c time: move PIT_TICK_RATE to linux/timex.h 2009-06-16 19:47:27 -07:00
sys_rx164.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_sable.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_sio.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
sys_sx164.c alpha: more fixes for specific machine types 2007-04-17 16:36:27 -07:00
sys_takara.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_titan.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
sys_wildfire.c alpha: remove obsolete hw_interrupt_type 2009-06-16 19:47:46 -07:00
systbls.S net: Introduce recvmmsg socket syscall 2009-10-12 23:40:10 -07:00
time.c alpha: convert to use arch_gettimeoffset() 2009-09-22 07:17:43 -07:00
traps.c alpha: convert u64 to unsigned long long 2009-04-01 08:59:16 -07:00
vmlinux.lds.S alpha: Fix duplicate <asm/thread_info.h> include 2009-09-27 14:46:05 -07:00