1
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
accounting
acpi
aoe
arm Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-03-12 16:04:50 -08:00
auxdisplay
blackfin
block Documentation: fix block/biodoc.txt dma mapping description 2010-03-08 09:11:07 +01:00
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 doc: fix console doc typo 2010-02-24 13:51:32 +01:00
cpu-freq [CPUFREQ] Processor Clocking Control interface driver 2010-01-13 10:55:16 -05:00
cpuidle
cris
crypto
development-process
device-mapper dm: document when snapshot has finished merging 2010-03-06 02:29:56 +00:00
DocBook libata: Fix several inaccuracies in developer's guide 2010-05-05 14:48:27 -04:00
driver-model Fix spelling of 'platform' in comments and doc 2010-02-05 12:22:34 +01:00
dvb V4L/DVB: get_dvb_firmware: Fix typo, sort list of components 2010-02-26 15:10:56 -03:00
early-userspace
fault-injection lkdtm: add debugfs access and loosen KPROBE ties 2010-03-06 11:26:32 -08:00
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 Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
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 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2010-03-19 09:43:06 -07:00
isdn gigaset: small documentation improvement 2010-02-26 01:24:22 -08:00
ja_JP
kbuild
kdump
ko_KR
kvm KVM: trivial document fixes 2010-03-01 12:35:43 -03:00
laptops Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-03-12 16:04:50 -08:00
lguest lguest: remove unneeded zlib.h include in example launcher 2010-02-24 14:22:22 +10:30
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
PCI Documentation: rename PCI/PCI-DMA-mapping.txt to DMA-API-HOWTO.txt 2010-03-24 16:31:20 -07:00
pcmcia pcmcia: use ops_mutex for rsrc_{mgr,nonstatic} locking 2010-02-17 17:48:24 +01:00
power Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
powerpc powerpc/fsl: add device tree binding for QE firmware 2010-03-26 22:09:57 -06:00
pps
prctl
RCU rcu: Update docs for rcu_access_pointer and rcu_dereference_protected 2010-04-14 12:20:12 +02:00
s390 Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
scheduler
scsi Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
serial ldisc: new dcd_change() method for line disciplines 2010-03-12 15:52:43 -08:00
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 Documentation/timers/: split txt and source files 2010-03-12 15:52:35 -08:00
trace Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
uml
usb USB: convert to the runtime PM framework 2010-03-02 14:54:12 -08:00
video4linux V4L/DVB: Documentation: gspca.txt: update known mr97310a cams 2010-02-26 15:11:09 -03:00
vm Documentation/vm/: split txt and source files 2010-03-12 15:52:35 -08:00
w1
watchdog [WATCHDOG] doc: Fix use of WDIOC_SETOPTIONS ioctl. 2010-04-06 14:23:55 +00:00
wimax
x86 x86, numa: Remove configurable node size support for numa emulation 2010-02-15 14:34:18 -08:00
zh_CN
00-INDEX
applying-patches.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
cachetlb.txt Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-03-01 09:15:15 -08:00
Changes netfilter: xtables: remove xt_string revision 0 2010-03-25 17:04:57 +01:00
circular-buffers.txt Document Linux's circular buffering capabilities 2010-03-24 16:31:22 -07:00
CodingStyle
cpu-hotplug.txt
cpu-load.txt
cputopology.txt
credentials.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt
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 Documentation: rename PCI-DMA-mapping.txt to DMA-API-HOWTO.txt 2010-03-12 15:52:43 -08:00
DMA-attributes.txt
DMA-ISA-LPC.txt
dmaengine.txt
dontdiff Merge branch 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-kconfig 2010-02-25 14:43:57 -08:00
dynamic-debug-howto.txt
edac.txt
eisa.txt doc: fix Defaultd -> Defaults typo in EISA doc 2010-02-05 12:22:39 +01:00
email-clients.txt Documentation/email-clients.txt: update gmail information 2010-03-12 15:52:35 -08:00
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 gpio: introduce gpio_request_one() and friends 2010-03-06 11:26:48 -08:00
highuid.txt
HOWTO Documentation/HOWTO: update git home URL 2010-04-22 15:24:56 -07:00
hw_random.txt
init.txt init/main.c: improve usability in case of init binary failure 2010-03-06 11:26:29 -08:00
initrd.txt
intel_txt.txt
Intel-IOMMU.txt
io_ordering.txt
io-mapping.txt
IO-mapping.txt Documentation: fix ioremap return type 2010-01-02 10:09:44 -08:00
iostats.txt
IPMI.txt ipmi: add parameter to limit CPU usage in kipmid 2010-03-12 15:52:39 -08:00
IRQ-affinity.txt
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt documentation: update kernel-doc-nano-HOWTO information 2010-01-11 09:34:07 -08:00
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 kobject: documentation: Update to refer to kset-example.c. 2010-03-19 07:12:20 -07:00
kprobes.txt kprobes: Add documents of jump optimization 2010-02-25 17:49:27 +01:00
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
Makefile Documentation/fs/: split txt and source files 2010-03-12 15:52:35 -08:00
ManagementStyle
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 doc: capitalization and other minor fixes in pnp doc 2010-02-05 12:22:44 +01:00
preempt-locking.txt
printk-formats.txt
prio_tree.txt
rbtree.txt
rfkill.txt Document the rfkill sysfs ABI 2010-03-10 17:09:33 -05:00
robust-futex-ABI.txt
robust-futexes.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
SAK.txt
SecurityBugs
SELinux.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
slow-work.txt
SM501.txt
Smack.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
SubmitChecklist Documentation/SubmitChecklist: add rule #1 2010-03-12 15:52:35 -08:00
SubmittingDrivers
SubmittingPatches
svga.txt
sysfs-rules.txt
sysrq.txt
tomoyo.txt
unaligned-memory-access.txt
unicode.txt
unshare.txt
VGA-softcursor.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