All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: fengchengwen <fengchengwen@huawei.com>, thomas@monjalon.net
Cc: dev@dpdk.org, jerinj@marvell.com, ruifeng.wang@arm.com,
	viktorin@rehivetech.com, bruce.richardson@intel.com,
	Honnappa.Nagarahalli@arm.com, jerinjacobk@gmail.com,
	juraj.linkes@pantheon.tech, nd@arm.com
Subject: Re: [dpdk-dev] [PATCH v6 2/2] net/hns3: refactor SVE code compile method
Date: Thu, 20 May 2021 08:57:06 +0100	[thread overview]
Message-ID: <4fff6150-81d5-cd90-fe9a-4dfd4dff7176@intel.com> (raw)
In-Reply-To: <8eed2ffc-0d8f-fb2e-7b0a-83e7a8727999@huawei.com>

On 5/20/2021 2:11 AM, fengchengwen wrote:
> 
> 
> On 2021/5/19 23:02, Ferruh Yigit wrote:
>> On 5/19/2021 2:25 PM, Chengwen Feng wrote:
>>> Currently, the SVE code is compiled only when -march supports SVE
>>> (e.g. '-march=armv8.2a+sve'), there maybe some problem[1] with this
>>> approach.
>>>
>>> The solution:
>>> a. If the minimum instruction set support SVE then compiles it.
>>> b. Else if the compiler support SVE then compiles it.
>>> c. Otherwise don't compile it.
>>>
>>> [1] https://mails.dpdk.org/archives/dev/2021-April/208189.html
>>>
>>> Fixes: 8c25b02b082a ("net/hns3: fix enabling SVE Rx/Tx")
>>> Fixes: 952ebacce4f2 ("net/hns3: support SVE Rx")
>>> Cc: stable@dpdk.org
>>>
>>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>>
>> The patch passes the CI build [1], but in that test sve file is not compiled at
>> all because of missing header file [2].
>>
> 
> Yes, it was designed as it.
> In hns3 meson.build we call cc.check_header('arm_sve.h'), and gcc9 don't have this headerfile.
> 
>> I wonder if the warning caused by conflicting switch [3] is still valid, we need
>> a platform that sve file is compiled to verify this. Do you have this
>> environment, that sets '-mcpu=armv8.1-a'.
>>
> 
> It already fix by filterout '-march' '-mcpu' '-mtune' in hns3 meson.build of this patch
> If don't add the above filtout logic:
>   a) Test result with gcc8.3 and crossfile thunder2:
>     cc1: warning: switch ‘-mcpu=thunderx2t99’ conflicts with ‘-march=armv8.2-a+sve’ switch
>   b) Test result with gcc9.2 and crossfile thunder2:
>     cc1: warning: switch ‘-mcpu=armv8.1-a’ conflicts with ‘-march=armv8.2-a’ switch
> 
> Note: the gcc8.3/9.2 version detail:
>   ./aarch64-linux-gnu-gcc --version
>   aarch64-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0
>   ./aarch64-none-linux-gnu-gcc --version
>   aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025
> 

Hi Chengwen,

-rc4 is already out and release is planned for tomorrow, so it is late to get
this patch now, let's proceed with it in next release.

>>
>> Btw, CI reports unit test failure, I don't think it is related with this patch
>> but can you please double check?
>>
> 
> Agree, it is atomic_autotest and malloc_autotest failed, it hasn't run any hns3 driver's code.
> 
>>
>>
>> [1]
>> https://lab.dpdk.org/results/dashboard/patchsets/17135/
>>
>> [2]
>> Check usable header "arm_sve.h" : NO
>>
>> [3]
>> error: switch ‘-mcpu=armv8.1-a’ conflicts with ‘-march=armv8.2-a’ switch [-Werror]
>>
>>> ---
>>>  drivers/net/hns3/hns3_rxtx.c |  2 +-
>>>  drivers/net/hns3/meson.build | 21 ++++++++++++++++++++-
>>>  2 files changed, 21 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
>>> index 1d7a769..4ef20c6 100644
>>> --- a/drivers/net/hns3/hns3_rxtx.c
>>> +++ b/drivers/net/hns3/hns3_rxtx.c
>>> @@ -2808,7 +2808,7 @@ hns3_get_default_vec_support(void)
>>>  static bool
>>>  hns3_get_sve_support(void)
>>>  {
>>> -#if defined(RTE_ARCH_ARM64) && defined(__ARM_FEATURE_SVE)
>>> +#if defined(CC_SVE_SUPPORT)
>>>  	if (rte_vect_get_max_simd_bitwidth() < RTE_VECT_SIMD_256)
>>>  		return false;
>>>  	if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_SVE))
>>> diff --git a/drivers/net/hns3/meson.build b/drivers/net/hns3/meson.build
>>> index 53c7df7..5f9af9b 100644
>>> --- a/drivers/net/hns3/meson.build
>>> +++ b/drivers/net/hns3/meson.build
>>> @@ -35,7 +35,26 @@ deps += ['hash']
>>>  
>>>  if arch_subdir == 'arm' and dpdk_conf.get('RTE_ARCH_64')
>>>      sources += files('hns3_rxtx_vec.c')
>>> -    if cc.get_define('__ARM_FEATURE_SVE', args: machine_args) != ''
>>> +
>>> +    # compile SVE when:
>>> +    # a. support SVE in minimum instruction set baseline
>>> +    # b. it's not minimum instruction set, but compiler support
>>> +    if cc.get_define('__ARM_FEATURE_SVE', args: machine_args) != '' and cc.check_header('arm_sve.h')
>>> +        cflags += ['-DCC_SVE_SUPPORT']
>>>          sources += files('hns3_rxtx_vec_sve.c')
>>> +    elif cc.has_argument('-march=armv8.2-a+sve') and cc.check_header('arm_sve.h')
>>> +        sve_cflags = ['-DCC_SVE_SUPPORT']
>>> +        foreach flag: cflags
>>> +            # filterout -march -mcpu -mtune
>>> +            if not (flag.startswith('-march=') or flag.startswith('-mcpu=') or flag.startswith('-mtune='))
>>> +                sve_cflags += flag
>>> +            endif
>>> +        endforeach
>>> +        hns3_sve_lib = static_library('hns3_sve_lib',
>>> +                        'hns3_rxtx_vec_sve.c',
>>> +                        dependencies: [static_rte_ethdev],
>>> +                        include_directories: includes,
>>> +                        c_args: [sve_cflags, '-march=armv8.2-a+sve'])
>>> +        objs += hns3_sve_lib.extract_objects('hns3_rxtx_vec_sve.c')
>>>      endif
>>>  endif
>>>
>>
>>
>> .
>>
> 


  reply	other threads:[~2021-05-20  7:57 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-12  8:28 [dpdk-dev] [PATCH 0/2] bugfix for Kunpeng930 SVE compile Chengwen Feng
2021-05-12  8:28 ` [dpdk-dev] [PATCH 1/2] config/arm: add non-SVE march for soc kunpeng930 Chengwen Feng
2021-05-12  8:44   ` Jerin Jacob
2021-05-12 23:00     ` Honnappa Nagarahalli
2021-05-13  4:49       ` fengchengwen
2021-05-12  8:28 ` [dpdk-dev] [PATCH 2/2] net/hns3: refactor SVE code compile method Chengwen Feng
2021-05-12 23:12   ` Honnappa Nagarahalli
2021-05-12 23:21     ` Honnappa Nagarahalli
2021-05-13  0:51       ` fengchengwen
2021-05-13 20:42         ` Honnappa Nagarahalli
2021-05-13 10:04     ` Bruce Richardson
2021-05-13  4:41 ` [dpdk-dev] [PATCH v2 0/2] bugfix for Kunpeng SVE compile Chengwen Feng
2021-05-13  4:41   ` [dpdk-dev] [PATCH v2 1/2] config/arm: select best -march parameter for kunpeng soc Chengwen Feng
2021-05-13  4:41   ` [dpdk-dev] [PATCH v2 2/2] net/hns3: refactor SVE code compile method Chengwen Feng
2021-05-13  6:16 ` [dpdk-dev] [PATCH v3 0/2] bugfix for Kunpeng SVE compile Chengwen Feng
2021-05-13  6:16   ` [dpdk-dev] [PATCH v3 1/2] config/arm: select most suitable -march for kunpeng soc Chengwen Feng
2021-05-13  6:16   ` [dpdk-dev] [PATCH v3 2/2] net/hns3: refactor SVE code compile method Chengwen Feng
2021-05-13 13:08 ` [dpdk-dev] [PATCH v4 0/2] bugfix for Kunpeng SVE compile Chengwen Feng
2021-05-13 13:08   ` [dpdk-dev] [PATCH v4 1/2] config/arm: select most suitable -march for kunpeng soc Chengwen Feng
2021-05-13 15:24     ` Jerin Jacob
2021-05-13 23:12       ` Honnappa Nagarahalli
2021-05-14 10:23         ` fengchengwen
2021-05-18 13:25           ` Honnappa Nagarahalli
2021-05-18 13:45             ` Jerin Jacob
2021-05-13 13:08   ` [dpdk-dev] [PATCH v4 2/2] net/hns3: refactor SVE code compile method Chengwen Feng
2021-05-13 22:19     ` Honnappa Nagarahalli
2021-05-14  2:53       ` fengchengwen
2021-05-14  9:53 ` [dpdk-dev] [PATCH v5 0/2] bugfix for Kunpeng SVE compile Chengwen Feng
2021-05-14  9:53   ` [dpdk-dev] [PATCH v5 1/2] config/arm: select most suitable -march for kunpeng soc Chengwen Feng
2021-05-14  9:53   ` [dpdk-dev] [PATCH v5 2/2] net/hns3: refactor SVE code compile method Chengwen Feng
2021-05-14 14:12     ` Honnappa Nagarahalli
2021-05-18 12:41       ` fengchengwen
2021-05-18 13:11         ` Honnappa Nagarahalli
2021-05-18 13:12           ` Honnappa Nagarahalli
2021-05-18 13:24         ` Ferruh Yigit
2021-05-18 16:27       ` Ferruh Yigit
2021-05-19  0:23         ` fengchengwen
2021-05-19  8:08         ` David Marchand
2021-05-19  9:27           ` Ferruh Yigit
2021-05-19 12:16             ` fengchengwen
2021-05-19 12:37               ` David Marchand
2021-05-19 13:35                 ` fengchengwen
2021-05-18 14:40     ` Ferruh Yigit
2021-05-18 15:15       ` Bruce Richardson
2021-05-18 16:12         ` Ferruh Yigit
2021-05-18 15:48       ` Honnappa Nagarahalli
2021-05-18 16:00         ` Ferruh Yigit
2021-05-18 16:12           ` Honnappa Nagarahalli
2021-05-18 16:37             ` Ferruh Yigit
2021-05-19  0:18               ` fengchengwen
2021-05-19 13:25 ` [dpdk-dev] [PATCH v6 0/2] bugfix for Kunpeng SVE compile Chengwen Feng
2021-05-19 13:25   ` [dpdk-dev] [PATCH v6 1/2] config/arm: select most suitable -march for kunpeng soc Chengwen Feng
2021-05-19 14:05     ` Jerin Jacob
2021-05-20 22:38       ` Honnappa Nagarahalli
2021-05-19 13:25   ` [dpdk-dev] [PATCH v6 2/2] net/hns3: refactor SVE code compile method Chengwen Feng
2021-05-19 15:02     ` Ferruh Yigit
2021-05-20  1:11       ` fengchengwen
2021-05-20  7:57         ` Ferruh Yigit [this message]
2021-05-20  8:24     ` Ruifeng Wang
2021-05-20 10:55       ` fengchengwen
2021-05-21  5:21         ` Ruifeng Wang
2021-05-21  6:53           ` fengchengwen
2021-05-24  5:38             ` Ruifeng Wang
2021-05-24  8:43               ` fengchengwen
2021-05-24 10:03                 ` Ruifeng Wang
2021-05-24 13:15                   ` fengchengwen
2021-05-24 13:12 ` [dpdk-dev] [PATCH v7 0/2] bugfix for Kunpeng SVE compile Chengwen Feng
2021-05-24 13:12   ` [dpdk-dev] [PATCH v7 1/2] config/arm: select most suitable -march for kunpeng soc Chengwen Feng
2021-05-24 13:12   ` [dpdk-dev] [PATCH v7 2/2] net/hns3: refactor SVE code compile method Chengwen Feng
2021-05-24 13:23 ` [dpdk-dev] [PATCH v8 0/2] bugfix for Kunpeng SVE compile Chengwen Feng
2021-05-24 13:23   ` [dpdk-dev] [PATCH v8 1/2] config/arm: select most suitable -march for kunpeng soc Chengwen Feng
2021-06-17  7:03     ` Thomas Monjalon
2021-06-17 23:33       ` Honnappa Nagarahalli
2021-06-21  0:52         ` fengchengwen
2021-06-23  8:08           ` Thomas Monjalon
2021-06-23  8:24             ` fengchengwen
2021-05-24 13:23   ` [dpdk-dev] [PATCH v8 2/2] net/hns3: refactor SVE code compile method Chengwen Feng
2021-05-25  6:04     ` Ruifeng Wang
2021-05-27  7:07       ` Fengchengwen
2021-06-12  7:09       ` fengchengwen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4fff6150-81d5-cd90-fe9a-4dfd4dff7176@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=Honnappa.Nagarahalli@arm.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=fengchengwen@huawei.com \
    --cc=jerinj@marvell.com \
    --cc=jerinjacobk@gmail.com \
    --cc=juraj.linkes@pantheon.tech \
    --cc=nd@arm.com \
    --cc=ruifeng.wang@arm.com \
    --cc=thomas@monjalon.net \
    --cc=viktorin@rehivetech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.