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 x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
connector
cpufreq [CPUFREQ] Make ignore_nice_load setting of ondemand work as expected. 2009-02-05 12:25:26 -05:00
cpuidle
crypto
dca dca: redesign locks to fix deadlocks 2009-02-02 23:26:57 -08:00
dio
dma atmel-mci: fix initialization of dma slave data 2009-02-18 15:37:55 -08:00
edac powerpc: More printing warning fixes for the l64 to ll64 conversion 2009-01-28 17:15:52 +11:00
eisa x86: allow more than 8 cpus to be used on 32-bit 2009-01-30 00:20:22 +01:00
firewire firewire: core: Remove card from list of cards when enable fails 2009-02-01 11:17:24 +01:00
firmware Merge branch 'x86/urgent' into x86/core 2009-02-20 17:40:43 +01:00
gpio gpiolib: fix request related issue 2009-01-29 18:04:43 -08:00
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 i2c: Move old eeprom driver to /drivers/misc/eeprom 2009-01-26 21:19:53 +01:00
ide Fix my email address in qd65xx.[ch]/pata_qdi.c 2009-02-03 16:53:56 -08:00
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 x86: allow more than 8 cpus to be used on 32-bit 2009-01-30 00:20:22 +01:00
isdn drivers/isdn: introduce missing kfree 2009-02-08 17:00:49 -08:00
leds
lguest lguest: Fix a memory leak with the lg object during launcher close 2009-01-30 11:34:11 +10:30
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 Merge branch 'linus' into core/percpu 2009-01-27 12:01:51 +01:00
parisc Documentation: move DMA-mapping.txt to Doc/PCI/ 2009-01-29 18:19:29 -08:00
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 pcf50633_charger: Fix typo 2009-02-02 19:53:02 +03:00
ps3
rapidio
regulator leds: Fix bounds checking of wm8350->pmic.led 2009-01-30 21:50:49 +00:00
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 virtio-pci: do not oops on config change if driver not loaded 2009-02-02 19:17:56 -08:00
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