diff options
| author | Alexey Dokuchaev <danfe@FreeBSD.org> | 2015-11-19 15:08:58 +0000 |
|---|---|---|
| committer | Alexey Dokuchaev <danfe@FreeBSD.org> | 2015-11-19 15:08:58 +0000 |
| commit | 3106f8e69f6d3ae885d6aa0d053c97d2f74a5b3b (patch) | |
| tree | 20f24f807225facabfdb0ca14449b22d99d9d0ed /benchmarks/interbench/files/patch-interbench.c | |
| parent | e1fee1b1d21f049d2d5b1eef6e80b707728d5a90 (diff) | |
- Drop requirement for linprocfs(5) to be mounted under /compat/linux/proc
- Use `do-install-DOCS-on' target for docs and perform some minor cleanups
Diffstat (limited to 'benchmarks/interbench/files/patch-interbench.c')
| -rw-r--r-- | benchmarks/interbench/files/patch-interbench.c | 52 |
1 files changed, 39 insertions, 13 deletions
diff --git a/benchmarks/interbench/files/patch-interbench.c b/benchmarks/interbench/files/patch-interbench.c index 80c06c885b9d..000a957af176 100644 --- a/benchmarks/interbench/files/patch-interbench.c +++ b/benchmarks/interbench/files/patch-interbench.c @@ -1,14 +1,19 @@ ---- interbench.c.orig 2009-10-31 12:14:59.000000000 +0800 -+++ interbench.c 2013-03-11 20:56:50.000000000 +0800 -@@ -43,6 +43,7 @@ +--- interbench.c.orig 2009-10-31 04:14:59 UTC ++++ interbench.c +@@ -43,8 +43,12 @@ #include <sys/time.h> #include <sys/resource.h> #include <sys/types.h> +#include <sys/stat.h> #include <sys/mman.h> #include <sys/wait.h> ++#ifdef __FreeBSD__ ++#include <sys/sysctl.h> ++#endif #include "interbench.h" -@@ -210,7 +211,7 @@ int test_fifo(void) + + #define MAX_UNAME_LENGTH 100 +@@ -210,7 +214,7 @@ int test_fifo(void) { struct sched_param sp; memset(&sp, 0, sizeof(sp)); @@ -17,7 +22,7 @@ if (sched_setscheduler(0, SCHED_FIFO, &sp) == -1) { if (errno != EPERM) terminal_error("sched_setscheduler"); -@@ -888,7 +889,7 @@ void *timekeeping_thread(void *t) +@@ -888,7 +892,7 @@ void *timekeeping_thread(void *t) * accurate accounting remains SCHED_NORMAL; */ if (th->dt != &th->benchmarks[NOT_BENCHING]) @@ -26,16 +31,37 @@ /* These values must be changed at the appropriate places or race */ tk->sleep_interval = tk->slept_interval = 0; post_sem(&s->ready); -@@ -1133,7 +1134,7 @@ void get_ram(void) +@@ -1130,6 +1134,7 @@ write: + + void get_ram(void) + { ++#if defined(__linux__) FILE *meminfo; char aux[256]; -- if(!(meminfo = fopen("/proc/meminfo", "r"))) -+ if(!(meminfo = fopen("/compat/linux/proc/meminfo", "r"))) - terminal_error("fopen"); +@@ -1143,6 +1148,21 @@ void get_ram(void) + fgets(aux,sizeof(aux),meminfo); + if (fclose(meminfo) == -1) + terminal_error("fclose"); ++#elif defined(__FreeBSD__) ++ long pagesize, numpages; ++ quad_t swap; ++ size_t len = sizeof(swap); ++ ++ pagesize = sysconf(_SC_PAGESIZE); ++ numpages = sysconf(_SC_PHYS_PAGES); ++ if (sysctlbyname("vm.swap_total", &swap, &len, 0x0, 0) == -1) ++ swap = 0; ++ ++ ud.ram = pagesize / 1024 * numpages; ++ ud.swap = swap / 1024; ++#else ++#error unsupported operating system ++#endif - ud.ram = ud.swap = 0; -@@ -1293,7 +1294,8 @@ void run_benchchild(int i, int j) + if( !ud.ram || !ud.swap ) { + unsigned long i; +@@ -1293,7 +1313,8 @@ void run_benchchild(int i, int j) thi->dt = &thi->benchmarks[j]; initialise_thread_data(thi->dt); if (ud.do_rt) @@ -45,7 +71,7 @@ /* Tell main we're ready */ wakeup_with(b2m[1]); -@@ -1344,7 +1346,7 @@ void bench(int i, int j) +@@ -1344,7 +1365,7 @@ void bench(int i, int j) * We want to be higher priority than everything to signal them to * stop and we lock our memory if we can as well */ @@ -54,7 +80,7 @@ set_mlock(); /* Wakeup the load process */ -@@ -1652,7 +1654,7 @@ bench: +@@ -1652,7 +1673,7 @@ bench: * To get as accurate a loop as possible we time it running * SCHED_FIFO if we can */ |
