[dts] [PATCH v2 1/9] framework: check hugepage size and add pages

Gowrishankar gowrishankar.m at linux.vnet.ibm.com
Tue Mar 8 11:06:39 CET 2016


Add number of huge pages according to enabled huge page size. Also, added
expected number of pages in case ppc_64 is DUT platform.

Signed-off-by: Gowrishankar <gowrishankar.m at linux.vnet.ibm.com>
---
 framework/crb.py |   10 ++++++----
 framework/dut.py |    2 ++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/framework/crb.py b/framework/crb.py
index f2009b9..c6fd9fb 100644
--- a/framework/crb.py
+++ b/framework/crb.py
@@ -161,18 +161,20 @@ class Crb(object):
         """
         Set numbers of huge pages
         """
+        page_size = self.send_expect("awk '/Hugepagesize/ {print $2}' /proc/meminfo", "# ")
+
         if numa == -1:
-            self.send_expect('echo %d > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages' % huge_pages, '# ', 5)
+            self.send_expect('echo %d > /sys/kernel/mm/hugepages/hugepages-%skB/nr_hugepages' % (huge_pages, page_size), '# ', 5)
         else:
             #sometimes we set hugepage on kernel cmdline, so we need clear default hugepage
-            self.send_expect('echo 0 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages', '# ', 5)
+            self.send_expect('echo 0 > /sys/kernel/mm/hugepages/hugepages-%skB/nr_hugepages' % (page_size), '# ', 5)
             
             #some platform not support numa, example vm dut
             try:
-                self.send_expect('echo %d > /sys/devices/system/node/node%d/hugepages/hugepages-2048kB/nr_hugepages' % (huge_pages, numa), '# ', 5)
+                self.send_expect('echo %d > /sys/devices/system/node/node%d/hugepages/hugepages-%skB/nr_hugepages' % (huge_pages, numa, page_size), '# ', 5)
             except:
                 self.logger.warning("set %d hugepage on socket %d error" % (huge_pages, numa))
-                self.send_expect('echo %d > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages' % huge_pages, '# ', 5)
+                self.send_expect('echo %d > /sys/kernel/mm/hugepages/hugepages-%skB/nr_hugepages' % (huge_pages. page_size), '# ', 5)
 
     def set_speedup_options(self, read_cache, skip_setup):
         """
diff --git a/framework/dut.py b/framework/dut.py
index bd437cb..c57aa79 100644
--- a/framework/dut.py
+++ b/framework/dut.py
@@ -301,6 +301,8 @@ class Dut(Crb):
             elif self.architecture == "x86_x32":
                 arch_huge_pages = hugepages if hugepages > 0 else 256
                 force_socket = True
+            elif self.architecture == "ppc_64":
+                arch_huge_pages = hugepages if hugepages > 0 else 512
 
             if total_huge_pages != arch_huge_pages:
                  # before all hugepage average distribution  by all socket,
-- 
1.7.10.4



More information about the dts mailing list