From 6916406a2c23f9d65723d76b2cf2c946e8361277 Mon Sep 17 00:00:00 2001 From: Maxim Baryshnikov Date: Tue, 9 Aug 2016 21:22:19 +0200 Subject: [PATCH] Enhance the benchmark code a little. Add image_end symbol. --- configs/bench.c | 2 +- inmates/demos/x86/Membench.c | 8 +++++--- inmates/lib/x86/inmate.lds | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/configs/bench.c b/configs/bench.c index 71868c6..6bc9528 100644 --- a/configs/bench.c +++ b/configs/bench.c @@ -50,7 +50,7 @@ struct { JAILHOUSE_MEM_LOADABLE, }, /* communication region */ { - .virt_start = 0x3F900000, + .virt_start = 0x100000, .size = 0x00001000, .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_COMM_REGION, diff --git a/inmates/demos/x86/Membench.c b/inmates/demos/x86/Membench.c index 4366a30..f13b159 100644 --- a/inmates/demos/x86/Membench.c +++ b/inmates/demos/x86/Membench.c @@ -430,6 +430,8 @@ static void run_benchmark(struct cfg *cfg) } #ifdef JAILHOUSE +const void * image_end; + void inmate_main(void) #else //Linux int main(int argc, char *argv[]) @@ -476,8 +478,8 @@ int main(int argc, char *argv[]) tsc_freq % 1000); u8 * start_memreg = (u8 *) array; - - while ( ((u64) start_memreg )< 0x4000000) { + u64 end_memreg_addr = (u64) &image_end; + while ( ((u64) start_memreg )< end_memreg_addr) { //printk("%p\n",start_memreg); map_range(start_memreg, HUGE_PAGE_SIZE, MAP_CACHED); start_memreg += HUGE_PAGE_SIZE; @@ -552,6 +554,6 @@ int main(int argc, char *argv[]) return 0; #else comm_region->cell_state = JAILHOUSE_CELL_SHUT_DOWN; - printk("done!"); + printk("done!\n"); #endif } diff --git a/inmates/lib/x86/inmate.lds b/inmates/lib/x86/inmate.lds index 2ebfcbe..f8a6003 100644 --- a/inmates/lib/x86/inmate.lds +++ b/inmates/lib/x86/inmate.lds @@ -67,6 +67,7 @@ SECTIONS .bench-array : AT (ADDR(.data) + SIZEOF(.data)) { *(.bench-array) } + image_end = .; /DISCARD/ : { *(.eh_frame*) -- 2.39.2