summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorShaohua Li2008-08-21 04:46:06 +0200
committerIngo Molnar2008-08-21 13:47:45 +0200
commitd75586ad01e6c5a30e7337fb87d61e03556a1ecb (patch)
tree71fa07acb4b408e51a72b2c0630c2a620196caf4 /include
parentRevert "introduce two APIs for page attribute" (diff)
downloadkernel-qcow2-linux-d75586ad01e6c5a30e7337fb87d61e03556a1ecb.tar.gz
kernel-qcow2-linux-d75586ad01e6c5a30e7337fb87d61e03556a1ecb.tar.xz
kernel-qcow2-linux-d75586ad01e6c5a30e7337fb87d61e03556a1ecb.zip
x86, pageattr: introduce APIs to change pageattr of a page array
Add array interface APIs of pageattr. page based cache flush is quite slow for a lot of pages. If pages are more than 1024 (4M), the patch will use a wbinvd(). We have a simple test here (run a 3d game - open arena), nearly all agp memory allocation are small (< 1M), so suppose this will not impact runtime performance. Signed-off-by: Dave Airlie <airlied@gmail.com> Signed-off-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86/cacheflush.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/asm-x86/cacheflush.h b/include/asm-x86/cacheflush.h
index f4c0ab50d2c2..0a5f71817b3e 100644
--- a/include/asm-x86/cacheflush.h
+++ b/include/asm-x86/cacheflush.h
@@ -66,6 +66,9 @@ int set_memory_rw(unsigned long addr, int numpages);
int set_memory_np(unsigned long addr, int numpages);
int set_memory_4k(unsigned long addr, int numpages);
+int set_memory_array_uc(unsigned long *addr, int addrinarray);
+int set_memory_array_wb(unsigned long *addr, int addrinarray);
+
/*
* For legacy compatibility with the old APIs, a few functions
* are provided that work on a "struct page".