PATCH: Add __x86_64_data_cache_size
H.J. Lu
hongjiu.lu@intel.com
Thu Dec 31 18:45:00 GMT 2009
Hi,
We are working on the optimized 32bit and 64bit memset . We need the full
size of the first level cache. Otherwise, we see 20% performance drop
vs. 15% performance gain around the the first level cache size on Intel
Atom. This patch adds __x86_64_data_cache_size.
Thanks.
H.J.
---
2009-12-31 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/i386/i686/cacheinfo.c (__x86_64_data_cache_size): New.
* sysdeps/x86_64/cacheinfo.c (__x86_64_data_cache_size): New.
(init_cacheinfo): Set __x86_64_data_cache_size.
diff --git a/sysdeps/i386/i686/cacheinfo.c b/sysdeps/i386/i686/cacheinfo.c
index 82e4cd2..f8b7f52 100644
--- a/sysdeps/i386/i686/cacheinfo.c
+++ b/sysdeps/i386/i686/cacheinfo.c
@@ -1,3 +1,4 @@
+#define __x86_64_data_cache_size __x86_data_cache_size
#define __x86_64_data_cache_size_half __x86_data_cache_size_half
#define __x86_64_shared_cache_size __x86_shared_cache_size
#define __x86_64_shared_cache_size_half __x86_shared_cache_size_half
diff --git a/sysdeps/x86_64/cacheinfo.c b/sysdeps/x86_64/cacheinfo.c
index 5b66c62..d586981 100644
--- a/sysdeps/x86_64/cacheinfo.c
+++ b/sysdeps/x86_64/cacheinfo.c
@@ -452,9 +452,10 @@ __cache_sysconf (int name)
}
-/* Half the data cache size for use in memory and string routines, typically
+/* Data cache size for use in memory and string routines, typically
L1 size. */
long int __x86_64_data_cache_size_half attribute_hidden = 32 * 1024 / 2;
+long int __x86_64_data_cache_size attribute_hidden = 32 * 1024;
/* Shared cache size for use in memory and string routines, typically
L2 or L3 size. */
long int __x86_64_shared_cache_size_half attribute_hidden = 1024 * 1024 / 2;
@@ -657,7 +658,10 @@ init_cacheinfo (void)
}
if (data > 0)
- __x86_64_data_cache_size_half = data / 2;
+ {
+ __x86_64_data_cache_size_half = data / 2;
+ __x86_64_data_cache_size = data;
+ }
if (shared > 0)
{
More information about the Libc-alpha
mailing list