All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yongseok Koh <yskoh@mellanox.com>
To: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
Cc: Thomas Monjalon <thomas@monjalon.net>, dev <dev@dpdk.org>,
	Jerin Jacob Kollanukkaran <jerinj@marvell.com>,
	"jerinjacobk@gmail.com" <jerinjacobk@gmail.com>
Subject: Re: [dpdk-dev] [PATCH v8 2/4] meson: add infra to support machine specific flags
Date: Thu, 11 Apr 2019 20:12:09 +0000	[thread overview]
Message-ID: <C4F41778-F0F3-49A5-8472-E307FF57BFFB@mellanox.com> (raw)
In-Reply-To: <CY4PR1801MB186361CD95AF5D519FBF93F5DE2F0@CY4PR1801MB1863.namprd18.prod.outlook.com>


> On Apr 10, 2019, at 11:07 PM, Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com> wrote:
> 
> Hi Yongseok,
> 
>> -----Original Message-----
>> From: Yongseok Koh <yskoh@mellanox.com>
>> Sent: Wednesday, April 10, 2019 11:08 PM
>> To: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
>> Cc: Thomas Monjalon <thomas@monjalon.net>; dev <dev@dpdk.org>; Jerin
>> Jacob Kollanukkaran <jerinj@marvell.com>; jerinjacobk@gmail.com
>> Subject: [EXT] Re: [dpdk-dev] [PATCH v8 2/4] meson: add infra to support
>> machine specific flags
>> 
>> External Email
>> 
>> ----------------------------------------------------------------------
>> 
>>> On Apr 10, 2019, at 9:13 AM, jerinjacobk@gmail.com wrote:
>>> 
>>> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>>> 
>>> Currently, RTE_* flags are set based on the implementer ID but there
>>> might be some micro arch specific differences from the same vendor eg.
>>> CACHE_LINESIZE. Add support to set micro arch specific flags.
>>> 
>>> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
>>> Signed-off-by: Jerin Jacob <jerinj@marvell.com>
>>> ---
>>> config/arm/meson.build | 56 ++++++++++++++++++++++++------------------
>>> 1 file changed, 32 insertions(+), 24 deletions(-)
>>> 
>>> diff --git a/config/arm/meson.build b/config/arm/meson.build index
>>> 170a4981a..24bce2b39 100644
>>> --- a/config/arm/meson.build
>>> +++ b/config/arm/meson.build
>>> @@ -7,25 +7,6 @@ march_opt = '-march=@0@'.format(machine)
>>> 
>>> arm_force_native_march = false
>>> 
>>> -machine_args_generic = [
>>> -	['default', ['-march=armv8-a+crc+crypto']],
>>> -	['native', ['-march=native']],
>>> -	['0xd03', ['-mcpu=cortex-a53']],
>>> -	['0xd04', ['-mcpu=cortex-a35']],
>>> -	['0xd05', ['-mcpu=cortex-a55']],
>>> -	['0xd07', ['-mcpu=cortex-a57']],
>>> -	['0xd08', ['-mcpu=cortex-a72']],
>>> -	['0xd09', ['-mcpu=cortex-a73']],
>>> -	['0xd0a', ['-mcpu=cortex-a75']],
>>> -	['0xd0b', ['-mcpu=cortex-a76']],
>>> -]
>>> -machine_args_cavium = [
>>> -	['default', ['-march=armv8-a+crc+crypto','-mcpu=thunderx']],
>>> -	['native', ['-march=native']],
>>> -	['0xa1', ['-mcpu=thunderxt88']],
>>> -	['0xa2', ['-mcpu=thunderxt81']],
>>> -	['0xa3', ['-mcpu=thunderxt83']]]
>>> -
>>> flags_common_default = [
>>> 	# Accelarate rte_memcpy. Be sure to run unit test
>> (memcpy_perf_autotest)
>>> 	# to determine the best threshold in code. Refer to notes in source
>>> file @@ -52,12 +33,10 @@ flags_generic = [
>>> 	['RTE_USE_C11_MEM_MODEL', true],
>>> 	['RTE_CACHE_LINE_SIZE', 128]]
>>> flags_cavium = [
>>> -	['RTE_MACHINE', '"thunderx"'],
>>> 	['RTE_CACHE_LINE_SIZE', 128],
>>> 	['RTE_MAX_NUMA_NODES', 2],
>>> 	['RTE_MAX_LCORE', 96],
>>> -	['RTE_MAX_VFIO_GROUPS', 128],
>>> -	['RTE_USE_C11_MEM_MODEL', false]]
>>> +	['RTE_MAX_VFIO_GROUPS', 128]]
>>> flags_dpaa = [
>>> 	['RTE_MACHINE', '"dpaa"'],
>>> 	['RTE_USE_C11_MEM_MODEL', true],
>>> @@ -71,6 +50,27 @@ flags_dpaa2 = [
>>> 	['RTE_MAX_NUMA_NODES', 1],
>>> 	['RTE_MAX_LCORE', 16],
>>> 	['RTE_LIBRTE_DPAA2_USE_PHYS_IOVA', false]]
>>> +flags_default_extra = []
>>> +flags_thunderx_extra = [
>>> +	['RTE_MACHINE', '"thunderx"'],
>>> +	['RTE_USE_C11_MEM_MODEL', false]]
>>> +
>>> +machine_args_generic = [
>>> +	['default', ['-march=armv8-a+crc+crypto']],
>>> +	['native', ['-march=native']],
>>> +	['0xd03', ['-mcpu=cortex-a53']],
>>> +	['0xd04', ['-mcpu=cortex-a35']],
>>> +	['0xd07', ['-mcpu=cortex-a57']],
>>> +	['0xd08', ['-mcpu=cortex-a72']],
>>> +	['0xd09', ['-mcpu=cortex-a73']],
>>> +	['0xd0a', ['-mcpu=cortex-a75']]]
>>> +
>>> +machine_args_cavium = [
>>> +	['default', ['-march=armv8-a+crc+crypto','-mcpu=thunderx']],
>>> +	['native', ['-march=native']],
>>> +	['0xa1', ['-mcpu=thunderxt88'], flags_thunderx_extra],
>>> +	['0xa2', ['-mcpu=thunderxt81'], flags_thunderx_extra],
>>> +	['0xa3', ['-mcpu=thunderxt83'], flags_thunderx_extra]]
>>> 
>>> ## Arm implementer ID (ARM DDI 0487C.a, Section G7.2.106, Page
>>> G7-5321) impl_generic = ['Generic armv8', flags_generic,
>>> machine_args_generic] @@ -157,8 +157,16 @@ else
>>> 	endif
>>> 	foreach marg: machine[2]
>>> 		if marg[0] == impl_pn
>>> -			foreach f: marg[1]
>>> -				machine_args += f
>>> +			foreach flag: marg[1]
>>> +				if cc.has_argument(flag)
>>> +					machine_args += flag
>>> +				endif
>>> +			endforeach
>>> +			# Apply any extra machine specific flags.
>>> +			foreach flag: marg.get(2, flags_default_extra)
>>> +				if flag.length() > 0
>>> +					dpdk_conf.set(flag[0], flag[1])
>>> +				endif
>> 
>> Let me continue the discussion from v7 here.
>> Seems I wan't clear enough.
>> 
>> Let me take an example. If the host is thunderx2 (0xaf) and compiler is older
>> than v7, flags_thunderx2_extra isn't set. This means, for example,
>> RTE_CACHE_LINE_SIZE will still be 128. Is that what you want?
>> RTE_CACHE_LINE_SIZE has nothing to do with compiler support and you might
>> want to set it regardless of gcc version. You could skip setting -mcpu with setting
>> the extra flags.
>> 
> 
> Thanks for the detailed explanation.
> I think since we have the check to skip mcpu flag when cc doesn't support it (cc.has_argument(flag))
> It will be safe to remove 
> `
>        # Primary part number based mcpu flags are supported
>        # for gcc versions > 7
>        if cc.version().version_compare(
>                        '<7.0') or cmd_output.length() == 0
>                if not meson.is_cross_build() and arm_force_native_march == true
>                        impl_pn = 'native'
>                else
>                        impl_pn = 'default'
>                endif
>        endif
> `

+1

> 
> The command output check can also be removed as it is handled when calling the command script itself.

+1

> 
> Thoughts?
> 
> PS. I think the safest way to set CACHELINE_SIZE is to read the cache type register[1] but sadly only few latest kernels 
> have the support through sysfs (/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size) 

+1

In summary, +3. LoL

I'll also submit a patch to change the default cacheline size of cortex-a72 with the new flags_*_extra[]


thanks,
Yongseok

  reply	other threads:[~2019-04-11 20:12 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-06 13:20 [PATCH 1/3] mk: introduce helper to check valid compiler argument Jerin Jacob Kollanukkaran
2019-01-06 13:20 ` [PATCH 2/3] config: add thunderx2 machine config Jerin Jacob Kollanukkaran
2019-01-06 20:56   ` Thomas Monjalon
2019-01-07  5:27     ` [EXT] " Jerin Jacob Kollanukkaran
2019-01-07  0:21   ` Gavin Hu (Arm Technology China)
2019-01-07  5:29     ` [EXT] " Jerin Jacob Kollanukkaran
2019-01-06 13:20 ` [PATCH 3/3] config: add octeontx2 " Jerin Jacob Kollanukkaran
2019-01-07 15:42 ` [PATCH v2 1/6] mk: introduce helper to check valid compiler argument Pavan Nikhilesh Bhagavatula
2019-01-07 15:42   ` [PATCH v2 2/6] config: add thunderx2 machine config Pavan Nikhilesh Bhagavatula
2019-01-07 15:42   ` [PATCH v2 3/6] config: add octeontx2 " Pavan Nikhilesh Bhagavatula
2019-01-07 15:42   ` [PATCH v2 4/6] meson: add infra to support machine specific flags Pavan Nikhilesh Bhagavatula
2019-01-07 15:42   ` [PATCH v2 5/6] meson: add thunderx2 machine config Pavan Nikhilesh Bhagavatula
2019-01-07 16:57     ` Thomas Monjalon
2019-01-07 15:42   ` [PATCH v2 6/6] meson: add octeontx2 " Pavan Nikhilesh Bhagavatula
2019-01-09 10:19 ` [PATCH v3 1/4] mk: introduce helper to check valid compiler argument Pavan Nikhilesh Bhagavatula
2019-01-09 10:19   ` [PATCH v3 2/4] meson: add infra to support machine specific flags Pavan Nikhilesh Bhagavatula
2019-01-09 10:19   ` [PATCH v3 3/4] config: add thunderx2 machine config Pavan Nikhilesh Bhagavatula
2019-01-09 10:19   ` [PATCH v3 4/4] config: add octeontx2 " Pavan Nikhilesh Bhagavatula
2019-01-09 10:19   ` [PATCH v3 5/5] meson: add cross build targets for thunderx2 and octeontx2 Pavan Nikhilesh Bhagavatula
2019-01-09 10:39 ` [PATCH v4 1/5] mk: introduce helper to check valid compiler argument Pavan Nikhilesh Bhagavatula
2019-01-09 10:39   ` [PATCH v4 2/5] meson: add infra to support machine specific flags Pavan Nikhilesh Bhagavatula
2019-01-14 11:32     ` Thomas Monjalon
2019-02-12  8:06     ` Phil Yang (Arm Technology China)
2019-02-12  8:35       ` [EXT] " Pavan Nikhilesh Bhagavatula
2019-01-09 10:39   ` [PATCH v4 3/5] config: add thunderx2 machine config Pavan Nikhilesh Bhagavatula
2019-01-09 10:39   ` [PATCH v4 4/5] config: add octeontx2 " Pavan Nikhilesh Bhagavatula
2019-02-12  8:50     ` Phil Yang (Arm Technology China)
2019-01-09 10:39   ` [PATCH v4 5/5] meson: add cross build targets for thunderx2 and octeontx2 Pavan Nikhilesh Bhagavatula
2019-01-14 11:28     ` Thomas Monjalon
2019-01-14 11:35   ` [PATCH v4 1/5] mk: introduce helper to check valid compiler argument Thomas Monjalon
2019-01-14 11:56     ` [EXT] " Jerin Jacob Kollanukkaran
2019-01-14 12:08       ` Thomas Monjalon
2019-02-24 18:11   ` [PATCH v5 1/4] " Jerin Jacob Kollanukkaran
2019-02-24 18:11     ` [PATCH v5 2/4] meson: add infra to support machine specific flags Jerin Jacob Kollanukkaran
2019-02-24 18:11     ` [PATCH v5 3/4] config: add thunderx2 machine config Jerin Jacob Kollanukkaran
2019-02-24 18:11     ` [PATCH v5 4/4] config: add octeontx2 " Jerin Jacob Kollanukkaran
2019-03-18 16:50     ` [PATCH v6 1/4] mk: introduce helper to check valid compiler argument Jerin Jacob Kollanukkaran
2019-03-18 16:50       ` [PATCH v6 2/4] meson: add infra to support machine specific flags Jerin Jacob Kollanukkaran
2019-03-19  9:40         ` Bruce Richardson
2019-03-29 13:57           ` Thomas Monjalon
2019-03-18 16:50       ` [PATCH v6 3/4] config: add thunderx2 machine config Jerin Jacob Kollanukkaran
2019-04-02  8:52         ` Gavin Hu (Arm Technology China)
2019-04-05 18:13         ` [dpdk-dev] " Thomas Monjalon
2019-04-05 18:47           ` Jerin Jacob Kollanukkaran
2019-04-05 19:09             ` Thomas Monjalon
2019-04-06 11:40               ` Jerin Jacob Kollanukkaran
2019-03-18 16:50       ` [PATCH v6 4/4] config: add octeontx2 " Jerin Jacob Kollanukkaran
2019-04-02  8:54         ` Gavin Hu (Arm Technology China)
2019-04-06 14:27       ` [dpdk-dev] [PATCH v7 1/4] mk: introduce helper to check valid compiler argument jerinjacobk
2019-04-06 14:27         ` [dpdk-dev] [PATCH v7 2/4] meson: add infra to support machine specific flags jerinjacobk
2019-04-10  0:40           ` Yongseok Koh
2019-04-10  2:15             ` Yongseok Koh
2019-04-10 14:22               ` Pavan Nikhilesh Bhagavatula
2019-04-06 14:27         ` [dpdk-dev] [PATCH v7 3/4] config: add thunderx2 machine config jerinjacobk
2019-04-08 10:32           ` Thomas Monjalon
2019-04-08 12:05             ` Thomas Monjalon
2019-04-08 12:11               ` Bruce Richardson
2019-04-06 14:27         ` [dpdk-dev] [PATCH v7 4/4] config: add octeontx2 " jerinjacobk
2019-04-10 12:48           ` Thomas Monjalon
2019-04-10 12:59             ` Jerin Jacob Kollanukkaran
2019-04-10 16:13         ` [dpdk-dev] [PATCH v8 1/4] mk: introduce helper to check valid compiler argument jerinjacobk
2019-04-10 16:13           ` [dpdk-dev] [PATCH v8 2/4] meson: add infra to support machine specific flags jerinjacobk
2019-04-10 17:37             ` Yongseok Koh
2019-04-11  6:07               ` Pavan Nikhilesh Bhagavatula
2019-04-11 20:12                 ` Yongseok Koh [this message]
2019-04-12  2:04                   ` Yongseok Koh
2019-04-12  6:07                     ` Jerin Jacob Kollanukkaran
2019-04-12  6:43                       ` Yongseok Koh
2019-04-12  7:00                         ` Jerin Jacob Kollanukkaran
2019-04-12  7:34                           ` Yongseok Koh
2019-04-12  7:09                         ` Yongseok Koh
2019-04-12  7:35                           ` Jerin Jacob Kollanukkaran
2019-04-12  7:47                             ` Yongseok Koh
2019-04-11 23:37             ` Thomas Monjalon
2019-04-12  1:59               ` Yongseok Koh
2019-04-12  7:12               ` Jerin Jacob Kollanukkaran
2019-04-12  8:45                 ` Thomas Monjalon
2019-04-13  6:24                   ` Jerin Jacob Kollanukkaran
2019-04-13 20:42                     ` Thomas Monjalon
2019-04-14 14:40                       ` Pavan Nikhilesh Bhagavatula
2019-04-14 17:44                         ` Thomas Monjalon
2019-04-14 18:19                           ` Jerin Jacob Kollanukkaran
2019-04-14 18:29                             ` Thomas Monjalon
2019-04-10 16:13           ` [dpdk-dev] [PATCH v8 3/4] config: add thunderx2 machine config jerinjacobk
2019-04-10 16:14           ` [dpdk-dev] [PATCH v8 4/4] config: add octeontx2 " jerinjacobk
2019-04-13 19:01           ` [dpdk-dev] [PATCH v9 1/4] mk: introduce helper to check valid compiler argument jerinj
2019-04-13 19:01             ` [dpdk-dev] [PATCH v9 2/4] meson: add infra to support machine specific flags jerinj
2019-04-13 19:01             ` [dpdk-dev] [PATCH v9 3/4] config: add thunderx2 machine config jerinj
2019-04-13 19:01             ` [dpdk-dev] [PATCH v9 4/4] config: add octeontx2 " jerinj
2019-04-13 20:19             ` [dpdk-dev] [PATCH v10 1/4] mk: introduce helper to check valid compiler argument jerinj
2019-04-13 20:19               ` [dpdk-dev] [PATCH v10 2/4] meson: add infra to support machine specific flags jerinj
2019-04-13 20:19               ` [dpdk-dev] [PATCH v10 3/4] config: add thunderx2 machine config jerinj
2019-04-13 20:19               ` [dpdk-dev] [PATCH v10 4/4] config: add octeontx2 " jerinj
2019-04-15 21:00               ` [dpdk-dev] [PATCH v10 1/4] mk: introduce helper to check valid compiler argument Thomas Monjalon
2019-03-21 10:13     ` [PATCH v5 " Phil Yang (Arm Technology China)

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=C4F41778-F0F3-49A5-8472-E307FF57BFFB@mellanox.com \
    --to=yskoh@mellanox.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=jerinjacobk@gmail.com \
    --cc=pbhagavatula@marvell.com \
    --cc=thomas@monjalon.net \
    /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.