From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id EB571A04CC; Sat, 12 Sep 2020 20:25:10 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B5965E07; Sat, 12 Sep 2020 20:25:09 +0200 (CEST) Received: from smtp-fw-6002.amazon.com (smtp-fw-6002.amazon.com [52.95.49.90]) by dpdk.org (Postfix) with ESMTP id 09AB7DE0 for ; Sat, 12 Sep 2020 20:25:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1599935109; x=1631471109; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=JcC/C58XJ+2Fq9hoaE26++ckNUlSGJhbh6vxxUV9KuI=; b=jm6cBsIB+YZz7uCD/SKV+HSofhLJl8ZG84g50nAlwOv5XifkTUH1z7Vs dxGciwQuncsgrfI0vm6wA9qIQtw7XUVHbD3qqZsqenuoHNq/uaLHhRIS2 /kgPoEQJ00zvcIdK8TTobXSBwjPrPEvRBAlKipGL4nboaqHk/VavXpI0e E=; X-IronPort-AV: E=Sophos;i="5.76,420,1592870400"; d="scan'208";a="53545849" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1e-17c49630.us-east-1.amazon.com) ([10.43.8.6]) by smtp-border-fw-out-6002.iad6.amazon.com with ESMTP; 12 Sep 2020 18:25:01 +0000 Received: from EX13MTAUWC001.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-1e-17c49630.us-east-1.amazon.com (Postfix) with ESMTPS id 3F6A6A1D3B; Sat, 12 Sep 2020 18:25:00 +0000 (UTC) Received: from EX13D02UWC001.ant.amazon.com (10.43.162.243) by EX13MTAUWC001.ant.amazon.com (10.43.162.135) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 12 Sep 2020 18:24:59 +0000 Received: from EX13MTAUWA001.ant.amazon.com (10.43.160.58) by EX13D02UWC001.ant.amazon.com (10.43.162.243) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 12 Sep 2020 18:24:59 +0000 Received: from dev-dsk-vcchunga-2a-c5-3b7a0bed.us-west-2.amazon.com (172.19.55.163) by mail-relay.amazon.com (10.43.160.118) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 12 Sep 2020 18:24:59 +0000 Received: by dev-dsk-vcchunga-2a-c5-3b7a0bed.us-west-2.amazon.com (Postfix, from userid 6361087) id 57F57A1ACC; Sat, 12 Sep 2020 11:24:59 -0700 (PDT) From: Vimal Chungath To: CC: , , , , , , Date: Sat, 12 Sep 2020 11:24:34 -0700 Message-ID: <20200912182434.31067-1-vcchunga@amazon.com> X-Mailer: git-send-email 2.16.6 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [dpdk-dev] [PATCH 1/2] config: add Graviton2(arm64) meson configuration X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 9/11/20 8:23 PM, Honnappa Nagarahalli wrote: > > +Jerin, Hemant, Dharmik > > > Hi Vimal, > Few comments inline. > >> >> Add meson build configuration for Graviton2 platform with 64-bit ARM >> Neoverse N1 cores. This patch makes the following changes to generic >> Neoverse N1 config: >> >> 1. increase lcore limit to 64 >> 2. increase memory support to 1TB > There will be multiple SoCs with N1 cores. All of them will have the same implementor ID and part number. But, they will have different values for these configurable parameters. > IMO, from usage perspective, we have 2 cases: > 1) Ability to build a portable binary that can run on multiple Arm SoCs (for ex: BlueField, thunderx1, thunderx2, N1SDP, Graviton2 etc) > 2) Ability to build a binary which would run only on a SoC it was compiled for and provide the most optimized binary for that SoC. But, this may not be portable. > > For 1) we have default march. > > For 2) we do not have the capability today in meson build (at least, this is my understanding, please correct me if I am wrong). In this case, the user knows the target platform for compilation. IMO, we should add the capability to take the target platform as an input from the user (similar to the make build system) and Graviton2 can be one such target platform. My intention was to have parameters that work for both N1SDP and Graviton2 rather than 2). Does the change to RTE_MAX_LCORE and RTE_MAX_MEM_MB make them incompatible with N1SDP? I'm not sure if taking target platform from user is the best option here. Would this be specific to N1 since other platforms like thunderx differentiate the flags with part number? > >> 3. remove +crc from -march as that is default when setting armv8.2 >> >> For more information about Graviton2 platform, refer to: >> https://aws.amazon.com/ec2/graviton/ >> >> Signed-off-by: Vimal Chungath >> --- >> config/arm/arm64_graviton2_linux_gcc | 17 +++++++++++++++++ >> config/arm/meson.build | 12 +++++++++++- >> 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 >> config/arm/arm64_graviton2_linux_gcc >> >> diff --git a/config/arm/arm64_graviton2_linux_gcc >> b/config/arm/arm64_graviton2_linux_gcc >> new file mode 100644 >> index 000000000..022e06303 >> --- /dev/null >> +++ b/config/arm/arm64_graviton2_linux_gcc >> @@ -0,0 +1,17 @@ >> +[binaries] >> +c = 'aarch64-linux-gnu-gcc' >> +cpp = 'aarch64-linux-gnu-cpp' >> +ar = 'aarch64-linux-gnu-gcc-ar' >> +strip = 'aarch64-linux-gnu-strip' >> +pkgconfig = 'aarch64-linux-gnu-pkg-config' >> +pcap-config = '' >> + >> +[host_machine] >> +system = 'linux' >> +cpu_family = 'aarch64' >> +cpu = 'armv8-a' >> +endian = 'little' >> + >> +[properties] >> +implementor_id = '0x41' >> +implementor_pn = '0xd0c' >> diff --git a/config/arm/meson.build b/config/arm/meson.build index >> 8728051d5..64e277ebc 100644 >> --- a/config/arm/meson.build >> +++ b/config/arm/meson.build >> @@ -86,6 +86,16 @@ flags_octeontx2_extra = [ >> ['RTE_ARM_FEATURE_ATOMICS', true], >> ['RTE_EAL_IGB_UIO', false], >> ['RTE_USE_C11_MEM_MODEL', true]] >> +flags_n1generic_extra = [ >> + ['RTE_MACHINE', '"neoverse-n1"'], >> + ['RTE_MAX_LCORE', 64], >> + ['RTE_CACHE_LINE_SIZE', 64], >> + ['RTE_ARM_FEATURE_ATOMICS', true], >> + ['RTE_USE_C11_MEM_MODEL', true], >> + ['RTE_MAX_MEM_MB', 1048576], >> + ['RTE_MAX_NUMA_NODES', 1], >> + ['RTE_EAL_NUMA_AWARE_HUGEPAGES', false], >> + ['RTE_LIBRTE_VHOST_NUMA', false]] >> >> machine_args_generic = [ >> ['default', ['-march=armv8-a+crc']], >> @@ -97,7 +107,7 @@ machine_args_generic = [ >> ['0xd09', ['-mcpu=cortex-a73']], >> ['0xd0a', ['-mcpu=cortex-a75']], >> ['0xd0b', ['-mcpu=cortex-a76']], >> - ['0xd0c', ['-march=armv8.2-a+crc+crypto', '-mcpu=neoverse-n1'], >> flags_n1sdp_extra]] >> + ['0xd0c', ['-march=armv8.2-a+crypto', '-mcpu=neoverse-n1'], >> +flags_n1generic_extra]] >> >> machine_args_cavium = [ >> ['default', ['-march=armv8-a+crc+crypto','-mcpu=thunderx']], >> -- >> 2.16.6 >