From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70081.outbound.protection.outlook.com [40.107.7.81]) by dpdk.org (Postfix) with ESMTP id C95B01D8A; Tue, 28 Aug 2018 04:00:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TZ9XKo4jV7uF+1WehEltEJN/5A1pjuvH+IMbhPX437w=; b=VJ9vK+jagbe3S4YSzrdnQ3EeukM1mau3X27u8tftXEx93z5PEKfAVy6u+X0Ly163CsbACpnYCb5TqsVavwnlt4JRpjzQxgwbFyhqy7ebvLbpLB8IErtyM7Oz3Hlzlbq85MQ7O+19i1FouhZKgzvtJ6d/HJOwBKV2OsaFuR9hXus= Received: from DB7PR08MB3385.eurprd08.prod.outlook.com (20.176.238.90) by DB7PR08MB3307.eurprd08.prod.outlook.com (52.134.111.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1080.17; Tue, 28 Aug 2018 02:00:50 +0000 Received: from DB7PR08MB3385.eurprd08.prod.outlook.com ([fe80::8895:d40e:da45:f53c]) by DB7PR08MB3385.eurprd08.prod.outlook.com ([fe80::8895:d40e:da45:f53c%2]) with mapi id 15.20.1080.015; Tue, 28 Aug 2018 02:00:50 +0000 From: Phil Yang To: "Liu, Yong" , dts , "dts@dpdk.org" CC: nd Thread-Topic: [dts] [PATCH] framework/dut: setup hugepage for all available NUMA nodes Thread-Index: AQHUPbPKpTWzdfrdIky6aiJOuoBsB6TTEe4AgAFT2gA= Date: Tue, 28 Aug 2018 02:00:49 +0000 Message-ID: References: <1535332589-8090-1-git-send-email-phil.yang@arm.com> <86228AFD5BCD8E4EBFD2B90117B5E81E6312D154@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <86228AFD5BCD8E4EBFD2B90117B5E81E6312D154@SHSMSX103.ccr.corp.intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Phil.Yang@arm.com; x-originating-ip: [113.29.88.7] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR08MB3307; 6:6u8c3i5QyGwba+4KNLuiN/q2RCvBJoBSaBiWRaSFkhKZbLTX3FkgxXXz07g3Y3rkgskasvARkFnXdK4kGgFfAapMcuATQ4nZ1ZQJx/TIaMgWCXol6jKgyntNnVVPEkmPUTDsergAsIncJrBC5/LPgjpMMdZ2cRlR3N+SSl/9SHb0C00eZGo5zg2oUsWkDOx/4iK0eIzliDFTG71zm2P2ugaqX0T29tCJ1wwj0qFRVzY+do8MqxexV4G/XdDX3lGonZ8Jj0aAoyaPYFM5qJpaw/abNob5X1CzXWUXRZiFPmChn9krqpd4Pp3oiQJQaHO9CW1+neIoglAOEwMRiCLuOoehB9V6EnsmwGIYiZPI9RIrhbh7ZZdi2EXkU//OvhGOs/foxnIPoD7pzQKtW5gT/FwuMjYHSLVDIwq0LBtkRUA1YJ7YJDPnIDWHu4mnNwoVvRrRfTnFQZSPNp0L+kTc5w==; 5:/l/Ak/MZmuwLs+ovZhCwJn1XzbGXyJHTnOLKWqVs5oaqV19uGVuwX9Inhh8pLi+V2FnP+9Y46l9kAqNqMpYd9FXvAZgUjBVRbZPKMQRUQcWuBu13nSB8h9XdeCQme0YZzY+EL1OFkaS089lUcrfuuw+mDHWNvNkSFEXw1h4QzJg=; 7:W0D2SDHosbaZlexGH+hFDGDqyT2wufSx8j73WfcyzF7C0ac7u1LdcLZ7q9IqECPwSHoQ1Qyn8+M/6R2KG2oIqebnnj+Uv30TGySWryRHkIsQOroSG14/cSKjjdRjfb9dkiF1arSg+F3/zLKJwJoYw1vyNxt3Zk2gsanw7k3sFZw3vqtHIIWedz7dtoFSmypbpThbgGpGOGK5NIqHmvqXqG2pkLYu9OX3lKD3ueN08VkjYDWQseVkGHz2rc5pYfGI x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 909e28d2-28c3-40e8-a644-08d60c8a1427 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB7PR08MB3307; x-ms-traffictypediagnostic: DB7PR08MB3307: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(10201501046)(3002001)(3231311)(944501410)(52105095)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(201708071742011)(7699016); SRVR:DB7PR08MB3307; BCL:0; PCL:0; RULEID:; SRVR:DB7PR08MB3307; x-forefront-prvs: 077884B8B5 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(366004)(396003)(346002)(39860400002)(136003)(13464003)(199004)(189003)(186003)(2906002)(86362001)(6246003)(26005)(7736002)(486006)(476003)(74316002)(11346002)(305945005)(446003)(68736007)(4326008)(33656002)(105586002)(55016002)(53936002)(9686003)(256004)(575784001)(102836004)(55236004)(25786009)(81156014)(81166006)(6506007)(53546011)(8936002)(2501003)(2900100001)(5250100002)(6116002)(3846002)(478600001)(14454004)(106356001)(6436002)(72206003)(99286004)(66066001)(5660300001)(7696005)(97736004)(316002)(229853002)(110136005)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR08MB3307; H:DB7PR08MB3385.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 9BixJZJYXfw4pxVGqrOQViO2d26mmEkmPEju8K0AoQ+zrfQVonCsY3MlHFQBvUd1AmprFj5VItDnn6Z1xt9J3Ifwjplz2sPwLYnJR7uiOAXF9NMisDm/Q8i46YteU3J7aQAf7AxCqlC2Z0KefEQY5Oatn9hG0Bozm206iSb6gFBJ8Z68PWbMTMwcFTzS6YTT8zf9k7NQgc4+Yo0aI6v3SpIjBKuBNz+nqbwCasNj81HLjCHf5kU26sZtwA66iGkD0oqqDWlz7yC0w6Qf5z+ITwJXlV1TCCC6xBDXiRvYPa6R5eunaUdTkn/W59+Gwf7GLFCZ2lmly83vxn95HBdzR0lABjx9y8Rxi4ThpHPSPj4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 909e28d2-28c3-40e8-a644-08d60c8a1427 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2018 02:00:49.1949 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3307 Subject: Re: [dts] [PATCH] framework/dut: setup hugepage for all available NUMA nodes X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Aug 2018 02:00:52 -0000 Hi Marvin, Thanks for your comment.=20 I reworked this patch, please review it. Thanks, Phil Yang > -----Original Message----- > From: dts On Behalf Of Liu, Yong > Sent: Monday, August 27, 2018 1:28 PM > To: dts ; dts@dpdk.org > Cc: nd > Subject: Re: [dts] [PATCH] framework/dut: setup hugepage for all availabl= e > NUMA nodes >=20 > Hi Phil, > One comment is inline. >=20 > Thanks, > Marvin >=20 > > -----Original Message----- > > From: dts [mailto:dts-bounces@dpdk.org] > > Sent: Monday, August 27, 2018 9:16 AM > > To: dts@dpdk.org > > Cc: nd@arm.com > > Subject: [dts] [PATCH] framework/dut: setup hugepage for all available > > NUMA nodes > > > > On a NUMA machine, we need to setup hugepage for all NUMA nodes. > > > > The default approach is by setting /sys/kernel/mm/hugepages, but it > > only works on a single-node system. > > > > This fix needs numactl tool support on Linux. > > > > Signed-off-by: Phil Yang > > --- > > framework/crb.py | 6 ++++-- > > framework/dut.py | 9 ++++++++- > > 2 files changed, 12 insertions(+), 3 deletions(-) > > > > diff --git a/framework/crb.py b/framework/crb.py index > > 5c555db..97bebfe 100644 > > --- a/framework/crb.py > > +++ b/framework/crb.py > > @@ -204,8 +204,10 @@ class Crb(object): > > if numa =3D=3D -1: > > 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/hugepa= ges- > > %skB/nr_hugepages' % (page_size), '# ', 5) > > + # sometimes we set hugepage on kernel cmdline, so we > > + clear all > > nodes' default hugepages at the first time. > > + if numa =3D=3D 0: > > + 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- > %skB/nr_hugepages' > > % (huge_pages, numa, page_size), '# ', 5) diff --git > > a/framework/dut.py b/framework/dut.py index 18f0b39..b358578 100644 > > --- a/framework/dut.py > > +++ b/framework/dut.py > > @@ -305,6 +305,12 @@ class Dut(Crb): > > return > > hugepages_size =3D self.send_expect("awk '/Hugepagesize/ {prin= t $2}' > > /proc/meminfo", "# ") > > total_huge_pages =3D self.get_total_huge_pages() > > + total_numa_nodes =3D self.send_expect("numactl -H | awk > > + '/available/ > > {print $2}'", "# ") >=20 > We may not expect that numactl is installed on the DUT. It will be more p= ortable > by checking sysfs like "ls /sys/devices/system/node | grep node* | wc -l"= . >=20 > > + numa_service_num =3D > > self.get_def_rte_config('CONFIG_RTE_MAX_NUMA_NODES') > > + if numa_service_num: > > + numa =3D min(total_numa_nodes, numa_service_num) > > + else: > > + numa =3D total_numa_nodes > > force_socket =3D False > > > > if int(hugepages_size) < (1024 * 1024): > > @@ -332,7 +338,8 @@ class Dut(Crb): > > if force_socket: > > self.set_huge_pages(arch_huge_pages, 0) > > else: > > - self.set_huge_pages(arch_huge_pages) > > + for numa_id in range(0, int(numa)): > > + self.set_huge_pages(arch_huge_pages, numa_id) > > > > self.mount_huge_pages() > > self.hugepage_path =3D self.strip_hugepage_path() > > -- > > 2.7.4