hugepage_fix: Fix free hugepage calcluation 67/18467/1
authorChristian Trautman <ctrautma@redhat.com>
Thu, 11 Aug 2016 16:34:07 +0000 (12:34 -0400)
committerChristian Trautman <ctrautma@redhat.com>
Thu, 11 Aug 2016 16:34:07 +0000 (12:34 -0400)
Fixes hugepage free calculation when hugepage size is not
1GB. Calculation previously assumed 1GB in size. This change
allows for all sizes to be calculated properly.

Change-Id: Ib05800f51992e9757c412a66296a47ad29e88a3b
Signed-off-by: Christian Trautman <ctrautma@redhat.com>
testcases/testcase.py
tools/hugepages.py

index d88840d..0123b30 100644 (file)
@@ -439,8 +439,8 @@ class TestCase(object):
                     '-socket-mem\s+(\d+),(\d+)',
                     ''.join(S.getValue('VSWITCHD_DPDK_ARGS')))
                 if match:
-                    sock0_mem, sock1_mem = (int(match.group(1)) / 1024,
-                                            int(match.group(2)) / 1024)
+                    sock0_mem, sock1_mem = (int(match.group(1)) * 1024 / hugepage_size,
+                                            int(match.group(2)) * 1024 / hugepage_size)
                 else:
                     logging.info(
                         'Could not parse socket memory config in dpdk params.')
@@ -448,8 +448,8 @@ class TestCase(object):
                 sock0_mem, sock1_mem = (
                     S.getValue(
                         'VSWITCHD_DPDK_CONFIG')['dpdk-socket-mem'].split(','))
-                sock0_mem, sock1_mem = (int(sock0_mem) / 1024,
-                                        int(sock1_mem) / 1024)
+                sock0_mem, sock1_mem = (int(sock0_mem) * 1024 / hugepage_size,
+                                        int(sock1_mem) * 1024 / hugepage_size)
 
         # If hugepages needed, verify the amounts are free
         if any([hugepages_needed, sock0_mem, sock1_mem]):
index bba4012..d233f04 100644 (file)
@@ -42,7 +42,7 @@ def get_hugepage_size():
         for line in data:
             match = hugepage_size_re.search(line)
             if match:
-                _LOGGER.info('Hugepages size: %s', match.group('size_hp'))
+                _LOGGER.info('Hugepages size: %s kb', match.group('size_hp'))
                 return int(match.group('size_hp'))
         else:
             _LOGGER.error('Could not parse for hugepage size')