From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6EA3DA055D for ; Fri, 19 Feb 2021 14:04:04 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 27BCF16090B; Fri, 19 Feb 2021 14:04:04 +0100 (CET) Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by mails.dpdk.org (Postfix) with ESMTP id 0E75D16090B for ; Fri, 19 Feb 2021 14:04:03 +0100 (CET) Received: by mail-wr1-f45.google.com with SMTP id v1so8366224wrd.6 for ; Fri, 19 Feb 2021 05:04:03 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-transfer-encoding:user-agent:mime-version; bh=DszlklA8CkLIxh6vAmmoMxwUr9hUhrISd9OuTPucF00=; b=jDi9CXwu3PfwUEdWWQ11gveq69hRLQc8XBkzXDq/87JCJ3yBdEeOwk1zOKyAGZXJQX kD9TuAKeilkWDWjfTOcRx94cJ9h2w0cj1k+NZxHdbpXiDqgMD83mXUu1IoBDcTyt6uQd MzbIk4n6baipJR0/ph735ZG6kftURCGdx4f9XVjQdjp5tTHBkhu13VXEmy0osUdB/KdW CDSrPfu9ysXZ5XRoBqyN5dGLiNF4W6qD8VVKzoWNIxM5kQUo5E4glR/lIfjxXrIUHgUe fotJbVjtuVDasmt2FLsMFQDlbE32QglvqGh22cO/2nEfIb9QgJR63n3tyCN1xZ0T5QXt rJ7A== X-Gm-Message-State: AOAM5337K7kbXx/E4irYFfGLUUMSC3tbyvpDvi2MtrItAVZ18K9CmqCW o3/Qpng2HLUIshPbWSvPhMQ= X-Google-Smtp-Source: ABdhPJxp+4ftH9RElL8Pk6dEWr0etFGoIFAOGIRqLosFcnbKb2mtUjnxIbvDK8ap76O7uBXTeZOHOA== X-Received: by 2002:a5d:628c:: with SMTP id k12mr9007262wru.316.1613739842753; Fri, 19 Feb 2021 05:04:02 -0800 (PST) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id x66sm11604270wmg.6.2021.02.19.05.04.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Feb 2021 05:04:01 -0800 (PST) Message-ID: <9052e36bcefd1d82677bad5e54c4b621ad08c0fe.camel@debian.org> From: Luca Boccassi To: Juraj =?UTF-8?Q?Linke=C5=A1?= , "stable@dpdk.org" Cc: "jerinj@marvell.com" , "ruifeng.wang@arm.com" , "david.marchand@redhat.com" Date: Fri, 19 Feb 2021 13:04:01 +0000 In-Reply-To: References: <20210219105740.1567636-1-luca.boccassi@gmail.com> <953ce5333ed145a58f26e9eaea240c50@pantheon.tech> <1565f89657b62b8c8baa2a2c9524a0592f99fa3b.camel@debian.org> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.30.5-1.2 MIME-Version: 1.0 Subject: Re: [dpdk-stable] [PATCH 20.11] config/arm: replace native machine args X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" On Fri, 2021-02-19 at 12:10 +0000, Juraj Linke=C5=A1 wrote: > > -----Original Message----- > > From: Luca Boccassi > > Sent: Friday, February 19, 2021 12:33 PM > > To: Juraj Linke=C5=A1 ; stable@dpdk.org > > Cc: jerinj@marvell.com; ruifeng.wang@arm.com; david.marchand@redhat.com > > Subject: Re: [PATCH 20.11] config/arm: replace native machine args > >=20 > > On Fri, 2021-02-19 at 11:06 +0000, Juraj Linke=C5=A1 wrote: > > > > -----Original Message----- > > > > From: luca.boccassi@gmail.com > > > > Sent: Friday, February 19, 2021 11:58 AM > > > > To: stable@dpdk.org > > > > Cc: Juraj Linke=C5=A1 ; jerinj@marvell.= com; > > > > ruifeng.wang@arm.com; david.marchand@redhat.com > > > > Subject: [PATCH 20.11] config/arm: replace native machine args > > > >=20 > > > > From: Juraj Linke=C5=A1 > > > >=20 > > > > [ backported from upstream commit > > > > 9186e5a07f35ae74a1f7fa2d89671b5f77eae407 ] > > > >=20 > > > > There are compiler issues when building with -mcpu=3Dnative with > > > > popular compilers, such as GCC-8.4: > > > > In file included from ../lib/librte_eal/arm/include/rte_vect.h:11, > > > > from ../lib/librte_net/net_crc_neon.c:10: > > > > ../lib/librte_net/net_crc_neon.c: In function =E2=80=98crcr32_foldi= ng_round=E2=80=99: > > > > /usr/lib/gcc/aarch64-linux-gnu/8/include/arm_neon.h:26094:1: error: > > > > inlining failed in call to always_inline =E2=80=98vmull_p64=E2=80= =99: > > > > target specific option mismatch > > > > vmull_p64 (poly64_t a, poly64_t b) > > > > ../lib/librte_net/net_crc_neon.c:50:20: note: called from here > > > > uint64x2_t tmp1 =3D vreinterpretq_u64_p128(vmull_p64( > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > >=20 > > > > and clang: > > > > gcc -E -dM -mcpu=3D"native" - < /dev/null | grep __ARM_FEATURE_ATOM= ICS > > > > clang-9 -E -dM -mcpu=3D"native" - < /dev/null | grep > > > > __ARM_FEATURE_ATOMICS # no clang support > > > >=20 > > > > Fix this by always specifying the proper machine args and never > > > > using the native flags. > > > >=20 > > > > Fixes: 78ac8eac7e8a ("config/arm: use native machine build > > > > arguments") > > > >=20 > > > > Signed-off-by: Juraj Linke=C5=A1 > > > > Signed-off-by: Luca Boccassi > > > > --- > > > > This is a crude backport, but it fixes the build for arm64. It's a > > > > release blocker for 20.11.1, so I would appreciate a quick review. > > > > Thanks! > > >=20 > > > What does this fix? With or without the below change, the native mach= ine > > args are not used. The patch shoudn't actually change the configuration= of the > > build at all, so I'm a bit confused. > >=20 > > It fixes the build on some build workers with thunderx hardware - witho= ut this I > > get failures like: > >=20 > > arm_neon.h:26647:1: error: inlining failed in call to 'always_inline' > > 'vmull_p64': target specific option mismatch > >=20 >=20 > I tried the patch and I'm seeing the same errors on a ThunderX server (wi= th and without the patch). Is this actually the right patch? >=20 > One of the four failures looks like this: > In file included from ../lib/librte_eal/arm/include/rte_vect.h:11, > from ../lib/librte_net/net_crc_neon.c:10: > ../lib/librte_net/net_crc_neon.c: In function 'crcr32_folding_round': > /usr/lib/gcc/aarch64-linux-gnu/8/include/arm_neon.h:26094:1: error: inlin= ing failed in call to always_inline 'vmull_p64': target specific option mis= match > vmull_p64 (poly64_t a, poly64_t b) > ^~~~~~~~~ > ../lib/librte_net/net_crc_neon.c:50:20: note: called from here > uint64x2_t tmp1 =3D vreinterpretq_u64_p128(vmull_p64( > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >=20 > Ruifeng, any ideas on how to fix this? Strange, I got from 100% repro rate to 0%. Anyway, please send a better fix is this is not the appropriate one - this is a release blocker for 20.11.1. Thanks! --=20 Kind regards, Luca Boccassi