From 421dbc6d9dfc66f249dde787a69327d22979ca74 Mon Sep 17 00:00:00 2001 Message-Id: <421dbc6d9dfc66f249dde787a69327d22979ca74.1566225007.git.aquini@redhat.com> In-Reply-To: References: From: Sandipan Das Date: Fri, 16 Aug 2019 11:45:07 +0530 Subject: [RHEL7 PATCH 17/31] tests: Update utility to get free and total huge pages by size This makes the utilities to get the number of free and total huge pages multi-size aware. If a page size is specified, they will return counts corresponding to that. Otherwise, they will return counts for the kernel's default huge page size. Signed-off-by: Sandipan Das Signed-off-by: Eric B Munson Signed-off-by: Rafael Aquini --- tests/run_tests.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 94000ea..f19024f 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -172,26 +172,32 @@ def results_summary(): print_per_size("Strange test result", R["strange"]) print "**********" -def free_hpages(): +def free_hpages(size=None): """ - Return the number of free huge pages. + Return the number of free huge pages for a given size. If size is not + passed, use the default huge page size. - Parse /proc/meminfo to obtain the number of free huge pages for - the default page size. - XXX: This function is not multi-size aware yet. + Parse /sys/kernel/mm/hugepages/hugepages-/free_hugepages to + obtain the number of free huge pages for the given page size. """ - (rc, out) = bash("grep 'HugePages_Free:' /proc/meminfo | cut -f2 -d:") + if size == None: size = system_default_hpage_size + size_kb = size / 1024 + cmd = "cat /sys/kernel/mm/hugepages/hugepages-%dkB/free_hugepages" % size_kb + (rc, out) = bash(cmd) return (rc, int(out)) -def total_hpages(): +def total_hpages(size=None): """ - Return the total number of huge pages in the pool. + Return the total number of huge pages in the pool for a given size. If + size is not passed, use the default huge page size. - Parse /proc/meminfo to obtain the number of huge pages for the default - page size. - XXX: This function is not multi-size aware yet. + Parse /sys/kernel/mm/hugepages/hugepages-/nr_hugepages to + obtain the number of huge pages for the given page size. """ - (rc, out) = bash("grep 'HugePages_Total:' /proc/meminfo | cut -f2 -d:") + if size == None: size = system_default_hpage_size + size_kb = size / 1024 + cmd = "cat /sys/kernel/mm/hugepages/hugepages-%dkB/nr_hugepages" % size_kb + (rc, out) = bash(cmd) return (rc, int(out)) def hpage_size(): -- 1.8.3.1