linux/drivers
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
..
accessibility
acpi acpi/x86: introduce __apci_map_table, v4 2009-02-09 13:35:07 +01:00
amba
ata Add support for VT6415 PCIE PATA IDE Host Controller 2009-02-17 16:56:31 -08:00
atm fore200: fix oops on failed firmware load 2009-02-10 17:19:19 -08:00
auxdisplay
base Merge branch 'x86/urgent' into x86/apic 2009-02-05 22:30:01 +01:00
block Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2009-02-18 18:33:04 -08:00
bluetooth
cdrom
char tpm: correct email address for tpm_infineon-driver 2009-02-11 14:25:35 -08:00
clocksource
connector
cpufreq
cpuidle
crypto
dca
dio
dma atmel-mci: fix initialization of dma slave data 2009-02-18 15:37:55 -08:00
edac
eisa
firewire
firmware Merge branch 'x86/urgent' into x86/core 2009-02-20 17:40:43 +01:00
gpio
gpu x86, mm: dont use non-temporal stores in pagecache accesses 2009-03-02 11:06:49 +01:00
hid HID: move tmff and zpff devices from ignore_list to blacklist 2009-02-17 13:25:01 +01:00
hwmon lis3lv02d: add axes knowledge of HP Pavilion dv5 models 2009-02-18 15:37:54 -08:00
i2c
ide
idle
ieee1394 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2009-02-06 08:48:16 -08:00
infiniband
input
isdn drivers/isdn: introduce missing kfree 2009-02-08 17:00:49 -08:00
leds
lguest
macintosh
mca
md block: fix bad definition of BIO_RW_SYNC 2009-02-18 10:32:00 +01:00
media V4L/DVB (10626): ivtv: fix regression in get sliced vbi format 2009-02-17 09:43:09 -03:00
memstick
message
mfd mfd: Fix sm501_register_gpio section mismatch 2009-02-17 09:48:05 +01:00
misc Merge branch 'linus' into x86/apic 2009-02-13 09:44:22 +01:00
mmc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc 2009-02-18 17:55:15 -08:00
mtd Merge branch 'x86/urgent' into x86/core 2009-02-20 17:40:43 +01:00
net Merge branches 'x86/acpi', 'x86/apic', 'x86/cpudetect', 'x86/headers', 'x86/paravirt', 'x86/urgent' and 'x86/xen'; commit 'v2.6.29-rc5' into x86/core 2009-02-17 12:07:00 +01:00
nubus
of
oprofile
parisc
parport parport: parport_serial, don't bind netmos ibm 0299 2009-02-11 14:25:37 -08:00
pci Merge branch 'x86/urgent' into x86/core 2009-02-20 17:40:43 +01:00
pcmcia
platform x86: dell-laptop: depends on POWER_SUPPLY 2009-02-18 15:37:56 -08:00
pnp
power
ps3
rapidio
regulator
rtc rtc: t reaches -1, tested 0 2009-02-11 14:25:36 -08:00
s390 [S390] fix "mem=" handling in case of standby memory 2009-02-19 15:19:19 +01:00
sbus
scsi
serial jsm: additional device support 2009-02-18 15:37:55 -08:00
sh
sn
spi spi-gpio: sanitize MISO bitvalue 2009-02-18 15:37:56 -08:00
ssb
staging Staging: panel: fix lcd panel driver build failure 2009-02-09 11:26:18 -08:00
tc
telephony
thermal
uio
usb Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-02-19 09:52:12 -08:00
uwb
video fbdev/drm: fix Kconfig submenu mess in "Graphics support" 2009-02-18 15:37:56 -08:00
virtio
w1 w1: w1 temp calculation overflow fix 2009-02-11 14:25:37 -08:00
watchdog Merge branch 'x86/urgent' into x86/core 2009-02-20 17:40:43 +01:00
xen Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
zorro
Kconfig
Makefile