* Re: [dpdk-dev] [PATCH 20.11] config/arm: replace native machine args [not found] ` <AM5PR0802MB2465B9E1ADC6959EBD24B09E9E9A9@AM5PR0802MB2465.eurprd08.prod.outlook.com> @ 2021-03-07 13:35 ` Jerin Jacob Kollanukkaran 2021-03-08 3:23 ` Ruifeng Wang 0 siblings, 1 reply; 5+ messages in thread From: Jerin Jacob Kollanukkaran @ 2021-03-07 13:35 UTC (permalink / raw) To: Ruifeng Wang, Juraj Linkeš, Luca Boccassi, stable, dev, Thomas Monjalon, Ashwin Sekhar Thalakalath Kottilveetil, Andrew Pinski Cc: david.marchand, nd, nd > -----Original Message----- > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > Sent: Monday, March 1, 2021 11:10 AM > To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Juraj Linkeš > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > stable@dpdk.org > Cc: david.marchand@redhat.com; nd <nd@arm.com>; nd <nd@arm.com> > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native machine args > > External Email > > ---------------------------------------------------------------------- > > -----Original Message----- > > From: Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > Sent: Thursday, February 25, 2021 8:15 PM > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Juraj Linkeš > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > stable@dpdk.org > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > -----Original Message----- > > > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > > > Sent: Saturday, February 20, 2021 9:13 AM > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; Luca Boccassi > > > <bluca@debian.org>; stable@dpdk.org; Jerin Jacob Kollanukkaran > > > <jerinj@marvell.com> > > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native machine > > > args > > > > > > External Email > > > > > > -------------------------------------------------------------------- > > > -- > > > > -----Original Message----- > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > Sent: Friday, February 19, 2021 8:10 PM > > > > To: Luca Boccassi <bluca@debian.org>; stable@dpdk.org > > > > Cc: jerinj@marvell.com; Ruifeng Wang <Ruifeng.Wang@arm.com>; > > > > david.marchand@redhat.com > > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: Luca Boccassi <bluca@debian.org> > > > > > Sent: Friday, February 19, 2021 12:33 PM > > > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; 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 > > > > > > > > > > On Fri, 2021-02-19 at 11:06 +0000, Juraj Linkeš wrote: > > > > > > > -----Original Message----- > > > > > > > From: luca.boccassi@gmail.com <luca.boccassi@gmail.com> > > > > > > > Sent: Friday, February 19, 2021 11:58 AM > > > > > > > To: stable@dpdk.org > > > > > > > Cc: Juraj Linkeš <juraj.linkes@pantheon.tech>; > > > > > > > jerinj@marvell.com; ruifeng.wang@arm.com; > > > > > > > david.marchand@redhat.com > > > > > > > Subject: [PATCH 20.11] config/arm: replace native machine > > > > > > > args > > > > > > > > > > > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > > > > > > > > [ backported from upstream commit > > > > > > > 9186e5a07f35ae74a1f7fa2d89671b5f77eae407 ] > > > > > > > > > > > > > > There are compiler issues when building with -mcpu=native > > > > > > > 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 ‘crcr32_folding_round’: > > > > > > > /usr/lib/gcc/aarch64-linux-gnu/8/include/arm_neon.h:26094:1: > > error: > > > > > > > inlining failed in call to always_inline ‘vmull_p64’: > > > > > > > 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 = vreinterpretq_u64_p128(vmull_p64( > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > > > > > > > > > > > and clang: > > > > > > > gcc -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > __ARM_FEATURE_ATOMICS > > > > > > > clang-9 -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > __ARM_FEATURE_ATOMICS <no output> # no clang support > > > > > > > > > > > > > > Fix this by always specifying the proper machine args and > > > > > > > never using the native flags. > > > > > > > > > > > > > > Fixes: 78ac8eac7e8a ("config/arm: use native machine build > > > > > > > arguments") > > > > > > > > > > > > > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com> > > > > > > > --- > > > > > > > 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! > > > > > > > > > > > > What does this fix? With or without the below change, the > > > > > > native machine > > > > > args are not used. The patch shoudn't actually change the > > > > > configuration of the build at all, so I'm a bit confused. > > > > > > > > > > It fixes the build on some build workers with thunderx hardware > > > > > - without this I get failures like: > > > > > > > > > > arm_neon.h:26647:1: error: inlining failed in call to 'always_inline' > > > > > 'vmull_p64': target specific option mismatch > > > > > > > > > > > > > I tried the patch and I'm seeing the same errors on a ThunderX > > > > server (with and without the patch). Is this actually the right patch? > > > > > > > > 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: > > > > inlining failed in call to always_inline 'vmull_p64': 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 = vreinterpretq_u64_p128(vmull_p64( > > > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > > > Ruifeng, any ideas on how to fix this? > > > > > > Gcc build on ThunderX platform is broken. Issue can be seen in some > > > CentOS-8 OBS builds. > > > https://urldefense.proofpoint.com/v2/url?u=https- > > > 3A__mails.dpdk.org_archives_dev_2020- > > > > > 2DNovember_192909.html&d=DwIGaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=1 > > DG > > > > > ob4H4rxz6H8uITozGOCa0s5f4wCNtTa4UUKvcsvI&m=mgzJ6z43dsDFwI6rdgKC > > Uj > > > 0GCMNjEKQAa7dfRZxvrdU&s=UWUJTFdGC2mD2x-rcuRnH1I7- > > > 1jKFC40Bh5hFanzu0A&e= > > > I tried tuning compiler flags used, but could not resolve the issue. > > > > > > Need help from Marvell to look at this. > > > Hi Jerin, do you have any thoughts on this? > > > > > > Ruifeng, If you are able to reproduce this issue, Could you add "- > > march=armv8.1-a+crc+crypto" In ThunderX config and check is this > > Fixing the issue? > > > > [main] [dpdk.org] $ git diff > > diff --git a/config/arm/meson.build b/config/arm/meson.build index > > 00bc4610a..ef65b4bb6 100644 > > --- a/config/arm/meson.build > > +++ b/config/arm/meson.build > > @@ -96,15 +96,18 @@ implementer_cavium = { > > ], > > 'part_number_config': { > > '0xa1': { > > - 'machine_args': ['-mcpu=thunderxt88'], > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > + '-mcpu=thunderxt88'], > > 'flags': flags_part_number_thunderx > > }, > > '0xa2': { > > - 'machine_args': ['-mcpu=thunderxt81'], > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > + '-mcpu=thunderxt81'], > > 'flags': flags_part_number_thunderx > > }, > > '0xa3': { > > - 'machine_args': ['-mcpu=thunderxt83'], > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > + '-mcpu=thunderxt83'], > > 'flags': flags_part_number_thunderx > > }, > > '0xaf': { > > > > Hi Jerin, > > The patch doesn't work. Build failed at link stage. > I used gcc 8.4 and tried build on thunderxt88. Hi Ruifeng, I talked to compiler experts here in Marvell. It looks like compiler issue, As a workaround couple of these could try: 1) Reduce the external libraries linked to the application like mlx5 etc 2) Add -mcmodel=large flag will fix "relocation truncated to fit" issue as testing purpose as we are not sure about the implication of this flag. > > Logs as below: > [2513/2527] Linking target app/test/dpdk-test > FAILED: app/test/dpdk-test > cc -o app/test/dpdk-test app/test/dpdk-test.p/commands.c.o app/test/dpdk- > test.p/packet_burst_generator.c.o app/test/dpdk-test.p/test.c.o app/test/dpdk- > test.p/test_acl.c.o app/test/dpdk-test.p/test_alarm.c.o app/test/dpdk- > test.p/test_atomic.c.o app/test/dpdk-test.p/test_barrier.c.o app/test/dpdk- > test.p/test_bitops.c.o app/test/dpdk-test.p/test_bitmap.c.o app/test/dpdk- > test.p/test_bpf.c.o app/test/dpdk-test.p/test_byteorder.c.o app/test/dpdk- > test.p/test_cmdline.c.o app/test/dpdk-test.p/test_cmdline_cirbuf.c.o > app/test/dpdk-test.p/test_cmdline_etheraddr.c.o app/test/dpdk- > test.p/test_cmdline_ipaddr.c.o app/test/dpdk-test.p/test_cmdline_lib.c.o > app/test/dpdk-test.p/test_cmdline_num.c.o app/test/dpdk- > test.p/test_cmdline_portlist.c.o app/test/dpdk-test.p/test_cmdline_string.c.o > app/test/dpdk-test.p/test_common.c.o app/test/dpdk-test.p/test_cpuflags.c.o > app/test/dpdk-test.p/test_crc.c.o app/test/dpdk-test.p/test_cryptodev.c.o > app/test/dpdk-test.p/test_cryptodev_asym.c.o app/test/dpdk- > test.p/test_cryptodev_blockcipher.c.o app/test/dpdk- > test.p/test_cryptodev_security_pdcp.c.o app/test/dpdk-test.p/test_cycles.c.o > app/test/dpdk-test.p/test_debug.c.o app/test/dpdk-test.p/test_distributor.c.o > app/test/dpdk-test.p/test_distributor_perf.c.o app/test/dpdk- > test.p/test_eal_flags.c.o app/test/dpdk-test.p/test_eal_fs.c.o app/test/dpdk- > test.p/test_efd.c.o app/test/dpdk-test.p/test_efd_perf.c.o app/test/dpdk- > test.p/test_errno.c.o app/test/dpdk-test.p/test_ethdev_link.c.o app/test/dpdk- > test.p/test_event_crypto_adapter.c.o app/test/dpdk- > test.p/test_event_eth_rx_adapter.c.o app/test/dpdk-test.p/test_event_ring.c.o > app/test/dpdk-test.p/test_event_timer_adapter.c.o app/test/dpdk- > test.p/test_eventdev.c.o app/test/dpdk-test.p/test_external_mem.c.o > app/test/dpdk-test.p/test_fbarray.c.o app/test/dpdk-test.p/test_fib.c.o > app/test/dpdk-test.p/test_fib_perf.c.o app/test/dpdk-test.p/test_fib6.c.o > app/test/dpdk-test.p/test_fib6_perf.c.o app/test/dpdk- > test.p/test_func_reentrancy.c.o app/test/dpdk-test.p/test_flow_classify.c.o > app/test/dpdk-test.p/test_graph.c.o app/test/dpdk-test.p/test_graph_perf.c.o > app/test/dpdk-test.p/test_hash.c.o app/test/dpdk- > test.p/test_hash_functions.c.o app/test/dpdk-test.p/test_hash_multiwriter.c.o > app/test/dpdk-test.p/test_hash_readwrite.c.o app/test/dpdk- > test.p/test_hash_perf.c.o app/test/dpdk-test.p/test_hash_readwrite_lf_perf.c.o > app/test/dpdk-test.p/test_interrupts.c.o app/test/dpdk-test.p/test_ipfrag.c.o > app/test/dpdk-test.p/test_ipsec.c.o app/test/dpdk-test.p/test_ipsec_sad.c.o > app/test/dpdk-test.p/test_ipsec_perf.c.o app/test/dpdk-test.p/test_kni.c.o > app/test/dpdk-test.p/test_kvargs.c.o app/test/dpdk-test.p/test_lcores.c.o > app/test/dpdk-test.p/test_logs.c.o app/test/dpdk-test.p/test_lpm.c.o > app/test/dpdk-test.p/test_lpm6.c.o app/test/dpdk-test.p/test_lpm6_perf.c.o > app/test/dpdk-test.p/test_lpm_perf.c.o app/test/dpdk-test.p/test_malloc.c.o > app/test/dpdk-test.p/test_mbuf.c.o app/test/dpdk-test.p/test_member.c.o > app/test/dpdk-test.p/test_member_perf.c.o app/test/dpdk- > test.p/test_memcpy.c.o app/test/dpdk-test.p/test_memcpy_perf.c.o > app/test/dpdk-test.p/test_memory.c.o app/test/dpdk-test.p/test_mempool.c.o > app/test/dpdk-test.p/test_mempool_perf.c.o app/test/dpdk- > test.p/test_memzone.c.o app/test/dpdk-test.p/test_meter.c.o app/test/dpdk- > test.p/test_metrics.c.o app/test/dpdk-test.p/test_mcslock.c.o app/test/dpdk- > test.p/test_mp_secondary.c.o app/test/dpdk-test.p/test_per_lcore.c.o > app/test/dpdk-test.p/test_pmd_perf.c.o app/test/dpdk-test.p/test_power.c.o > app/test/dpdk-test.p/test_power_cpufreq.c.o app/test/dpdk- > test.p/test_power_kvm_vm.c.o app/test/dpdk-test.p/test_prefetch.c.o > app/test/dpdk-test.p/test_rand_perf.c.o app/test/dpdk-test.p/test_rawdev.c.o > app/test/dpdk-test.p/test_rcu_qsbr.c.o app/test/dpdk- > test.p/test_rcu_qsbr_perf.c.o app/test/dpdk-test.p/test_reciprocal_division.c.o > app/test/dpdk-test.p/test_reciprocal_division_perf.c.o app/test/dpdk- > test.p/test_red.c.o app/test/dpdk-test.p/test_reorder.c.o app/test/dpdk- > test.p/test_rib.c.o app/test/dpdk-test.p/test_rib6.c.o app/test/dpdk- > test.p/test_ring.c.o app/test/dpdk-test.p/test_ring_mpmc_stress.c.o > app/test/dpdk-test.p/test_ring_hts_stress.c.o app/test/dpdk- > test.p/test_ring_mt_peek_stress.c.o app/test/dpdk- > test.p/test_ring_mt_peek_stress_zc.c.o app/test/dpdk-test.p/test_ring_perf.c.o > app/test/dpdk-test.p/test_ring_rts_stress.c.o app/test/dpdk- > test.p/test_ring_st_peek_stress.c.o app/test/dpdk- > test.p/test_ring_st_peek_stress_zc.c.o app/test/dpdk-test.p/test_ring_stress.c.o > app/test/dpdk-test.p/test_rwlock.c.o app/test/dpdk-test.p/test_sched.c.o > app/test/dpdk-test.p/test_security.c.o app/test/dpdk- > test.p/test_service_cores.c.o app/test/dpdk-test.p/test_spinlock.c.o > app/test/dpdk-test.p/test_stack.c.o app/test/dpdk-test.p/test_stack_perf.c.o > app/test/dpdk-test.p/test_string_fns.c.o app/test/dpdk-test.p/test_table.c.o > app/test/dpdk-test.p/test_table_acl.c.o app/test/dpdk- > test.p/test_table_combined.c.o app/test/dpdk-test.p/test_table_pipeline.c.o > app/test/dpdk-test.p/test_table_ports.c.o app/test/dpdk- > test.p/test_table_tables.c.o app/test/dpdk-test.p/test_tailq.c.o app/test/dpdk- > test.p/test_thash.c.o app/test/dpdk-test.p/test_timer.c.o app/test/dpdk- > test.p/test_timer_perf.c.o app/test/dpdk-test.p/test_timer_racecond.c.o > app/test/dpdk-test.p/test_timer_secondary.c.o app/test/dpdk- > test.p/test_ticketlock.c.o app/test/dpdk-test.p/test_trace.c.o app/test/dpdk- > test.p/test_trace_register.c.o app/test/dpdk-test.p/test_trace_perf.c.o > app/test/dpdk-test.p/test_version.c.o app/test/dpdk-test.p/virtual_pmd.c.o > app/test/dpdk-test.p/test_telemetry_json.c.o app/test/dpdk- > test.p/test_telemetry_data.c.o app/test/dpdk-test.p/test_link_bonding.c.o > app/test/dpdk-test.p/test_link_bonding_rssconf.c.o app/test/dpdk- > test.p/test_link_bonding_mode4.c.o app/test/dpdk- > test.p/test_pmd_ring_perf.c.o app/test/dpdk-test.p/test_pmd_ring.c.o > app/test/dpdk-test.p/test_event_eth_tx_adapter.c.o app/test/dpdk- > test.p/test_bitratestats.c.o app/test/dpdk-test.p/test_latencystats.c.o > app/test/dpdk-test.p/sample_packet_forward.c.o app/test/dpdk- > test.p/test_pdump.c.o app/test/dpdk-test.p/test_compressdev.c.o -Wl,--as- > needed -Wl,--no-undefined -Wl,-O1 -Wl,--whole-archive -Wl,--start-group > lib/librte_node.a lib/librte_graph.a lib/librte_bpf.a lib/librte_flow_classify.a > lib/librte_pipeline.a lib/librte_table.a lib/librte_port.a lib/librte_fib.a > lib/librte_ipsec.a lib/librte_vhost.a lib/librte_stack.a lib/librte_security.a > lib/librte_sched.a lib/librte_reorder.a lib/librte_rib.a lib/librte_regexdev.a > lib/librte_rawdev.a lib/librte_pdump.a lib/librte_power.a lib/librte_member.a > lib/librte_lpm.a lib/librte_latencystats.a lib/librte_kni.a lib/librte_jobstats.a > lib/librte_ip_frag.a lib/librte_gso.a lib/librte_gro.a lib/librte_eventdev.a > lib/librte_efd.a lib/librte_distributor.a lib/librte_cryptodev.a > lib/librte_compressdev.a lib/librte_cfgfile.a lib/librte_bitratestats.a > lib/librte_bbdev.a lib/librte_acl.a lib/librte_timer.a lib/librte_hash.a > lib/librte_metrics.a lib/librte_cmdline.a lib/librte_pci.a lib/librte_ethdev.a > lib/librte_meter.a lib/librte_net.a lib/librte_mbuf.a lib/librte_mempool.a > lib/librte_rcu.a lib/librte_ring.a lib/librte_eal.a lib/librte_telemetry.a > lib/librte_kvargs.a drivers/librte_common_cpt.a > drivers/librte_common_dpaax.a drivers/librte_common_iavf.a > drivers/librte_common_octeontx.a drivers/librte_common_octeontx2.a > drivers/librte_common_sfc_efx.a drivers/librte_bus_dpaa.a > drivers/librte_bus_fslmc.a drivers/librte_bus_ifpga.a drivers/librte_bus_pci.a > drivers/librte_bus_vdev.a drivers/librte_bus_vmbus.a > drivers/librte_common_mlx5.a drivers/librte_common_qat.a > drivers/librte_mempool_bucket.a drivers/librte_mempool_dpaa.a > drivers/librte_mempool_dpaa2.a drivers/librte_mempool_octeontx.a > drivers/librte_mempool_octeontx2.a drivers/librte_mempool_ring.a > drivers/librte_mempool_stack.a drivers/librte_net_af_packet.a > drivers/librte_net_ark.a drivers/librte_net_atlantic.a drivers/librte_net_avp.a > drivers/librte_net_axgbe.a drivers/librte_net_bond.a > drivers/librte_net_bnx2x.a drivers/librte_net_bnxt.a drivers/librte_net_cxgbe.a > drivers/librte_net_dpaa.a drivers/librte_net_dpaa2.a > drivers/librte_net_e1000.a drivers/librte_net_ena.a drivers/librte_net_enetc.a > drivers/librte_net_enic.a drivers/librte_net_failsafe.a > drivers/librte_net_fm10k.a drivers/librte_net_i40e.a drivers/librte_net_hinic.a > drivers/librte_net_hns3.a drivers/librte_net_iavf.a drivers/librte_net_ice.a > drivers/librte_net_igc.a drivers/librte_net_ionic.a drivers/librte_net_ixgbe.a > drivers/librte_net_kni.a drivers/librte_net_liquidio.a drivers/librte_net_memif.a > drivers/librte_net_mlx4.a drivers/librte_net_mlx5.a drivers/librte_net_netvsc.a > drivers/librte_net_nfp.a drivers/librte_net_null.a drivers/librte_net_octeontx.a > drivers/librte_net_octeontx2.a drivers/librte_net_octeontx_ep.a > drivers/librte_net_pfe.a drivers/librte_net_qede.a drivers/librte_net_ring.a > drivers/librte_net_sfc.a drivers/librte_net_softnic.a drivers/librte_net_tap.a > drivers/librte_net_thunderx.a drivers/librte_net_txgbe.a > drivers/librte_net_vdev_netvsc.a drivers/librte_net_vhost.a > drivers/librte_net_virtio.a drivers/librte_net_vmxnet3.a > drivers/librte_raw_dpaa2_cmdif.a drivers/librte_raw_dpaa2_qdma.a > drivers/librte_raw_ntb.a drivers/librte_raw_octeontx2_dma.a > drivers/librte_raw_octeontx2_ep.a drivers/librte_raw_skeleton.a > drivers/librte_crypto_bcmfs.a drivers/librte_crypto_caam_jr.a > drivers/librte_crypto_ccp.a drivers/librte_crypto_dpaa_sec.a > drivers/librte_crypto_dpaa2_sec.a drivers/librte_crypto_nitrox.a > drivers/librte_crypto_null.a drivers/librte_crypto_octeontx.a > drivers/librte_crypto_octeontx2.a drivers/librte_crypto_openssl.a > drivers/librte_crypto_scheduler.a drivers/librte_crypto_virtio.a > drivers/librte_compress_mlx5.a drivers/librte_compress_octeontx.a > drivers/librte_compress_zlib.a drivers/librte_regex_mlx5.a > drivers/librte_regex_octeontx2.a drivers/librte_vdpa_ifc.a > drivers/librte_vdpa_mlx5.a drivers/librte_event_dpaa.a > drivers/librte_event_dpaa2.a drivers/librte_event_octeontx2.a > drivers/librte_event_opdl.a drivers/librte_event_skeleton.a > drivers/librte_event_sw.a drivers/librte_event_dsw.a > drivers/librte_event_octeontx.a drivers/librte_baseband_null.a > drivers/librte_baseband_turbo_sw.a drivers/librte_baseband_fpga_lte_fec.a > drivers/librte_baseband_fpga_5gnr_fec.a drivers/librte_baseband_acc100.a - > Wl,--no-whole-archive -Wl,--no-as-needed -pthread -lm -ldl -lnuma > /usr/lib/aarch64-linux-gnu/libz.so -lmlx5 -libverbs /usr/lib/aarch64-linux- > gnu/libcrypto.so -lmlx4 -libverbs -lmlx5 -libverbs -lmlx5 -libverbs -lmlx5 - > libverbs -lmlx5 -libverbs -Wl,--end-group -Wl,- > rpath,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX > app/test/dpdk-test.p/test_hash_perf.c.o: In function `test_hash_perf': > test_hash_perf.c:(.text+0x1c74): relocation truncated to fit: > R_AARCH64_ADR_PREL_PG_HI21 against `.bss' > test_hash_perf.c:(.text+0x1d8c): relocation truncated to fit: > R_AARCH64_ADR_PREL_PG_HI21 against `.bss' > test_hash_perf.c:(.text+0x2508): relocation truncated to fit: > R_AARCH64_ADR_PREL_PG_HI21 against `.bss' > collect2: error: ld returned 1 exit status [2527/2527] Linking target app/dpdk- > test-bbdev > ninja: build stopped: subcommand failed. > > > > > > > > > > -- > > > > > Kind regards, > > > > > Luca Boccassi ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH 20.11] config/arm: replace native machine args 2021-03-07 13:35 ` [dpdk-dev] [PATCH 20.11] config/arm: replace native machine args Jerin Jacob Kollanukkaran @ 2021-03-08 3:23 ` Ruifeng Wang 2021-03-08 12:08 ` [dpdk-dev] [dpdk-stable] " Luca Boccassi 2021-03-08 18:48 ` [dpdk-dev] " Jerin Jacob 0 siblings, 2 replies; 5+ messages in thread From: Ruifeng Wang @ 2021-03-08 3:23 UTC (permalink / raw) To: jerinj, Juraj Linkeš, Luca Boccassi, stable, dev, thomas, Ashwin Sekhar Thalakalath Kottilveetil, Andrew Pinski Cc: david.marchand, nd, nd, nd > -----Original Message----- > From: Jerin Jacob Kollanukkaran <jerinj@marvell.com> > Sent: Sunday, March 7, 2021 9:35 PM > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Juraj Linkeš > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > stable@dpdk.org; dev@dpdk.org; thomas@monjalon.net; Ashwin Sekhar > Thalakalath Kottilveetil <asekhar@marvell.com>; Andrew Pinski > <apinski@marvell.com> > Cc: david.marchand@redhat.com; nd <nd@arm.com>; nd <nd@arm.com> > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > -----Original Message----- > > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > > Sent: Monday, March 1, 2021 11:10 AM > > To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Juraj Linkeš > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > stable@dpdk.org > > Cc: david.marchand@redhat.com; nd <nd@arm.com>; nd <nd@arm.com> > > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native machine > > args > > > > External Email > > > > ---------------------------------------------------------------------- > > > -----Original Message----- > > > From: Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > > Sent: Thursday, February 25, 2021 8:15 PM > > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Juraj Linkeš > > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > > stable@dpdk.org > > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > > > -----Original Message----- > > > > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > > > > Sent: Saturday, February 20, 2021 9:13 AM > > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; Luca Boccassi > > > > <bluca@debian.org>; stable@dpdk.org; Jerin Jacob Kollanukkaran > > > > <jerinj@marvell.com> > > > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > > > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native > > > > machine args > > > > > > > > External Email > > > > > > > > ------------------------------------------------------------------ > > > > -- > > > > -- > > > > > -----Original Message----- > > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > Sent: Friday, February 19, 2021 8:10 PM > > > > > To: Luca Boccassi <bluca@debian.org>; stable@dpdk.org > > > > > Cc: jerinj@marvell.com; Ruifeng Wang <Ruifeng.Wang@arm.com>; > > > > > david.marchand@redhat.com > > > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine > > > > > args > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > From: Luca Boccassi <bluca@debian.org> > > > > > > Sent: Friday, February 19, 2021 12:33 PM > > > > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; 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 > > > > > > > > > > > > On Fri, 2021-02-19 at 11:06 +0000, Juraj Linkeš wrote: > > > > > > > > -----Original Message----- > > > > > > > > From: luca.boccassi@gmail.com <luca.boccassi@gmail.com> > > > > > > > > Sent: Friday, February 19, 2021 11:58 AM > > > > > > > > To: stable@dpdk.org > > > > > > > > Cc: Juraj Linkeš <juraj.linkes@pantheon.tech>; > > > > > > > > jerinj@marvell.com; ruifeng.wang@arm.com; > > > > > > > > david.marchand@redhat.com > > > > > > > > Subject: [PATCH 20.11] config/arm: replace native machine > > > > > > > > args > > > > > > > > > > > > > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > > > > > > > > > > [ backported from upstream commit > > > > > > > > 9186e5a07f35ae74a1f7fa2d89671b5f77eae407 ] > > > > > > > > > > > > > > > > There are compiler issues when building with -mcpu=native > > > > > > > > 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 > ‘crcr32_folding_round’: > > > > > > > > /usr/lib/gcc/aarch64-linux-gnu/8/include/arm_neon.h:26094:1: > > > error: > > > > > > > > inlining failed in call to always_inline ‘vmull_p64’: > > > > > > > > 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 = vreinterpretq_u64_p128(vmull_p64( > > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > > > > > > > > > > > > > and clang: > > > > > > > > gcc -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > > __ARM_FEATURE_ATOMICS > > > > > > > > clang-9 -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > > __ARM_FEATURE_ATOMICS <no output> # no clang support > > > > > > > > > > > > > > > > Fix this by always specifying the proper machine args and > > > > > > > > never using the native flags. > > > > > > > > > > > > > > > > Fixes: 78ac8eac7e8a ("config/arm: use native machine build > > > > > > > > arguments") > > > > > > > > > > > > > > > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > > Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com> > > > > > > > > --- > > > > > > > > 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! > > > > > > > > > > > > > > What does this fix? With or without the below change, the > > > > > > > native machine > > > > > > args are not used. The patch shoudn't actually change the > > > > > > configuration of the build at all, so I'm a bit confused. > > > > > > > > > > > > It fixes the build on some build workers with thunderx > > > > > > hardware > > > > > > - without this I get failures like: > > > > > > > > > > > > arm_neon.h:26647:1: error: inlining failed in call to 'always_inline' > > > > > > 'vmull_p64': target specific option mismatch > > > > > > > > > > > > > > > > I tried the patch and I'm seeing the same errors on a ThunderX > > > > > server (with and without the patch). Is this actually the right patch? > > > > > > > > > > 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: > > > > > inlining failed in call to always_inline 'vmull_p64': 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 = vreinterpretq_u64_p128(vmull_p64( > > > > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > > > > > Ruifeng, any ideas on how to fix this? > > > > > > > > Gcc build on ThunderX platform is broken. Issue can be seen in > > > > some > > > > CentOS-8 OBS builds. > > > > https://urldefense.proofpoint.com/v2/url?u=https- > > > > 3A__mails.dpdk.org_archives_dev_2020- > > > > > > > > 2DNovember_192909.html&d=DwIGaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=1 > > > DG > > > > > > > > ob4H4rxz6H8uITozGOCa0s5f4wCNtTa4UUKvcsvI&m=mgzJ6z43dsDFwI6rdgKC > > > Uj > > > > 0GCMNjEKQAa7dfRZxvrdU&s=UWUJTFdGC2mD2x-rcuRnH1I7- > > > > 1jKFC40Bh5hFanzu0A&e= > > > > I tried tuning compiler flags used, but could not resolve the issue. > > > > > > > > Need help from Marvell to look at this. > > > > Hi Jerin, do you have any thoughts on this? > > > > > > > > > Ruifeng, If you are able to reproduce this issue, Could you add "- > > > march=armv8.1-a+crc+crypto" In ThunderX config and check is this > > > Fixing the issue? > > > > > > [main] [dpdk.org] $ git diff > > > diff --git a/config/arm/meson.build b/config/arm/meson.build index > > > 00bc4610a..ef65b4bb6 100644 > > > --- a/config/arm/meson.build > > > +++ b/config/arm/meson.build > > > @@ -96,15 +96,18 @@ implementer_cavium = { > > > ], > > > 'part_number_config': { > > > '0xa1': { > > > - 'machine_args': ['-mcpu=thunderxt88'], > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > + '-mcpu=thunderxt88'], > > > 'flags': flags_part_number_thunderx > > > }, > > > '0xa2': { > > > - 'machine_args': ['-mcpu=thunderxt81'], > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > + '-mcpu=thunderxt81'], > > > 'flags': flags_part_number_thunderx > > > }, > > > '0xa3': { > > > - 'machine_args': ['-mcpu=thunderxt83'], > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > + '-mcpu=thunderxt83'], > > > 'flags': flags_part_number_thunderx > > > }, > > > '0xaf': { > > > > > > > Hi Jerin, > > > > The patch doesn't work. Build failed at link stage. > > I used gcc 8.4 and tried build on thunderxt88. > > > > Hi Ruifeng, > > I talked to compiler experts here in Marvell. It looks like compiler issue, As a > workaround couple of these could try: > 1) Reduce the external libraries linked to the application like mlx5 etc I tried building with lots of drivers disabled. Not yet able to get a successful build. > 2) Add -mcmodel=large flag will fix "relocation truncated to fit" issue as > testing purpose as we are not sure about the implication of this flag. Looks like this flag is not supported by gcc 8.4 that I am using. One thing we can do to overcome the build failure is to switch to default / release build in OBS CI. OBS CI is running native build, so it could hit this issue when CI job is scheduled to thunderxt88 infrastructure. I think we should change to do release build (-Dmachine=default) which is more suitable for generic CI verification. As I checked, release build can pass on my thunderxt88 platform. What do you think? > > > > > > Logs as below: > > [2513/2527] Linking target app/test/dpdk-test > > FAILED: app/test/dpdk-test > > cc -o app/test/dpdk-test app/test/dpdk-test.p/commands.c.o > > app/test/dpdk- test.p/packet_burst_generator.c.o > > app/test/dpdk-test.p/test.c.o app/test/dpdk- test.p/test_acl.c.o > > app/test/dpdk-test.p/test_alarm.c.o app/test/dpdk- > > test.p/test_atomic.c.o app/test/dpdk-test.p/test_barrier.c.o > > app/test/dpdk- test.p/test_bitops.c.o > > app/test/dpdk-test.p/test_bitmap.c.o app/test/dpdk- > > test.p/test_bpf.c.o app/test/dpdk-test.p/test_byteorder.c.o > > app/test/dpdk- test.p/test_cmdline.c.o > > app/test/dpdk-test.p/test_cmdline_cirbuf.c.o > > app/test/dpdk-test.p/test_cmdline_etheraddr.c.o app/test/dpdk- > > test.p/test_cmdline_ipaddr.c.o > > app/test/dpdk-test.p/test_cmdline_lib.c.o > > app/test/dpdk-test.p/test_cmdline_num.c.o app/test/dpdk- > > test.p/test_cmdline_portlist.c.o > > app/test/dpdk-test.p/test_cmdline_string.c.o > > app/test/dpdk-test.p/test_common.c.o > > app/test/dpdk-test.p/test_cpuflags.c.o > > app/test/dpdk-test.p/test_crc.c.o > > app/test/dpdk-test.p/test_cryptodev.c.o > > app/test/dpdk-test.p/test_cryptodev_asym.c.o app/test/dpdk- > > test.p/test_cryptodev_blockcipher.c.o app/test/dpdk- > > test.p/test_cryptodev_security_pdcp.c.o > > app/test/dpdk-test.p/test_cycles.c.o > > app/test/dpdk-test.p/test_debug.c.o > > app/test/dpdk-test.p/test_distributor.c.o > > app/test/dpdk-test.p/test_distributor_perf.c.o app/test/dpdk- > > test.p/test_eal_flags.c.o app/test/dpdk-test.p/test_eal_fs.c.o > > app/test/dpdk- test.p/test_efd.c.o > > app/test/dpdk-test.p/test_efd_perf.c.o app/test/dpdk- > > test.p/test_errno.c.o app/test/dpdk-test.p/test_ethdev_link.c.o > > app/test/dpdk- test.p/test_event_crypto_adapter.c.o app/test/dpdk- > > test.p/test_event_eth_rx_adapter.c.o > > app/test/dpdk-test.p/test_event_ring.c.o > > app/test/dpdk-test.p/test_event_timer_adapter.c.o app/test/dpdk- > > test.p/test_eventdev.c.o app/test/dpdk-test.p/test_external_mem.c.o > > app/test/dpdk-test.p/test_fbarray.c.o > > app/test/dpdk-test.p/test_fib.c.o > > app/test/dpdk-test.p/test_fib_perf.c.o > > app/test/dpdk-test.p/test_fib6.c.o > > app/test/dpdk-test.p/test_fib6_perf.c.o app/test/dpdk- > > test.p/test_func_reentrancy.c.o > > app/test/dpdk-test.p/test_flow_classify.c.o > > app/test/dpdk-test.p/test_graph.c.o > > app/test/dpdk-test.p/test_graph_perf.c.o > > app/test/dpdk-test.p/test_hash.c.o app/test/dpdk- > > test.p/test_hash_functions.c.o > > app/test/dpdk-test.p/test_hash_multiwriter.c.o > > app/test/dpdk-test.p/test_hash_readwrite.c.o app/test/dpdk- > > test.p/test_hash_perf.c.o > > app/test/dpdk-test.p/test_hash_readwrite_lf_perf.c.o > > app/test/dpdk-test.p/test_interrupts.c.o > > app/test/dpdk-test.p/test_ipfrag.c.o > > app/test/dpdk-test.p/test_ipsec.c.o > > app/test/dpdk-test.p/test_ipsec_sad.c.o > > app/test/dpdk-test.p/test_ipsec_perf.c.o > > app/test/dpdk-test.p/test_kni.c.o app/test/dpdk-test.p/test_kvargs.c.o > > app/test/dpdk-test.p/test_lcores.c.o > > app/test/dpdk-test.p/test_logs.c.o app/test/dpdk-test.p/test_lpm.c.o > > app/test/dpdk-test.p/test_lpm6.c.o > > app/test/dpdk-test.p/test_lpm6_perf.c.o > > app/test/dpdk-test.p/test_lpm_perf.c.o > > app/test/dpdk-test.p/test_malloc.c.o > > app/test/dpdk-test.p/test_mbuf.c.o > > app/test/dpdk-test.p/test_member.c.o > > app/test/dpdk-test.p/test_member_perf.c.o app/test/dpdk- > > test.p/test_memcpy.c.o app/test/dpdk-test.p/test_memcpy_perf.c.o > > app/test/dpdk-test.p/test_memory.c.o > > app/test/dpdk-test.p/test_mempool.c.o > > app/test/dpdk-test.p/test_mempool_perf.c.o app/test/dpdk- > > test.p/test_memzone.c.o app/test/dpdk-test.p/test_meter.c.o > > app/test/dpdk- test.p/test_metrics.c.o > > app/test/dpdk-test.p/test_mcslock.c.o app/test/dpdk- > > test.p/test_mp_secondary.c.o app/test/dpdk-test.p/test_per_lcore.c.o > > app/test/dpdk-test.p/test_pmd_perf.c.o > > app/test/dpdk-test.p/test_power.c.o > > app/test/dpdk-test.p/test_power_cpufreq.c.o app/test/dpdk- > > test.p/test_power_kvm_vm.c.o app/test/dpdk-test.p/test_prefetch.c.o > > app/test/dpdk-test.p/test_rand_perf.c.o > > app/test/dpdk-test.p/test_rawdev.c.o > > app/test/dpdk-test.p/test_rcu_qsbr.c.o app/test/dpdk- > > test.p/test_rcu_qsbr_perf.c.o > > app/test/dpdk-test.p/test_reciprocal_division.c.o > > app/test/dpdk-test.p/test_reciprocal_division_perf.c.o app/test/dpdk- > > test.p/test_red.c.o app/test/dpdk-test.p/test_reorder.c.o > > app/test/dpdk- test.p/test_rib.c.o app/test/dpdk-test.p/test_rib6.c.o > > app/test/dpdk- test.p/test_ring.c.o > > app/test/dpdk-test.p/test_ring_mpmc_stress.c.o > > app/test/dpdk-test.p/test_ring_hts_stress.c.o app/test/dpdk- > > test.p/test_ring_mt_peek_stress.c.o app/test/dpdk- > > test.p/test_ring_mt_peek_stress_zc.c.o > > app/test/dpdk-test.p/test_ring_perf.c.o > > app/test/dpdk-test.p/test_ring_rts_stress.c.o app/test/dpdk- > > test.p/test_ring_st_peek_stress.c.o app/test/dpdk- > > test.p/test_ring_st_peek_stress_zc.c.o > > app/test/dpdk-test.p/test_ring_stress.c.o > > app/test/dpdk-test.p/test_rwlock.c.o > > app/test/dpdk-test.p/test_sched.c.o > > app/test/dpdk-test.p/test_security.c.o app/test/dpdk- > > test.p/test_service_cores.c.o app/test/dpdk-test.p/test_spinlock.c.o > > app/test/dpdk-test.p/test_stack.c.o > > app/test/dpdk-test.p/test_stack_perf.c.o > > app/test/dpdk-test.p/test_string_fns.c.o > > app/test/dpdk-test.p/test_table.c.o > > app/test/dpdk-test.p/test_table_acl.c.o app/test/dpdk- > > test.p/test_table_combined.c.o > > app/test/dpdk-test.p/test_table_pipeline.c.o > > app/test/dpdk-test.p/test_table_ports.c.o app/test/dpdk- > > test.p/test_table_tables.c.o app/test/dpdk-test.p/test_tailq.c.o > > app/test/dpdk- test.p/test_thash.c.o > > app/test/dpdk-test.p/test_timer.c.o app/test/dpdk- > > test.p/test_timer_perf.c.o > > app/test/dpdk-test.p/test_timer_racecond.c.o > > app/test/dpdk-test.p/test_timer_secondary.c.o app/test/dpdk- > > test.p/test_ticketlock.c.o app/test/dpdk-test.p/test_trace.c.o > > app/test/dpdk- test.p/test_trace_register.c.o > > app/test/dpdk-test.p/test_trace_perf.c.o > > app/test/dpdk-test.p/test_version.c.o > > app/test/dpdk-test.p/virtual_pmd.c.o > > app/test/dpdk-test.p/test_telemetry_json.c.o app/test/dpdk- > > test.p/test_telemetry_data.c.o > > app/test/dpdk-test.p/test_link_bonding.c.o > > app/test/dpdk-test.p/test_link_bonding_rssconf.c.o app/test/dpdk- > > test.p/test_link_bonding_mode4.c.o app/test/dpdk- > > test.p/test_pmd_ring_perf.c.o app/test/dpdk-test.p/test_pmd_ring.c.o > > app/test/dpdk-test.p/test_event_eth_tx_adapter.c.o app/test/dpdk- > > test.p/test_bitratestats.c.o > > app/test/dpdk-test.p/test_latencystats.c.o > > app/test/dpdk-test.p/sample_packet_forward.c.o app/test/dpdk- > > test.p/test_pdump.c.o app/test/dpdk-test.p/test_compressdev.c.o > > -Wl,--as- needed -Wl,--no-undefined -Wl,-O1 -Wl,--whole-archive > > -Wl,--start-group lib/librte_node.a lib/librte_graph.a > > lib/librte_bpf.a lib/librte_flow_classify.a lib/librte_pipeline.a > > lib/librte_table.a lib/librte_port.a lib/librte_fib.a > > lib/librte_ipsec.a lib/librte_vhost.a lib/librte_stack.a > > lib/librte_security.a lib/librte_sched.a lib/librte_reorder.a > > lib/librte_rib.a lib/librte_regexdev.a lib/librte_rawdev.a > > lib/librte_pdump.a lib/librte_power.a lib/librte_member.a > > lib/librte_lpm.a lib/librte_latencystats.a lib/librte_kni.a > > lib/librte_jobstats.a lib/librte_ip_frag.a lib/librte_gso.a > > lib/librte_gro.a lib/librte_eventdev.a lib/librte_efd.a > > lib/librte_distributor.a lib/librte_cryptodev.a > > lib/librte_compressdev.a lib/librte_cfgfile.a > > lib/librte_bitratestats.a lib/librte_bbdev.a lib/librte_acl.a > > lib/librte_timer.a lib/librte_hash.a lib/librte_metrics.a > > lib/librte_cmdline.a lib/librte_pci.a lib/librte_ethdev.a > > lib/librte_meter.a lib/librte_net.a lib/librte_mbuf.a > > lib/librte_mempool.a lib/librte_rcu.a lib/librte_ring.a > > lib/librte_eal.a lib/librte_telemetry.a lib/librte_kvargs.a > > drivers/librte_common_cpt.a drivers/librte_common_dpaax.a > > drivers/librte_common_iavf.a drivers/librte_common_octeontx.a > > drivers/librte_common_octeontx2.a drivers/librte_common_sfc_efx.a > > drivers/librte_bus_dpaa.a drivers/librte_bus_fslmc.a > > drivers/librte_bus_ifpga.a drivers/librte_bus_pci.a > > drivers/librte_bus_vdev.a drivers/librte_bus_vmbus.a > > drivers/librte_common_mlx5.a drivers/librte_common_qat.a > > drivers/librte_mempool_bucket.a drivers/librte_mempool_dpaa.a > > drivers/librte_mempool_dpaa2.a drivers/librte_mempool_octeontx.a > > drivers/librte_mempool_octeontx2.a drivers/librte_mempool_ring.a > > drivers/librte_mempool_stack.a drivers/librte_net_af_packet.a > > drivers/librte_net_ark.a drivers/librte_net_atlantic.a > > drivers/librte_net_avp.a drivers/librte_net_axgbe.a > > drivers/librte_net_bond.a drivers/librte_net_bnx2x.a > > drivers/librte_net_bnxt.a drivers/librte_net_cxgbe.a > > drivers/librte_net_dpaa.a drivers/librte_net_dpaa2.a > > drivers/librte_net_e1000.a drivers/librte_net_ena.a > > drivers/librte_net_enetc.a drivers/librte_net_enic.a > > drivers/librte_net_failsafe.a drivers/librte_net_fm10k.a > > drivers/librte_net_i40e.a drivers/librte_net_hinic.a > > drivers/librte_net_hns3.a drivers/librte_net_iavf.a > > drivers/librte_net_ice.a drivers/librte_net_igc.a > > drivers/librte_net_ionic.a drivers/librte_net_ixgbe.a > > drivers/librte_net_kni.a drivers/librte_net_liquidio.a > > drivers/librte_net_memif.a drivers/librte_net_mlx4.a > > drivers/librte_net_mlx5.a drivers/librte_net_netvsc.a > > drivers/librte_net_nfp.a drivers/librte_net_null.a > > drivers/librte_net_octeontx.a drivers/librte_net_octeontx2.a > > drivers/librte_net_octeontx_ep.a drivers/librte_net_pfe.a > > drivers/librte_net_qede.a drivers/librte_net_ring.a > > drivers/librte_net_sfc.a drivers/librte_net_softnic.a > > drivers/librte_net_tap.a drivers/librte_net_thunderx.a > > drivers/librte_net_txgbe.a drivers/librte_net_vdev_netvsc.a > > drivers/librte_net_vhost.a drivers/librte_net_virtio.a > > drivers/librte_net_vmxnet3.a drivers/librte_raw_dpaa2_cmdif.a > > drivers/librte_raw_dpaa2_qdma.a drivers/librte_raw_ntb.a > > drivers/librte_raw_octeontx2_dma.a > > drivers/librte_raw_octeontx2_ep.a drivers/librte_raw_skeleton.a > > drivers/librte_crypto_bcmfs.a drivers/librte_crypto_caam_jr.a > > drivers/librte_crypto_ccp.a drivers/librte_crypto_dpaa_sec.a > > drivers/librte_crypto_dpaa2_sec.a drivers/librte_crypto_nitrox.a > > drivers/librte_crypto_null.a drivers/librte_crypto_octeontx.a > > drivers/librte_crypto_octeontx2.a drivers/librte_crypto_openssl.a > > drivers/librte_crypto_scheduler.a drivers/librte_crypto_virtio.a > > drivers/librte_compress_mlx5.a drivers/librte_compress_octeontx.a > > drivers/librte_compress_zlib.a drivers/librte_regex_mlx5.a > > drivers/librte_regex_octeontx2.a drivers/librte_vdpa_ifc.a > > drivers/librte_vdpa_mlx5.a drivers/librte_event_dpaa.a > > drivers/librte_event_dpaa2.a drivers/librte_event_octeontx2.a > > drivers/librte_event_opdl.a drivers/librte_event_skeleton.a > > drivers/librte_event_sw.a drivers/librte_event_dsw.a > > drivers/librte_event_octeontx.a drivers/librte_baseband_null.a > > drivers/librte_baseband_turbo_sw.a > > drivers/librte_baseband_fpga_lte_fec.a > > drivers/librte_baseband_fpga_5gnr_fec.a > > drivers/librte_baseband_acc100.a - Wl,--no-whole-archive > > -Wl,--no-as-needed -pthread -lm -ldl -lnuma > > /usr/lib/aarch64-linux-gnu/libz.so -lmlx5 -libverbs > > /usr/lib/aarch64-linux- gnu/libcrypto.so -lmlx4 -libverbs -lmlx5 > > -libverbs -lmlx5 -libverbs -lmlx5 - libverbs -lmlx5 -libverbs > > -Wl,--end-group -Wl,- > > rpath,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX > > app/test/dpdk-test.p/test_hash_perf.c.o: In function `test_hash_perf': > > test_hash_perf.c:(.text+0x1c74): relocation truncated to fit: > > R_AARCH64_ADR_PREL_PG_HI21 against `.bss' > > test_hash_perf.c:(.text+0x1d8c): relocation truncated to fit: > > R_AARCH64_ADR_PREL_PG_HI21 against `.bss' > > test_hash_perf.c:(.text+0x2508): relocation truncated to fit: > > R_AARCH64_ADR_PREL_PG_HI21 against `.bss' > > collect2: error: ld returned 1 exit status [2527/2527] Linking target > > app/dpdk- test-bbdev > > ninja: build stopped: subcommand failed. > > > > > > > > > > > > > -- > > > > > > Kind regards, > > > > > > Luca Boccassi ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH 20.11] config/arm: replace native machine args 2021-03-08 3:23 ` Ruifeng Wang @ 2021-03-08 12:08 ` Luca Boccassi 2021-03-08 18:51 ` Jerin Jacob 2021-03-08 18:48 ` [dpdk-dev] " Jerin Jacob 1 sibling, 1 reply; 5+ messages in thread From: Luca Boccassi @ 2021-03-08 12:08 UTC (permalink / raw) To: Ruifeng Wang, jerinj, Juraj Linkeš, stable, dev, thomas, Ashwin Sekhar Thalakalath Kottilveetil, Andrew Pinski Cc: david.marchand, nd On Mon, 2021-03-08 at 03:23 +0000, Ruifeng Wang wrote: > > -----Original Message----- > > From: Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > Sent: Sunday, March 7, 2021 9:35 PM > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Juraj Linkeš > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > stable@dpdk.org; dev@dpdk.org; thomas@monjalon.net; Ashwin Sekhar > > Thalakalath Kottilveetil <asekhar@marvell.com>; Andrew Pinski > > <apinski@marvell.com> > > Cc: david.marchand@redhat.com; nd <nd@arm.com>; nd <nd@arm.com> > > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > > > > > -----Original Message----- > > > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > > > Sent: Monday, March 1, 2021 11:10 AM > > > To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Juraj Linkeš > > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > > stable@dpdk.org > > > Cc: david.marchand@redhat.com; nd <nd@arm.com>; nd <nd@arm.com> > > > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native machine > > > args > > > > > > External Email > > > > > > ---------------------------------------------------------------------- > > > > -----Original Message----- > > > > From: Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > > > Sent: Thursday, February 25, 2021 8:15 PM > > > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Juraj Linkeš > > > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > > > stable@dpdk.org > > > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > > > > > -----Original Message----- > > > > > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > > > > > Sent: Saturday, February 20, 2021 9:13 AM > > > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; Luca Boccassi > > > > > <bluca@debian.org>; stable@dpdk.org; Jerin Jacob Kollanukkaran > > > > > <jerinj@marvell.com> > > > > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > > > > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native > > > > > machine args > > > > > > > > > > External Email > > > > > > > > > > ------------------------------------------------------------------ > > > > > -- > > > > > -- > > > > > > -----Original Message----- > > > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > Sent: Friday, February 19, 2021 8:10 PM > > > > > > To: Luca Boccassi <bluca@debian.org>; stable@dpdk.org > > > > > > Cc: jerinj@marvell.com; Ruifeng Wang <Ruifeng.Wang@arm.com>; > > > > > > david.marchand@redhat.com > > > > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine > > > > > > args > > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: Luca Boccassi <bluca@debian.org> > > > > > > > Sent: Friday, February 19, 2021 12:33 PM > > > > > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; 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 > > > > > > > > > > > > > > On Fri, 2021-02-19 at 11:06 +0000, Juraj Linkeš wrote: > > > > > > > > > -----Original Message----- > > > > > > > > > From: luca.boccassi@gmail.com <luca.boccassi@gmail.com> > > > > > > > > > Sent: Friday, February 19, 2021 11:58 AM > > > > > > > > > To: stable@dpdk.org > > > > > > > > > Cc: Juraj Linkeš <juraj.linkes@pantheon.tech>; > > > > > > > > > jerinj@marvell.com; ruifeng.wang@arm.com; > > > > > > > > > david.marchand@redhat.com > > > > > > > > > Subject: [PATCH 20.11] config/arm: replace native machine > > > > > > > > > args > > > > > > > > > > > > > > > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > > > > > > > > > > > > [ backported from upstream commit > > > > > > > > > 9186e5a07f35ae74a1f7fa2d89671b5f77eae407 ] > > > > > > > > > > > > > > > > > > There are compiler issues when building with -mcpu=native > > > > > > > > > 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 > > ‘crcr32_folding_round’: > > > > > > > > > /usr/lib/gcc/aarch64-linux-gnu/8/include/arm_neon.h:26094:1: > > > > error: > > > > > > > > > inlining failed in call to always_inline ‘vmull_p64’: > > > > > > > > > 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 = vreinterpretq_u64_p128(vmull_p64( > > > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > > > > > > > > > > > > > > > and clang: > > > > > > > > > gcc -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > > > __ARM_FEATURE_ATOMICS > > > > > > > > > clang-9 -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > > > __ARM_FEATURE_ATOMICS <no output> # no clang support > > > > > > > > > > > > > > > > > > Fix this by always specifying the proper machine args and > > > > > > > > > never using the native flags. > > > > > > > > > > > > > > > > > > Fixes: 78ac8eac7e8a ("config/arm: use native machine build > > > > > > > > > arguments") > > > > > > > > > > > > > > > > > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > > > Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com> > > > > > > > > > --- > > > > > > > > > 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! > > > > > > > > > > > > > > > > What does this fix? With or without the below change, the > > > > > > > > native machine > > > > > > > args are not used. The patch shoudn't actually change the > > > > > > > configuration of the build at all, so I'm a bit confused. > > > > > > > > > > > > > > It fixes the build on some build workers with thunderx > > > > > > > hardware > > > > > > > - without this I get failures like: > > > > > > > > > > > > > > arm_neon.h:26647:1: error: inlining failed in call to 'always_inline' > > > > > > > 'vmull_p64': target specific option mismatch > > > > > > > > > > > > > > > > > > > I tried the patch and I'm seeing the same errors on a ThunderX > > > > > > server (with and without the patch). Is this actually the right patch? > > > > > > > > > > > > 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: > > > > > > inlining failed in call to always_inline 'vmull_p64': 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 = vreinterpretq_u64_p128(vmull_p64( > > > > > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > > > > > > > Ruifeng, any ideas on how to fix this? > > > > > > > > > > Gcc build on ThunderX platform is broken. Issue can be seen in > > > > > some > > > > > CentOS-8 OBS builds. > > > > > https://urldefense.proofpoint.com/v2/url?u=https- > > > > > 3A__mails.dpdk.org_archives_dev_2020- > > > > > > > 2DNovember_192909.html&d=DwIGaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=1 > > > > DG > > ob4H4rxz6H8uITozGOCa0s5f4wCNtTa4UUKvcsvI&m=mgzJ6z43dsDFwI6rdgKC > > > > Uj > > > > > 0GCMNjEKQAa7dfRZxvrdU&s=UWUJTFdGC2mD2x-rcuRnH1I7- > > > > > 1jKFC40Bh5hFanzu0A&e= > > > > > I tried tuning compiler flags used, but could not resolve the issue. > > > > > > > > > > Need help from Marvell to look at this. > > > > > Hi Jerin, do you have any thoughts on this? > > > > > > > > Ruifeng, If you are able to reproduce this issue, Could you add "- > > > > march=armv8.1-a+crc+crypto" In ThunderX config and check is this > > > > Fixing the issue? > > > > > > > > [main] [dpdk.org] $ git diff > > > > diff --git a/config/arm/meson.build b/config/arm/meson.build index > > > > 00bc4610a..ef65b4bb6 100644 > > > > --- a/config/arm/meson.build > > > > +++ b/config/arm/meson.build > > > > @@ -96,15 +96,18 @@ implementer_cavium = { > > > > ], > > > > 'part_number_config': { > > > > '0xa1': { > > > > - 'machine_args': ['-mcpu=thunderxt88'], > > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > > + '-mcpu=thunderxt88'], > > > > 'flags': flags_part_number_thunderx > > > > }, > > > > '0xa2': { > > > > - 'machine_args': ['-mcpu=thunderxt81'], > > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > > + '-mcpu=thunderxt81'], > > > > 'flags': flags_part_number_thunderx > > > > }, > > > > '0xa3': { > > > > - 'machine_args': ['-mcpu=thunderxt83'], > > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > > + '-mcpu=thunderxt83'], > > > > 'flags': flags_part_number_thunderx > > > > }, > > > > '0xaf': { > > > > > > > > > > Hi Jerin, > > > > > > The patch doesn't work. Build failed at link stage. > > > I used gcc 8.4 and tried build on thunderxt88. > > > > > > Hi Ruifeng, > > > > I talked to compiler experts here in Marvell. It looks like compiler issue, As a > > workaround couple of these could try: > > 1) Reduce the external libraries linked to the application like mlx5 etc > > I tried building with lots of drivers disabled. Not yet able to get a successful build. > > > 2) Add -mcmodel=large flag will fix "relocation truncated to fit" issue as > > testing purpose as we are not sure about the implication of this flag. > > Looks like this flag is not supported by gcc 8.4 that I am using. > > One thing we can do to overcome the build failure is to switch to default / release build in OBS CI. > OBS CI is running native build, so it could hit this issue when CI job is scheduled to thunderxt88 infrastructure. > I think we should change to do release build (-Dmachine=default) which is more suitable for generic CI verification. > As I checked, release build can pass on my thunderxt88 platform. > > What do you think? Hi, I've done as suggested, and it seems to fare better, thank you. There is still a build error on CentOS 7, not sure if it is related though: [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c: In function 'otx2_tim_arm_tmo_tick_burst_mod': [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c:154:18: error: could not split insn [ 555s] struct rte_event_timer **tim, \ [ 555s] ^ [ 555s] ../drivers/event/octeontx2/otx2_tim_evdev.h:208:1: note: in expansion of macro 'FP' [ 555s] FP(mod, 0, 0, 0, OTX2_TIM_BKT_MOD | OTX2_TIM_ENA_DFB) \ [ 555s] ^ [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c:161:1: note: in expansion of macro 'TIM_ARM_TMO_FASTPATH_MODES' [ 555s] TIM_ARM_TMO_FASTPATH_MODES [ 555s] ^ [ 555s] (insn 252 250 255 (parallel [ [ 555s] (set (reg:DI 1 x1 [orig:230 D.17092 ] [230]) [ 555s] (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.17094 ] [229]) [-1 S8 A64])) [ 555s] (set (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.17094 ] [229]) [-1 S8 A64]) [ 555s] (unspec_volatile:DI [ [ 555s] (plus:DI (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.17094 ] [229]) [-1 S8 A64]) [ 555s] (const_int 1099511627776 [0x10000000000])) [ 555s] (const_int 2 [0x2]) [ 555s] ] UNSPECV_ATOMIC_OP)) [ 555s] (clobber (reg:CC 66 cc)) [ 555s] (clobber (reg:DI 4 x4)) [ 555s] (clobber (reg:SI 3 x3)) [ 555s] ]) ../drivers/event/octeontx2/otx2_tim_worker.h:81 1832 {atomic_fetch_adddi} [ 555s] (expr_list:REG_UNUSED (reg:CC 66 cc) [ 555s] (expr_list:REG_UNUSED (reg:DI 4 x4) [ 555s] (expr_list:REG_UNUSED (reg:SI 3 x3) [ 555s] (nil))))) [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c:154:18: internal compiler error: in final_scan_insn, at final.c:2897 [ 555s] struct rte_event_timer **tim, \ [ 555s] ^ [ 555s] ../drivers/event/octeontx2/otx2_tim_evdev.h:208:1: note: in expansion of macro 'FP' [ 555s] FP(mod, 0, 0, 0, OTX2_TIM_BKT_MOD | OTX2_TIM_ENA_DFB) \ [ 555s] ^ [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c:161:1: note: in expansion of macro 'TIM_ARM_TMO_FASTPATH_MODES' [ 555s] TIM_ARM_TMO_FASTPATH_MODES [ 555s] ^ [ 555s] Please submit a full bug report, [ 555s] with preprocessed source if appropriate. [ 555s] See <http://bugzilla.redhat.com/bugzilla> for instructions. [ 555s] {standard input}: Assembler messages: [ 555s] {standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive [ 555s] Preprocessed source stored into /tmp/ccpVQUdT.out file, please attach this to your bugreport. -- Kind regards, Luca Boccassi ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH 20.11] config/arm: replace native machine args 2021-03-08 12:08 ` [dpdk-dev] [dpdk-stable] " Luca Boccassi @ 2021-03-08 18:51 ` Jerin Jacob 0 siblings, 0 replies; 5+ messages in thread From: Jerin Jacob @ 2021-03-08 18:51 UTC (permalink / raw) To: Luca Boccassi Cc: Ruifeng Wang, jerinj, Juraj Linkeš, stable, dev, thomas, Ashwin Sekhar Thalakalath Kottilveetil, Andrew Pinski, david.marchand, nd On Mon, Mar 8, 2021 at 5:38 PM Luca Boccassi <bluca@debian.org> wrote: > > On Mon, 2021-03-08 at 03:23 +0000, Ruifeng Wang wrote: > > > -----Original Message----- > > > From: Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > > Sent: Sunday, March 7, 2021 9:35 PM > > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Juraj Linkeš > > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > > stable@dpdk.org; dev@dpdk.org; thomas@monjalon.net; Ashwin Sekhar > > > Thalakalath Kottilveetil <asekhar@marvell.com>; Andrew Pinski > > > <apinski@marvell.com> > > > Cc: david.marchand@redhat.com; nd <nd@arm.com>; nd <nd@arm.com> > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > > > > > > > > > -----Original Message----- > > > > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > > > > Sent: Monday, March 1, 2021 11:10 AM > > > > To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Juraj Linkeš > > > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > > > stable@dpdk.org > > > > Cc: david.marchand@redhat.com; nd <nd@arm.com>; nd <nd@arm.com> > > > > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native machine > > > > args > > > > > > > > External Email > > > > > > > > ---------------------------------------------------------------------- > > > > > -----Original Message----- > > > > > From: Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > > > > Sent: Thursday, February 25, 2021 8:15 PM > > > > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Juraj Linkeš > > > > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > > > > stable@dpdk.org > > > > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > > > > > > > -----Original Message----- > > > > > > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > > > > > > Sent: Saturday, February 20, 2021 9:13 AM > > > > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; Luca Boccassi > > > > > > <bluca@debian.org>; stable@dpdk.org; Jerin Jacob Kollanukkaran > > > > > > <jerinj@marvell.com> > > > > > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > > > > > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native > > > > > > machine args > > > > > > > > > > > > External Email > > > > > > > > > > > > ------------------------------------------------------------------ > > > > > > -- > > > > > > -- > > > > > > > -----Original Message----- > > > > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > Sent: Friday, February 19, 2021 8:10 PM > > > > > > > To: Luca Boccassi <bluca@debian.org>; stable@dpdk.org > > > > > > > Cc: jerinj@marvell.com; Ruifeng Wang <Ruifeng.Wang@arm.com>; > > > > > > > david.marchand@redhat.com > > > > > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine > > > > > > > args > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > From: Luca Boccassi <bluca@debian.org> > > > > > > > > Sent: Friday, February 19, 2021 12:33 PM > > > > > > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; 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 > > > > > > > > > > > > > > > > On Fri, 2021-02-19 at 11:06 +0000, Juraj Linkeš wrote: > > > > > > > > > > -----Original Message----- > > > > > > > > > > From: luca.boccassi@gmail.com <luca.boccassi@gmail.com> > > > > > > > > > > Sent: Friday, February 19, 2021 11:58 AM > > > > > > > > > > To: stable@dpdk.org > > > > > > > > > > Cc: Juraj Linkeš <juraj.linkes@pantheon.tech>; > > > > > > > > > > jerinj@marvell.com; ruifeng.wang@arm.com; > > > > > > > > > > david.marchand@redhat.com > > > > > > > > > > Subject: [PATCH 20.11] config/arm: replace native machine > > > > > > > > > > args > > > > > > > > > > > > > > > > > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > > > > > > > > > > > > > > [ backported from upstream commit > > > > > > > > > > 9186e5a07f35ae74a1f7fa2d89671b5f77eae407 ] > > > > > > > > > > > > > > > > > > > > There are compiler issues when building with -mcpu=native > > > > > > > > > > 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 > > > ‘crcr32_folding_round’: > > > > > > > > > > /usr/lib/gcc/aarch64-linux-gnu/8/include/arm_neon.h:26094:1: > > > > > error: > > > > > > > > > > inlining failed in call to always_inline ‘vmull_p64’: > > > > > > > > > > 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 = vreinterpretq_u64_p128(vmull_p64( > > > > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > > > > > > > > > > > > > > > > > and clang: > > > > > > > > > > gcc -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > > > > __ARM_FEATURE_ATOMICS > > > > > > > > > > clang-9 -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > > > > __ARM_FEATURE_ATOMICS <no output> # no clang support > > > > > > > > > > > > > > > > > > > > Fix this by always specifying the proper machine args and > > > > > > > > > > never using the native flags. > > > > > > > > > > > > > > > > > > > > Fixes: 78ac8eac7e8a ("config/arm: use native machine build > > > > > > > > > > arguments") > > > > > > > > > > > > > > > > > > > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > > > > Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com> > > > > > > > > > > --- > > > > > > > > > > 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! > > > > > > > > > > > > > > > > > > What does this fix? With or without the below change, the > > > > > > > > > native machine > > > > > > > > args are not used. The patch shoudn't actually change the > > > > > > > > configuration of the build at all, so I'm a bit confused. > > > > > > > > > > > > > > > > It fixes the build on some build workers with thunderx > > > > > > > > hardware > > > > > > > > - without this I get failures like: > > > > > > > > > > > > > > > > arm_neon.h:26647:1: error: inlining failed in call to 'always_inline' > > > > > > > > 'vmull_p64': target specific option mismatch > > > > > > > > > > > > > > > > > > > > > > I tried the patch and I'm seeing the same errors on a ThunderX > > > > > > > server (with and without the patch). Is this actually the right patch? > > > > > > > > > > > > > > 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: > > > > > > > inlining failed in call to always_inline 'vmull_p64': 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 = vreinterpretq_u64_p128(vmull_p64( > > > > > > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > > > > > > > > > Ruifeng, any ideas on how to fix this? > > > > > > > > > > > > Gcc build on ThunderX platform is broken. Issue can be seen in > > > > > > some > > > > > > CentOS-8 OBS builds. > > > > > > https://urldefense.proofpoint.com/v2/url?u=https- > > > > > > 3A__mails.dpdk.org_archives_dev_2020- > > > > > > > > > 2DNovember_192909.html&d=DwIGaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=1 > > > > > DG > > > ob4H4rxz6H8uITozGOCa0s5f4wCNtTa4UUKvcsvI&m=mgzJ6z43dsDFwI6rdgKC > > > > > Uj > > > > > > 0GCMNjEKQAa7dfRZxvrdU&s=UWUJTFdGC2mD2x-rcuRnH1I7- > > > > > > 1jKFC40Bh5hFanzu0A&e= > > > > > > I tried tuning compiler flags used, but could not resolve the issue. > > > > > > > > > > > > Need help from Marvell to look at this. > > > > > > Hi Jerin, do you have any thoughts on this? > > > > > > > > > > Ruifeng, If you are able to reproduce this issue, Could you add "- > > > > > march=armv8.1-a+crc+crypto" In ThunderX config and check is this > > > > > Fixing the issue? > > > > > > > > > > [main] [dpdk.org] $ git diff > > > > > diff --git a/config/arm/meson.build b/config/arm/meson.build index > > > > > 00bc4610a..ef65b4bb6 100644 > > > > > --- a/config/arm/meson.build > > > > > +++ b/config/arm/meson.build > > > > > @@ -96,15 +96,18 @@ implementer_cavium = { > > > > > ], > > > > > 'part_number_config': { > > > > > '0xa1': { > > > > > - 'machine_args': ['-mcpu=thunderxt88'], > > > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > > > + '-mcpu=thunderxt88'], > > > > > 'flags': flags_part_number_thunderx > > > > > }, > > > > > '0xa2': { > > > > > - 'machine_args': ['-mcpu=thunderxt81'], > > > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > > > + '-mcpu=thunderxt81'], > > > > > 'flags': flags_part_number_thunderx > > > > > }, > > > > > '0xa3': { > > > > > - 'machine_args': ['-mcpu=thunderxt83'], > > > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > > > + '-mcpu=thunderxt83'], > > > > > 'flags': flags_part_number_thunderx > > > > > }, > > > > > '0xaf': { > > > > > > > > > > > > > Hi Jerin, > > > > > > > > The patch doesn't work. Build failed at link stage. > > > > I used gcc 8.4 and tried build on thunderxt88. > > > > > > > > > Hi Ruifeng, > > > > > > I talked to compiler experts here in Marvell. It looks like compiler issue, As a > > > workaround couple of these could try: > > > 1) Reduce the external libraries linked to the application like mlx5 etc > > > > I tried building with lots of drivers disabled. Not yet able to get a successful build. > > > > > 2) Add -mcmodel=large flag will fix "relocation truncated to fit" issue as > > > testing purpose as we are not sure about the implication of this flag. > > > > Looks like this flag is not supported by gcc 8.4 that I am using. > > > > One thing we can do to overcome the build failure is to switch to default / release build in OBS CI. > > OBS CI is running native build, so it could hit this issue when CI job is scheduled to thunderxt88 infrastructure. > > I think we should change to do release build (-Dmachine=default) which is more suitable for generic CI verification. > > As I checked, release build can pass on my thunderxt88 platform. > > > > What do you think? > > Hi, > > I've done as suggested, and it seems to fare better, thank you. > > There is still a build error on CentOS 7, not sure if it is related That ICE is a known issue from the compiler. Please use gcc 4.8 at least for arm64 work. Similar issue[1] present in some 5.2.1, 6.0 version too. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67143 > though: > > [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c: In function 'otx2_tim_arm_tmo_tick_burst_mod': > [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c:154:18: error: could not split insn > [ 555s] struct rte_event_timer **tim, \ > [ 555s] ^ > [ 555s] ../drivers/event/octeontx2/otx2_tim_evdev.h:208:1: note: in expansion of macro 'FP' > [ 555s] FP(mod, 0, 0, 0, OTX2_TIM_BKT_MOD | OTX2_TIM_ENA_DFB) \ > [ 555s] ^ > [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c:161:1: note: in expansion of macro 'TIM_ARM_TMO_FASTPATH_MODES' > [ 555s] TIM_ARM_TMO_FASTPATH_MODES > [ 555s] ^ > [ 555s] (insn 252 250 255 (parallel [ > [ 555s] (set (reg:DI 1 x1 [orig:230 D.17092 ] [230]) > [ 555s] (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.17094 ] [229]) [-1 S8 A64])) > [ 555s] (set (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.17094 ] [229]) [-1 S8 A64]) > [ 555s] (unspec_volatile:DI [ > [ 555s] (plus:DI (mem/v:DI (reg/f:DI 10 x10 [orig:229 D.17094 ] [229]) [-1 S8 A64]) > [ 555s] (const_int 1099511627776 [0x10000000000])) > [ 555s] (const_int 2 [0x2]) > [ 555s] ] UNSPECV_ATOMIC_OP)) > [ 555s] (clobber (reg:CC 66 cc)) > [ 555s] (clobber (reg:DI 4 x4)) > [ 555s] (clobber (reg:SI 3 x3)) > [ 555s] ]) ../drivers/event/octeontx2/otx2_tim_worker.h:81 1832 {atomic_fetch_adddi} > [ 555s] (expr_list:REG_UNUSED (reg:CC 66 cc) > [ 555s] (expr_list:REG_UNUSED (reg:DI 4 x4) > [ 555s] (expr_list:REG_UNUSED (reg:SI 3 x3) > [ 555s] (nil))))) > [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c:154:18: internal compiler error: in final_scan_insn, at final.c:2897 > [ 555s] struct rte_event_timer **tim, \ > [ 555s] ^ > [ 555s] ../drivers/event/octeontx2/otx2_tim_evdev.h:208:1: note: in expansion of macro 'FP' > [ 555s] FP(mod, 0, 0, 0, OTX2_TIM_BKT_MOD | OTX2_TIM_ENA_DFB) \ > [ 555s] ^ > [ 555s] ../drivers/event/octeontx2/otx2_tim_worker.c:161:1: note: in expansion of macro 'TIM_ARM_TMO_FASTPATH_MODES' > [ 555s] TIM_ARM_TMO_FASTPATH_MODES > [ 555s] ^ > [ 555s] Please submit a full bug report, > [ 555s] with preprocessed source if appropriate. > [ 555s] See <http://bugzilla.redhat.com/bugzilla> for instructions. > [ 555s] {standard input}: Assembler messages: > [ 555s] {standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive > [ 555s] Preprocessed source stored into /tmp/ccpVQUdT.out file, please attach this to your bugreport. > > -- > Kind regards, > Luca Boccassi ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH 20.11] config/arm: replace native machine args 2021-03-08 3:23 ` Ruifeng Wang 2021-03-08 12:08 ` [dpdk-dev] [dpdk-stable] " Luca Boccassi @ 2021-03-08 18:48 ` Jerin Jacob 1 sibling, 0 replies; 5+ messages in thread From: Jerin Jacob @ 2021-03-08 18:48 UTC (permalink / raw) To: Ruifeng Wang Cc: jerinj, Juraj Linkeš, Luca Boccassi, stable, dev, thomas, Ashwin Sekhar Thalakalath Kottilveetil, Andrew Pinski, david.marchand, nd On Mon, Mar 8, 2021 at 8:54 AM Ruifeng Wang <Ruifeng.Wang@arm.com> wrote: > > > -----Original Message----- > > From: Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > Sent: Sunday, March 7, 2021 9:35 PM > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Juraj Linkeš > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > stable@dpdk.org; dev@dpdk.org; thomas@monjalon.net; Ashwin Sekhar > > Thalakalath Kottilveetil <asekhar@marvell.com>; Andrew Pinski > > <apinski@marvell.com> > > Cc: david.marchand@redhat.com; nd <nd@arm.com>; nd <nd@arm.com> > > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > > > > > -----Original Message----- > > > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > > > Sent: Monday, March 1, 2021 11:10 AM > > > To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Juraj Linkeš > > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > > stable@dpdk.org > > > Cc: david.marchand@redhat.com; nd <nd@arm.com>; nd <nd@arm.com> > > > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native machine > > > args > > > > > > External Email > > > > > > ---------------------------------------------------------------------- > > > > -----Original Message----- > > > > From: Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > > > Sent: Thursday, February 25, 2021 8:15 PM > > > > To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Juraj Linkeš > > > > <juraj.linkes@pantheon.tech>; Luca Boccassi <bluca@debian.org>; > > > > stable@dpdk.org > > > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine args > > > > > > > > > -----Original Message----- > > > > > From: Ruifeng Wang <Ruifeng.Wang@arm.com> > > > > > Sent: Saturday, February 20, 2021 9:13 AM > > > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; Luca Boccassi > > > > > <bluca@debian.org>; stable@dpdk.org; Jerin Jacob Kollanukkaran > > > > > <jerinj@marvell.com> > > > > > Cc: david.marchand@redhat.com; nd <nd@arm.com> > > > > > Subject: [EXT] RE: [PATCH 20.11] config/arm: replace native > > > > > machine args > > > > > > > > > > External Email > > > > > > > > > > ------------------------------------------------------------------ > > > > > -- > > > > > -- > > > > > > -----Original Message----- > > > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > Sent: Friday, February 19, 2021 8:10 PM > > > > > > To: Luca Boccassi <bluca@debian.org>; stable@dpdk.org > > > > > > Cc: jerinj@marvell.com; Ruifeng Wang <Ruifeng.Wang@arm.com>; > > > > > > david.marchand@redhat.com > > > > > > Subject: RE: [PATCH 20.11] config/arm: replace native machine > > > > > > args > > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: Luca Boccassi <bluca@debian.org> > > > > > > > Sent: Friday, February 19, 2021 12:33 PM > > > > > > > To: Juraj Linkeš <juraj.linkes@pantheon.tech>; 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 > > > > > > > > > > > > > > On Fri, 2021-02-19 at 11:06 +0000, Juraj Linkeš wrote: > > > > > > > > > -----Original Message----- > > > > > > > > > From: luca.boccassi@gmail.com <luca.boccassi@gmail.com> > > > > > > > > > Sent: Friday, February 19, 2021 11:58 AM > > > > > > > > > To: stable@dpdk.org > > > > > > > > > Cc: Juraj Linkeš <juraj.linkes@pantheon.tech>; > > > > > > > > > jerinj@marvell.com; ruifeng.wang@arm.com; > > > > > > > > > david.marchand@redhat.com > > > > > > > > > Subject: [PATCH 20.11] config/arm: replace native machine > > > > > > > > > args > > > > > > > > > > > > > > > > > > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > > > > > > > > > > > > [ backported from upstream commit > > > > > > > > > 9186e5a07f35ae74a1f7fa2d89671b5f77eae407 ] > > > > > > > > > > > > > > > > > > There are compiler issues when building with -mcpu=native > > > > > > > > > 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 > > ‘crcr32_folding_round’: > > > > > > > > > /usr/lib/gcc/aarch64-linux-gnu/8/include/arm_neon.h:26094:1: > > > > error: > > > > > > > > > inlining failed in call to always_inline ‘vmull_p64’: > > > > > > > > > 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 = vreinterpretq_u64_p128(vmull_p64( > > > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > > > > > > > > > > > > > > > and clang: > > > > > > > > > gcc -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > > > __ARM_FEATURE_ATOMICS > > > > > > > > > clang-9 -E -dM -mcpu="native" - < /dev/null | grep > > > > > > > > > __ARM_FEATURE_ATOMICS <no output> # no clang support > > > > > > > > > > > > > > > > > > Fix this by always specifying the proper machine args and > > > > > > > > > never using the native flags. > > > > > > > > > > > > > > > > > > Fixes: 78ac8eac7e8a ("config/arm: use native machine build > > > > > > > > > arguments") > > > > > > > > > > > > > > > > > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> > > > > > > > > > Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com> > > > > > > > > > --- > > > > > > > > > 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! > > > > > > > > > > > > > > > > What does this fix? With or without the below change, the > > > > > > > > native machine > > > > > > > args are not used. The patch shoudn't actually change the > > > > > > > configuration of the build at all, so I'm a bit confused. > > > > > > > > > > > > > > It fixes the build on some build workers with thunderx > > > > > > > hardware > > > > > > > - without this I get failures like: > > > > > > > > > > > > > > arm_neon.h:26647:1: error: inlining failed in call to 'always_inline' > > > > > > > 'vmull_p64': target specific option mismatch > > > > > > > > > > > > > > > > > > > I tried the patch and I'm seeing the same errors on a ThunderX > > > > > > server (with and without the patch). Is this actually the right patch? > > > > > > > > > > > > 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: > > > > > > inlining failed in call to always_inline 'vmull_p64': 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 = vreinterpretq_u64_p128(vmull_p64( > > > > > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(fold), 0), > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > vgetq_lane_p64(vreinterpretq_p64_u64(precomp), 1))); > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > > > > > > > Ruifeng, any ideas on how to fix this? > > > > > > > > > > Gcc build on ThunderX platform is broken. Issue can be seen in > > > > > some > > > > > CentOS-8 OBS builds. > > > > > https://urldefense.proofpoint.com/v2/url?u=https- > > > > > 3A__mails.dpdk.org_archives_dev_2020- > > > > > > > > > > > 2DNovember_192909.html&d=DwIGaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=1 > > > > DG > > > > > > > > > > > ob4H4rxz6H8uITozGOCa0s5f4wCNtTa4UUKvcsvI&m=mgzJ6z43dsDFwI6rdgKC > > > > Uj > > > > > 0GCMNjEKQAa7dfRZxvrdU&s=UWUJTFdGC2mD2x-rcuRnH1I7- > > > > > 1jKFC40Bh5hFanzu0A&e= > > > > > I tried tuning compiler flags used, but could not resolve the issue. > > > > > > > > > > Need help from Marvell to look at this. > > > > > Hi Jerin, do you have any thoughts on this? > > > > > > > > > > > > Ruifeng, If you are able to reproduce this issue, Could you add "- > > > > march=armv8.1-a+crc+crypto" In ThunderX config and check is this > > > > Fixing the issue? > > > > > > > > [main] [dpdk.org] $ git diff > > > > diff --git a/config/arm/meson.build b/config/arm/meson.build index > > > > 00bc4610a..ef65b4bb6 100644 > > > > --- a/config/arm/meson.build > > > > +++ b/config/arm/meson.build > > > > @@ -96,15 +96,18 @@ implementer_cavium = { > > > > ], > > > > 'part_number_config': { > > > > '0xa1': { > > > > - 'machine_args': ['-mcpu=thunderxt88'], > > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > > + '-mcpu=thunderxt88'], > > > > 'flags': flags_part_number_thunderx > > > > }, > > > > '0xa2': { > > > > - 'machine_args': ['-mcpu=thunderxt81'], > > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > > + '-mcpu=thunderxt81'], > > > > 'flags': flags_part_number_thunderx > > > > }, > > > > '0xa3': { > > > > - 'machine_args': ['-mcpu=thunderxt83'], > > > > + 'machine_args': ['-march=armv8.1-a+crc+crypto+lse', > > > > + '-mcpu=thunderxt83'], > > > > 'flags': flags_part_number_thunderx > > > > }, > > > > '0xaf': { > > > > > > > > > > Hi Jerin, > > > > > > The patch doesn't work. Build failed at link stage. > > > I used gcc 8.4 and tried build on thunderxt88. > > > > > > > > Hi Ruifeng, > > > > I talked to compiler experts here in Marvell. It looks like compiler issue, As a > > workaround couple of these could try: > > 1) Reduce the external libraries linked to the application like mlx5 etc > > I tried building with lots of drivers disabled. Not yet able to get a successful build. > > > 2) Add -mcmodel=large flag will fix "relocation truncated to fit" issue as > > testing purpose as we are not sure about the implication of this flag. > > Looks like this flag is not supported by gcc 8.4 that I am using. > > One thing we can do to overcome the build failure is to switch to default / release build in OBS CI. > OBS CI is running native build, so it could hit this issue when CI job is scheduled to thunderxt88 infrastructure. > I think we should change to do release build (-Dmachine=default) which is more suitable for generic CI verification. > As I checked, release build can pass on my thunderxt88 platform. > > What do you think? Sounds good to me. > > > > > > > > > > Logs as below: > > > [2513/2527] Linking target app/test/dpdk-test > > > FAILED: app/test/dpdk-test > > > cc -o app/test/dpdk-test app/test/dpdk-test.p/commands.c.o > > > app/test/dpdk- test.p/packet_burst_generator.c.o > > > app/test/dpdk-test.p/test.c.o app/test/dpdk- test.p/test_acl.c.o > > > app/test/dpdk-test.p/test_alarm.c.o app/test/dpdk- > > > test.p/test_atomic.c.o app/test/dpdk-test.p/test_barrier.c.o > > > app/test/dpdk- test.p/test_bitops.c.o > > > app/test/dpdk-test.p/test_bitmap.c.o app/test/dpdk- > > > test.p/test_bpf.c.o app/test/dpdk-test.p/test_byteorder.c.o > > > app/test/dpdk- test.p/test_cmdline.c.o > > > app/test/dpdk-test.p/test_cmdline_cirbuf.c.o > > > app/test/dpdk-test.p/test_cmdline_etheraddr.c.o app/test/dpdk- > > > test.p/test_cmdline_ipaddr.c.o > > > app/test/dpdk-test.p/test_cmdline_lib.c.o > > > app/test/dpdk-test.p/test_cmdline_num.c.o app/test/dpdk- > > > test.p/test_cmdline_portlist.c.o > > > app/test/dpdk-test.p/test_cmdline_string.c.o > > > app/test/dpdk-test.p/test_common.c.o > > > app/test/dpdk-test.p/test_cpuflags.c.o > > > app/test/dpdk-test.p/test_crc.c.o > > > app/test/dpdk-test.p/test_cryptodev.c.o > > > app/test/dpdk-test.p/test_cryptodev_asym.c.o app/test/dpdk- > > > test.p/test_cryptodev_blockcipher.c.o app/test/dpdk- > > > test.p/test_cryptodev_security_pdcp.c.o > > > app/test/dpdk-test.p/test_cycles.c.o > > > app/test/dpdk-test.p/test_debug.c.o > > > app/test/dpdk-test.p/test_distributor.c.o > > > app/test/dpdk-test.p/test_distributor_perf.c.o app/test/dpdk- > > > test.p/test_eal_flags.c.o app/test/dpdk-test.p/test_eal_fs.c.o > > > app/test/dpdk- test.p/test_efd.c.o > > > app/test/dpdk-test.p/test_efd_perf.c.o app/test/dpdk- > > > test.p/test_errno.c.o app/test/dpdk-test.p/test_ethdev_link.c.o > > > app/test/dpdk- test.p/test_event_crypto_adapter.c.o app/test/dpdk- > > > test.p/test_event_eth_rx_adapter.c.o > > > app/test/dpdk-test.p/test_event_ring.c.o > > > app/test/dpdk-test.p/test_event_timer_adapter.c.o app/test/dpdk- > > > test.p/test_eventdev.c.o app/test/dpdk-test.p/test_external_mem.c.o > > > app/test/dpdk-test.p/test_fbarray.c.o > > > app/test/dpdk-test.p/test_fib.c.o > > > app/test/dpdk-test.p/test_fib_perf.c.o > > > app/test/dpdk-test.p/test_fib6.c.o > > > app/test/dpdk-test.p/test_fib6_perf.c.o app/test/dpdk- > > > test.p/test_func_reentrancy.c.o > > > app/test/dpdk-test.p/test_flow_classify.c.o > > > app/test/dpdk-test.p/test_graph.c.o > > > app/test/dpdk-test.p/test_graph_perf.c.o > > > app/test/dpdk-test.p/test_hash.c.o app/test/dpdk- > > > test.p/test_hash_functions.c.o > > > app/test/dpdk-test.p/test_hash_multiwriter.c.o > > > app/test/dpdk-test.p/test_hash_readwrite.c.o app/test/dpdk- > > > test.p/test_hash_perf.c.o > > > app/test/dpdk-test.p/test_hash_readwrite_lf_perf.c.o > > > app/test/dpdk-test.p/test_interrupts.c.o > > > app/test/dpdk-test.p/test_ipfrag.c.o > > > app/test/dpdk-test.p/test_ipsec.c.o > > > app/test/dpdk-test.p/test_ipsec_sad.c.o > > > app/test/dpdk-test.p/test_ipsec_perf.c.o > > > app/test/dpdk-test.p/test_kni.c.o app/test/dpdk-test.p/test_kvargs.c.o > > > app/test/dpdk-test.p/test_lcores.c.o > > > app/test/dpdk-test.p/test_logs.c.o app/test/dpdk-test.p/test_lpm.c.o > > > app/test/dpdk-test.p/test_lpm6.c.o > > > app/test/dpdk-test.p/test_lpm6_perf.c.o > > > app/test/dpdk-test.p/test_lpm_perf.c.o > > > app/test/dpdk-test.p/test_malloc.c.o > > > app/test/dpdk-test.p/test_mbuf.c.o > > > app/test/dpdk-test.p/test_member.c.o > > > app/test/dpdk-test.p/test_member_perf.c.o app/test/dpdk- > > > test.p/test_memcpy.c.o app/test/dpdk-test.p/test_memcpy_perf.c.o > > > app/test/dpdk-test.p/test_memory.c.o > > > app/test/dpdk-test.p/test_mempool.c.o > > > app/test/dpdk-test.p/test_mempool_perf.c.o app/test/dpdk- > > > test.p/test_memzone.c.o app/test/dpdk-test.p/test_meter.c.o > > > app/test/dpdk- test.p/test_metrics.c.o > > > app/test/dpdk-test.p/test_mcslock.c.o app/test/dpdk- > > > test.p/test_mp_secondary.c.o app/test/dpdk-test.p/test_per_lcore.c.o > > > app/test/dpdk-test.p/test_pmd_perf.c.o > > > app/test/dpdk-test.p/test_power.c.o > > > app/test/dpdk-test.p/test_power_cpufreq.c.o app/test/dpdk- > > > test.p/test_power_kvm_vm.c.o app/test/dpdk-test.p/test_prefetch.c.o > > > app/test/dpdk-test.p/test_rand_perf.c.o > > > app/test/dpdk-test.p/test_rawdev.c.o > > > app/test/dpdk-test.p/test_rcu_qsbr.c.o app/test/dpdk- > > > test.p/test_rcu_qsbr_perf.c.o > > > app/test/dpdk-test.p/test_reciprocal_division.c.o > > > app/test/dpdk-test.p/test_reciprocal_division_perf.c.o app/test/dpdk- > > > test.p/test_red.c.o app/test/dpdk-test.p/test_reorder.c.o > > > app/test/dpdk- test.p/test_rib.c.o app/test/dpdk-test.p/test_rib6.c.o > > > app/test/dpdk- test.p/test_ring.c.o > > > app/test/dpdk-test.p/test_ring_mpmc_stress.c.o > > > app/test/dpdk-test.p/test_ring_hts_stress.c.o app/test/dpdk- > > > test.p/test_ring_mt_peek_stress.c.o app/test/dpdk- > > > test.p/test_ring_mt_peek_stress_zc.c.o > > > app/test/dpdk-test.p/test_ring_perf.c.o > > > app/test/dpdk-test.p/test_ring_rts_stress.c.o app/test/dpdk- > > > test.p/test_ring_st_peek_stress.c.o app/test/dpdk- > > > test.p/test_ring_st_peek_stress_zc.c.o > > > app/test/dpdk-test.p/test_ring_stress.c.o > > > app/test/dpdk-test.p/test_rwlock.c.o > > > app/test/dpdk-test.p/test_sched.c.o > > > app/test/dpdk-test.p/test_security.c.o app/test/dpdk- > > > test.p/test_service_cores.c.o app/test/dpdk-test.p/test_spinlock.c.o > > > app/test/dpdk-test.p/test_stack.c.o > > > app/test/dpdk-test.p/test_stack_perf.c.o > > > app/test/dpdk-test.p/test_string_fns.c.o > > > app/test/dpdk-test.p/test_table.c.o > > > app/test/dpdk-test.p/test_table_acl.c.o app/test/dpdk- > > > test.p/test_table_combined.c.o > > > app/test/dpdk-test.p/test_table_pipeline.c.o > > > app/test/dpdk-test.p/test_table_ports.c.o app/test/dpdk- > > > test.p/test_table_tables.c.o app/test/dpdk-test.p/test_tailq.c.o > > > app/test/dpdk- test.p/test_thash.c.o > > > app/test/dpdk-test.p/test_timer.c.o app/test/dpdk- > > > test.p/test_timer_perf.c.o > > > app/test/dpdk-test.p/test_timer_racecond.c.o > > > app/test/dpdk-test.p/test_timer_secondary.c.o app/test/dpdk- > > > test.p/test_ticketlock.c.o app/test/dpdk-test.p/test_trace.c.o > > > app/test/dpdk- test.p/test_trace_register.c.o > > > app/test/dpdk-test.p/test_trace_perf.c.o > > > app/test/dpdk-test.p/test_version.c.o > > > app/test/dpdk-test.p/virtual_pmd.c.o > > > app/test/dpdk-test.p/test_telemetry_json.c.o app/test/dpdk- > > > test.p/test_telemetry_data.c.o > > > app/test/dpdk-test.p/test_link_bonding.c.o > > > app/test/dpdk-test.p/test_link_bonding_rssconf.c.o app/test/dpdk- > > > test.p/test_link_bonding_mode4.c.o app/test/dpdk- > > > test.p/test_pmd_ring_perf.c.o app/test/dpdk-test.p/test_pmd_ring.c.o > > > app/test/dpdk-test.p/test_event_eth_tx_adapter.c.o app/test/dpdk- > > > test.p/test_bitratestats.c.o > > > app/test/dpdk-test.p/test_latencystats.c.o > > > app/test/dpdk-test.p/sample_packet_forward.c.o app/test/dpdk- > > > test.p/test_pdump.c.o app/test/dpdk-test.p/test_compressdev.c.o > > > -Wl,--as- needed -Wl,--no-undefined -Wl,-O1 -Wl,--whole-archive > > > -Wl,--start-group lib/librte_node.a lib/librte_graph.a > > > lib/librte_bpf.a lib/librte_flow_classify.a lib/librte_pipeline.a > > > lib/librte_table.a lib/librte_port.a lib/librte_fib.a > > > lib/librte_ipsec.a lib/librte_vhost.a lib/librte_stack.a > > > lib/librte_security.a lib/librte_sched.a lib/librte_reorder.a > > > lib/librte_rib.a lib/librte_regexdev.a lib/librte_rawdev.a > > > lib/librte_pdump.a lib/librte_power.a lib/librte_member.a > > > lib/librte_lpm.a lib/librte_latencystats.a lib/librte_kni.a > > > lib/librte_jobstats.a lib/librte_ip_frag.a lib/librte_gso.a > > > lib/librte_gro.a lib/librte_eventdev.a lib/librte_efd.a > > > lib/librte_distributor.a lib/librte_cryptodev.a > > > lib/librte_compressdev.a lib/librte_cfgfile.a > > > lib/librte_bitratestats.a lib/librte_bbdev.a lib/librte_acl.a > > > lib/librte_timer.a lib/librte_hash.a lib/librte_metrics.a > > > lib/librte_cmdline.a lib/librte_pci.a lib/librte_ethdev.a > > > lib/librte_meter.a lib/librte_net.a lib/librte_mbuf.a > > > lib/librte_mempool.a lib/librte_rcu.a lib/librte_ring.a > > > lib/librte_eal.a lib/librte_telemetry.a lib/librte_kvargs.a > > > drivers/librte_common_cpt.a drivers/librte_common_dpaax.a > > > drivers/librte_common_iavf.a drivers/librte_common_octeontx.a > > > drivers/librte_common_octeontx2.a drivers/librte_common_sfc_efx.a > > > drivers/librte_bus_dpaa.a drivers/librte_bus_fslmc.a > > > drivers/librte_bus_ifpga.a drivers/librte_bus_pci.a > > > drivers/librte_bus_vdev.a drivers/librte_bus_vmbus.a > > > drivers/librte_common_mlx5.a drivers/librte_common_qat.a > > > drivers/librte_mempool_bucket.a drivers/librte_mempool_dpaa.a > > > drivers/librte_mempool_dpaa2.a drivers/librte_mempool_octeontx.a > > > drivers/librte_mempool_octeontx2.a drivers/librte_mempool_ring.a > > > drivers/librte_mempool_stack.a drivers/librte_net_af_packet.a > > > drivers/librte_net_ark.a drivers/librte_net_atlantic.a > > > drivers/librte_net_avp.a drivers/librte_net_axgbe.a > > > drivers/librte_net_bond.a drivers/librte_net_bnx2x.a > > > drivers/librte_net_bnxt.a drivers/librte_net_cxgbe.a > > > drivers/librte_net_dpaa.a drivers/librte_net_dpaa2.a > > > drivers/librte_net_e1000.a drivers/librte_net_ena.a > > > drivers/librte_net_enetc.a drivers/librte_net_enic.a > > > drivers/librte_net_failsafe.a drivers/librte_net_fm10k.a > > > drivers/librte_net_i40e.a drivers/librte_net_hinic.a > > > drivers/librte_net_hns3.a drivers/librte_net_iavf.a > > > drivers/librte_net_ice.a drivers/librte_net_igc.a > > > drivers/librte_net_ionic.a drivers/librte_net_ixgbe.a > > > drivers/librte_net_kni.a drivers/librte_net_liquidio.a > > > drivers/librte_net_memif.a drivers/librte_net_mlx4.a > > > drivers/librte_net_mlx5.a drivers/librte_net_netvsc.a > > > drivers/librte_net_nfp.a drivers/librte_net_null.a > > > drivers/librte_net_octeontx.a drivers/librte_net_octeontx2.a > > > drivers/librte_net_octeontx_ep.a drivers/librte_net_pfe.a > > > drivers/librte_net_qede.a drivers/librte_net_ring.a > > > drivers/librte_net_sfc.a drivers/librte_net_softnic.a > > > drivers/librte_net_tap.a drivers/librte_net_thunderx.a > > > drivers/librte_net_txgbe.a drivers/librte_net_vdev_netvsc.a > > > drivers/librte_net_vhost.a drivers/librte_net_virtio.a > > > drivers/librte_net_vmxnet3.a drivers/librte_raw_dpaa2_cmdif.a > > > drivers/librte_raw_dpaa2_qdma.a drivers/librte_raw_ntb.a > > > drivers/librte_raw_octeontx2_dma.a > > > drivers/librte_raw_octeontx2_ep.a drivers/librte_raw_skeleton.a > > > drivers/librte_crypto_bcmfs.a drivers/librte_crypto_caam_jr.a > > > drivers/librte_crypto_ccp.a drivers/librte_crypto_dpaa_sec.a > > > drivers/librte_crypto_dpaa2_sec.a drivers/librte_crypto_nitrox.a > > > drivers/librte_crypto_null.a drivers/librte_crypto_octeontx.a > > > drivers/librte_crypto_octeontx2.a drivers/librte_crypto_openssl.a > > > drivers/librte_crypto_scheduler.a drivers/librte_crypto_virtio.a > > > drivers/librte_compress_mlx5.a drivers/librte_compress_octeontx.a > > > drivers/librte_compress_zlib.a drivers/librte_regex_mlx5.a > > > drivers/librte_regex_octeontx2.a drivers/librte_vdpa_ifc.a > > > drivers/librte_vdpa_mlx5.a drivers/librte_event_dpaa.a > > > drivers/librte_event_dpaa2.a drivers/librte_event_octeontx2.a > > > drivers/librte_event_opdl.a drivers/librte_event_skeleton.a > > > drivers/librte_event_sw.a drivers/librte_event_dsw.a > > > drivers/librte_event_octeontx.a drivers/librte_baseband_null.a > > > drivers/librte_baseband_turbo_sw.a > > > drivers/librte_baseband_fpga_lte_fec.a > > > drivers/librte_baseband_fpga_5gnr_fec.a > > > drivers/librte_baseband_acc100.a - Wl,--no-whole-archive > > > -Wl,--no-as-needed -pthread -lm -ldl -lnuma > > > /usr/lib/aarch64-linux-gnu/libz.so -lmlx5 -libverbs > > > /usr/lib/aarch64-linux- gnu/libcrypto.so -lmlx4 -libverbs -lmlx5 > > > -libverbs -lmlx5 -libverbs -lmlx5 - libverbs -lmlx5 -libverbs > > > -Wl,--end-group -Wl,- > > > rpath,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX > > > app/test/dpdk-test.p/test_hash_perf.c.o: In function `test_hash_perf': > > > test_hash_perf.c:(.text+0x1c74): relocation truncated to fit: > > > R_AARCH64_ADR_PREL_PG_HI21 against `.bss' > > > test_hash_perf.c:(.text+0x1d8c): relocation truncated to fit: > > > R_AARCH64_ADR_PREL_PG_HI21 against `.bss' > > > test_hash_perf.c:(.text+0x2508): relocation truncated to fit: > > > R_AARCH64_ADR_PREL_PG_HI21 against `.bss' > > > collect2: error: ld returned 1 exit status [2527/2527] Linking target > > > app/dpdk- test-bbdev > > > ninja: build stopped: subcommand failed. > > > > > > > > > > > > > > > > -- > > > > > > > Kind regards, > > > > > > > Luca Boccassi > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-03-08 18:51 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20210219105740.1567636-1-luca.boccassi@gmail.com> [not found] ` <953ce5333ed145a58f26e9eaea240c50@pantheon.tech> [not found] ` <1565f89657b62b8c8baa2a2c9524a0592f99fa3b.camel@debian.org> [not found] ` <dd05b93e88724a948056de4533388239@pantheon.tech> [not found] ` <VI1PR0802MB2351266D8800FB6D9DD793669E839@VI1PR0802MB2351.eurprd08.prod.outlook.com> [not found] ` <BYAPR18MB2424C498BFE1BC89AC887A98C89E9@BYAPR18MB2424.namprd18.prod.outlook.com> [not found] ` <AM5PR0802MB2465B9E1ADC6959EBD24B09E9E9A9@AM5PR0802MB2465.eurprd08.prod.outlook.com> 2021-03-07 13:35 ` [dpdk-dev] [PATCH 20.11] config/arm: replace native machine args Jerin Jacob Kollanukkaran 2021-03-08 3:23 ` Ruifeng Wang 2021-03-08 12:08 ` [dpdk-dev] [dpdk-stable] " Luca Boccassi 2021-03-08 18:51 ` Jerin Jacob 2021-03-08 18:48 ` [dpdk-dev] " Jerin Jacob
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).