linux/Documentation
Eric Dumazet 3b098e2d7c net: Consistent skb timestamping
With RPS inclusion, skb timestamping is not consistent in RX path.

If netif_receive_skb() is used, its deferred after RPS dispatch.

If netif_rx() is used, its done before RPS dispatch.

This can give strange tcpdump timestamps results.

I think timestamping should be done as soon as possible in the receive
path, to get meaningful values (ie timestamps taken at the time packet
was delivered by NIC driver to our stack), even if NAPI already can
defer timestamping a bit (RPS can help to reduce the gap)

Tom Herbert prefer to sample timestamps after RPS dispatch. In case
sampling is expensive (HPET/acpi_pm on x86), this makes sense.

Let admins switch from one mode to another, using a new
sysctl, /proc/sys/net/core/netdev_tstamp_prequeue

Its default value (1), means timestamps are taken as soon as possible,
before backlog queueing, giving accurate timestamps.

Setting a 0 value permits to sample timestamps when processing backlog,
after RPS dispatch, to lower the load of the pre-RPS cpu.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-05-15 23:57:10 -07:00
..
ABI Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into merge 2010-04-08 13:34:54 -04:00
DocBook libata: Fix several inaccuracies in developer's guide 2010-05-05 14:48:27 -04:00
PCI Documentation: rename PCI/PCI-DMA-mapping.txt to DMA-API-HOWTO.txt 2010-03-24 16:31:20 -07:00
RCU rcu: Update docs for rcu_access_pointer and rcu_dereference_protected 2010-04-14 12:20:12 +02:00
accounting
acpi
aoe
arm
auxdisplay
blackfin
block
blockdev
cdrom
cgroups cgroups: fix procs documentation 2010-04-24 11:31:25 -07:00
connector include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
console
cpu-freq
cpuidle
cris
crypto
development-process
device-mapper
driver-model
dvb
early-userspace
fault-injection
fb fbdev: rename imacfb.txt to efifb.txt and change imacfb to efifb. 2010-04-07 08:38:02 -07:00
filesystems revert "procfs: provide stack information for threads" and its fixup commits 2010-05-11 17:33:41 -07:00
firmware_class
frv
hwmon
i2c i2c-core: Erase pointer to clientdata on removal 2010-05-04 11:09:27 +02:00
i2o
ia64
ide
infiniband
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-05-05 07:53:18 -07:00
ioctl
isdn
ja_JP
kbuild
kdump
ko_KR
kvm
laptops
lguest
m68k
make
mips
misc-devices
mn10300
mtd
namespaces
netlabel
networking net: reserve ports for applications using fixed port numbers 2010-05-15 23:28:40 -07:00
parisc
pcmcia
power
powerpc powerpc/fsl: add device tree binding for QE firmware 2010-03-26 22:09:57 -06:00
pps
prctl
s390
scheduler
scsi
serial
sh
sound ALSA: hda - Update document about MSI and interrupts 2010-04-01 18:08:29 +02:00
sparc
spi spi: spidev_test gives error upon 1-byte transfer 2010-04-29 16:40:30 -06:00
sysctl net: Consistent skb timestamping 2010-05-15 23:57:10 -07:00
telephony
thermal
timers
trace
uml
usb
video4linux
vm
w1
watchdog [WATCHDOG] doc: Fix use of WDIOC_SETOPTIONS ioctl. 2010-04-06 14:23:55 +00:00
wimax
x86
zh_CN
00-INDEX
BUG-HUNTING
Changes netfilter: xtables: remove xt_string revision 0 2010-03-25 17:04:57 +01:00
CodingStyle
DMA-API-HOWTO.txt Documentation: rename PCI/PCI-DMA-mapping.txt to DMA-API-HOWTO.txt 2010-03-24 16:31:20 -07:00
DMA-API.txt
DMA-ISA-LPC.txt
DMA-attributes.txt
HOWTO Documentation/HOWTO: update git home URL 2010-04-22 15:24:56 -07:00
IO-mapping.txt
IPMI.txt
IRQ-affinity.txt
IRQ.txt
Intel-IOMMU.txt
Makefile
ManagementStyle
SAK.txt
SELinux.txt
SM501.txt
SecurityBugs
Smack.txt
SubmitChecklist
SubmittingDrivers
SubmittingPatches
VGA-softcursor.txt
applying-patches.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
cachetlb.txt
circular-buffers.txt Document Linux's circular buffering capabilities 2010-03-24 16:31:22 -07:00
cpu-hotplug.txt
cpu-load.txt
cputopology.txt
credentials.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt
dmaengine.txt
dontdiff
dynamic-debug-howto.txt
edac.txt
eisa.txt
email-clients.txt
feature-removal-schedule.txt Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-05-12 00:05:35 -07:00
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt
gpio.txt
highuid.txt
hw_random.txt
init.txt
initrd.txt
intel_txt.txt
io-mapping.txt
io_ordering.txt
iostats.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt libata: fix docs, RE port and device of libata.force ID separated by point 2010-04-22 21:52:14 -04:00
keys-request-key.txt
keys.txt
kmemcheck.txt
kmemleak.txt
kobject.txt
kprobes.txt
kref.txt
ldm.txt
leds-class.txt
leds-lp3944.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
logo.gif
logo.txt
magic-number.txt
mca.txt
md.txt
memory-barriers.txt Document Linux's circular buffering capabilities 2010-03-24 16:31:22 -07:00
memory-hotplug.txt
memory.txt
mono.txt
mutex-design.txt
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
parport-lowlevel.txt
parport.txt
pi-futex.txt
pnp.txt
preempt-locking.txt
printk-formats.txt
prio_tree.txt
rbtree.txt
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
slow-work.txt
sparse.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt Documentation: -stable rules: upstream commit ID requirement reworded 2010-04-22 15:24:56 -07:00
svga.txt
sysfs-rules.txt
sysrq.txt
tomoyo.txt
unaligned-memory-access.txt
unicode.txt
unshare.txt
vgaarbiter.txt
video-output.txt
volatile-considered-harmful.txt Documentation/volatile-considered-harmful.txt: correct cpu_relax() documentation 2010-03-24 16:31:20 -07:00
zorro.txt