linux/include
Ingo Molnar f180053694 x86, mm: dont use non-temporal stores in pagecache accesses
Impact: standardize IO on cached ops

On modern CPUs it is almost always a bad idea to use non-temporal stores,
as the regression in this commit has shown it:

  30d697f: x86: fix performance regression in write() syscall

The kernel simply has no good information about whether using non-temporal
stores is a good idea or not - and trying to add heuristics only increases
complexity and inserts fragility.

The regression on cached write()s took very long to be found - over two
years. So dont take any chances and let the hardware decide how it makes
use of its caches.

The only exception is drivers/gpu/drm/i915/i915_gem.c: there were we are
absolutely sure that another entity (the GPU) will pick up the dirty
data immediately and that the CPU will not touch that data before the
GPU will.

Also, keep the _nocache() primitives to make it easier for people to
experiment with these details. There may be more clear-cut cases where
non-cached copies can be used, outside of filemap.c.

Cc: Salman Qazi <sqazi@google.com>
Cc: Nick Piggin <npiggin@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-03-02 11:06:49 +01:00
..
acpi acpi/x86: introduce __apci_map_table, v4 2009-02-09 13:35:07 +01:00
asm-arm
asm-frv Merge branch 'x86/urgent' into x86/core 2009-02-20 17:40:43 +01:00
asm-generic linker script: use separate simpler definition for PERCPU() 2009-01-30 23:27:46 +01:00
asm-h8300
asm-m32r headers_check fix: m32r, swab.h 2009-02-01 11:01:26 +05:30
asm-mn10300 headers_check fix: mn10300, swab.h 2009-02-01 11:01:27 +05:30
crypto crypto: shash - Fix tfm destruction 2009-02-05 16:51:25 +11:00
drm drm/i915: add fence register management to execbuf 2009-02-08 21:38:02 +10:00
keys
linux x86, mm: dont use non-temporal stores in pagecache accesses 2009-03-02 11:06:49 +01:00
math-emu
media Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2009-02-02 19:26:06 -08:00
mtd headers_check fix: mtd/inftl-user.h 2009-01-31 00:13:34 +05:30
net net: don't use in_atomic() in gfp_any() 2009-02-12 16:43:17 -08:00
pcmcia
rdma
rxrpc
scsi [SCSI] iscsi_tcp: make padbuf non-static 2009-01-13 10:41:34 -06:00
sound headers_check fix: sound/hdsp.h 2009-01-31 00:13:56 +05:30
trace sched, trace: update trace_sched_wakeup() 2008-12-25 13:10:21 +01:00
video atyfb: fix CONFIG_ namespace violations 2009-02-05 12:56:48 -08:00
xen xen: add xenfs to allow usermode <-> Xen interaction 2009-01-08 08:30:59 -08:00
Kbuild