x86: usercopy: check for total size when deciding non-temporal cutoff
authorIngo Molnar <mingo@elte.hu>
Wed, 25 Feb 2009 07:22:20 +0000 (08:22 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 25 Feb 2009 09:20:05 +0000 (10:20 +0100)
commit95108fa34a83ffd97e0af959e4b28d7c62008781
tree06577270f81166d67b9058be1c04812b1ccf1058
parent3255aa2eb636a508fc82a73fabbb8aaf2ff23c0f
x86: usercopy: check for total size when deciding non-temporal cutoff

Impact: make more types of copies non-temporal

This change makes the following simple fix:

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

A bit more sophisticated: we check the 'total' number of bytes
written to decide whether to copy in a cached or a non-temporal
way.

This will for example cause the tail (modulo 4096 bytes) chunk
of a large write() to be non-temporal too - not just the page-sized
chunks.

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>
arch/x86/include/asm/uaccess_64.h