Arm has following vector stab: ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors] which is not accounted in map_count.
Signed-off-by: Maxim Uvarov <[email protected]> --- testcases/kernel/mem/tunable/max_map_count.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/testcases/kernel/mem/tunable/max_map_count.c b/testcases/kernel/mem/tunable/max_map_count.c index 01fbe5e..ca28fba 100644 --- a/testcases/kernel/mem/tunable/max_map_count.c +++ b/testcases/kernel/mem/tunable/max_map_count.c @@ -121,12 +121,24 @@ void cleanup(void) * for in the vm_area_struct's map_count. */ #if defined(__x86_64__) || defined(__x86__) -static int filter_map(char *buf) +static int filter_map(char *line) { + char buf[BUFSIZ]; + int ret; + + ret = sscanf(line, "%*p-%*p %*4s %*p %*2d:%*2d %*d %s", buf); + if (ret != 1) + return 0; + return strcmp(buf, "[vsyscall]") == 0; } +#elif defined(__arm__) +static int filter_map(char *line) +{ + return strncmp(line, "ffff0000-ffff1000", 17) == 0; +} #else -static int filter_map(char *buf) +static int filter_map(char *line) { return 0; } @@ -146,8 +158,7 @@ static long count_maps(pid_t pid) tst_brkm(TBROK | TERRNO, cleanup, "fopen %s", buf); while (getline(&line, &len, fp) != -1) { /* exclude vdso and vsyscall */ - if (sscanf(line, "%*p-%*p %*4s %*p %*2d:%*2d %*d %s", buf) == - 1 && filter_map(buf)) + if (filter_map(line)) continue; map_count++; } -- 1.7.9.5 ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
