diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch')
-rw-r--r-- | meta-openembedded/meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch b/meta-openembedded/meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch deleted file mode 100644 index 19261657ac..0000000000 --- a/meta-openembedded/meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch +++ /dev/null @@ -1,72 +0,0 @@ -sysconf params like _SC_LEVEL1_DCACHE_LINESIZE are not universally -implemented, therefore check for them being available, if not there -then read the sysfs directly to get the value - -Upstream-Status: Submitted [https://github.com/stressapptest/stressapptest/pull/100] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- a/src/sat.cc -+++ b/src/sat.cc -@@ -1482,15 +1482,47 @@ int Sat::CpuCount() { - return sysconf(_SC_NPROCESSORS_CONF); - } - -+int Sat::ReadInt(const char *filename, int *value) { -+ char line[64]; -+ int fd = open(filename, O_RDONLY), err = -1; -+ -+ if (fd < 0) -+ return -1; -+ if (read(fd, line, sizeof(line)) > 0) { -+ *value = atoi(line); -+ err = 0; -+ } -+ -+ close(fd); -+ return err; -+} -+ - // Return the worst case (largest) cache line size of the various levels of - // cache actually prsent in the machine. - int Sat::CacheLineSize() { -- int max_linesize = sysconf(_SC_LEVEL1_DCACHE_LINESIZE); -- int linesize = sysconf(_SC_LEVEL2_CACHE_LINESIZE); -+ int max_linesize, linesize; -+#ifdef _SC_LEVEL1_DCACHE_LINESIZE -+ max_linesize = sysconf(_SC_LEVEL1_DCACHE_LINESIZE); -+#else -+ ReadInt("/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", &max_linesize); -+#endif -+#ifdef _SC_LEVEL2_DCACHE_LINESIZE -+ linesize = sysconf(_SC_LEVEL2_DCACHE_LINESIZE); -+#else -+ ReadInt("/sys/devices/system/cpu/cpu0/cache/index1/coherency_line_size", &linesize); -+#endif - if (linesize > max_linesize) max_linesize = linesize; -- linesize = sysconf(_SC_LEVEL3_CACHE_LINESIZE); -+#ifdef _SC_LEVEL3_DCACHE_LINESIZE -+ linesize = sysconf(_SC_LEVEL3_DCACHE_LINESIZE); -+#else -+ ReadInt("/sys/devices/system/cpu/cpu0/cache/index2/coherency_line_size", &linesize); -+#endif - if (linesize > max_linesize) max_linesize = linesize; -- linesize = sysconf(_SC_LEVEL4_CACHE_LINESIZE); -+#ifdef _SC_LEVEL4_DCACHE_LINESIZE -+ linesize = sysconf(_SC_LEVEL4_DCACHE_LINESIZE); -+#else -+ ReadInt("/sys/devices/system/cpu/cpu0/cache/index3/coherency_line_size", &linesize); -+#endif - if (linesize > max_linesize) max_linesize = linesize; - return max_linesize; - } ---- a/src/sat.h -+++ b/src/sat.h -@@ -136,7 +136,8 @@ class Sat { - int CpuCount(); - // Return the worst-case (largest) cache line size of the system. - int CacheLineSize(); -- -+ // Read int values from kernel file system e.g. sysfs -+ int ReadInt(const char *filename, int *value); - // Collect error counts from threads. - int64 GetTotalErrorCount(); - |