From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id B3FBFA0C47;
	Tue, 26 Oct 2021 04:46:51 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 4C19641196;
	Tue, 26 Oct 2021 04:46:27 +0200 (CEST)
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by mails.dpdk.org (Postfix) with ESMTP id 194A1410DD
 for <dev@dpdk.org>; Tue, 26 Oct 2021 04:46:07 +0200 (CEST)
Received: from
 linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net
 (linux.microsoft.com [13.77.154.182])
 by linux.microsoft.com (Postfix) with ESMTPSA id 4E42120ABAC0;
 Mon, 25 Oct 2021 19:46:06 -0700 (PDT)
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 4E42120ABAC0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
 s=default; t=1635216366;
 bh=aK4qu0rzD9HqPA+15S6Dvsz9sRE1f+sc2CeRbedvicE=;
 h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
 b=iBk/VKEcaq01ORC5Mj0e1JpFmQxf3io00JR+4KwyqC9gkLO3BF9BneeshoynvSJ0S
 UFze0A5S/hpzShAnd1j42xj7URXxJXIZeQxSbRvHj0fI0CibtU3sT+pCx6Ur90L3HA
 J8zGOo6lGqP0FOOLtweYVOunPDxi3665pgtGQKIg=
From: Jie Zhou <jizh@linux.microsoft.com>
To: dev@dpdk.org
Cc: dmitry.kozliuk@gmail.com, roretzla@microsoft.com,
 navasile@linux.microsoft.com, dmitrym@microsoft.com,
 pallavi.kadam@intel.com, talshn@nvidia.com, thomas@monjalon.net,
 aconole@redhat.com
Date: Mon, 25 Oct 2021 19:46:00 -0700
Message-Id: <1635216361-23641-11-git-send-email-jizh@linux.microsoft.com>
X-Mailer: git-send-email 1.8.3.1
In-Reply-To: <1635216361-23641-1-git-send-email-jizh@linux.microsoft.com>
References: <1635215204-20604-1-git-send-email-jizh@linux.microsoft.com>
 <1635216361-23641-1-git-send-email-jizh@linux.microsoft.com>
Subject: [dpdk-dev] [PATCH v8 10/11] app/test: replace .sh scripts with .py
 scripts
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

- Add python script to check if system supports hugepages
- Remove corresponding .sh scripts
- Replace calling of .sh with corresponding .py in meson.build

Signed-off-by: Jie Zhou <jizh@linux.microsoft.com>
---
 app/test/has-hugepage.sh | 11 -----------
 app/test/has_hugepage.py | 25 +++++++++++++++++++++++++
 app/test/meson.build     |  2 +-
 3 files changed, 26 insertions(+), 12 deletions(-)
 delete mode 100755 app/test/has-hugepage.sh
 create mode 100644 app/test/has_hugepage.py

diff --git a/app/test/has-hugepage.sh b/app/test/has-hugepage.sh
deleted file mode 100755
index d600fad319..0000000000
--- a/app/test/has-hugepage.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#! /bin/sh
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright 2020 Mellanox Technologies, Ltd
-
-if [ "$(uname)" = "Linux" ] ; then
-	cat /proc/sys/vm/nr_hugepages || echo 0
-elif [ "$(uname)" = "FreeBSD" ] ; then
-	echo 1 # assume FreeBSD always has hugepages
-else
-	echo 0
-fi
diff --git a/app/test/has_hugepage.py b/app/test/has_hugepage.py
new file mode 100644
index 0000000000..70107c61fd
--- /dev/null
+++ b/app/test/has_hugepage.py
@@ -0,0 +1,25 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (c) 2021 Microsoft Corporation
+"""This script checks if the system supports huge pages"""
+
+import platform
+import ctypes
+
+osName = platform.system()
+if osName == "Linux":
+    with open("/proc/sys/vm/nr_hugepages") as file_o:
+        content = file_o.read()
+        print(content)
+elif osName == "FreeBSD":
+    # Assume FreeBSD always has hugepages enabled
+    print("1")
+elif osName == "Windows":
+    # On Windows, determine if large page is supported based on the
+    # value returned by GetLargePageMinimum. If the return value is zero,
+    # the processor does not support large pages.
+    if ctypes.windll.kernel32.GetLargePageMinimum() > 0:
+        print("1")
+    else:
+        print("0")
+else:
+    print("0")
diff --git a/app/test/meson.build b/app/test/meson.build
index 20f36a1803..210ccd29b0 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -463,7 +463,7 @@ dpdk_test = executable('dpdk-test',
              driver_install_path),
         install: true)
 
-has_hugepage = run_command('has-hugepage.sh').stdout().strip() != '0'
+has_hugepage = run_command(py3, 'has_hugepage.py').stdout().strip() != '0'
 message('hugepage availability: @0@'.format(has_hugepage))
 
 # some perf tests (eg: memcpy perf autotest)take very long
-- 
2.32.0.windows.2