[5/5] config: enable dpaaX drivers compilation for ARMv8

Message ID 1516874011-8760-6-git-send-email-hemant.agrawal@nxp.com
State New
Headers show
Series
  • ARMv8: enable DPAA-X driver compilation
Related show

Commit Message

Hemant Agrawal Jan. 25, 2018, 9:53 a.m.
This patch enables the NXP DPAA & DPAA2 drivers for
ARMV8 targets. They can be used with standard armv8 config
with command line mempool argument or newly introduced
platform mempool internal registration mechanism.

Note that the dpaa(x) specific config files are still preserved
to continue customer support. They also contain some of the ARM
performance tuning flags. e.g the default ARM cache size of 128
is not optimal for NXP platforms.

However, these configs will eventually be removed once a dynamic
mechanisms are developed to detect the performance settings.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

---
 config/common_armv8a_linuxapp | 58 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

-- 
2.7.4

Comments

Jerin Jacob Jan. 25, 2018, 11:21 a.m. | #1
-----Original Message-----
> Date: Thu, 25 Jan 2018 15:23:31 +0530

> From: Hemant Agrawal <hemant.agrawal@nxp.com>

> To: dev@dpdk.org

> CC: jerin.jacob@caviumnetworks.com

> Subject: [PATCH 5/5] config: enable dpaaX drivers compilation for ARMv8

> X-Mailer: git-send-email 2.7.4

> 

> This patch enables the NXP DPAA & DPAA2 drivers for

> ARMV8 targets. They can be used with standard armv8 config

> with command line mempool argument or newly introduced

> platform mempool internal registration mechanism.

> 

> Note that the dpaa(x) specific config files are still preserved

> to continue customer support. They also contain some of the ARM

> performance tuning flags. e.g the default ARM cache size of 128

> is not optimal for NXP platforms.

> 

> However, these configs will eventually be removed once a dynamic

> mechanisms are developed to detect the performance settings.

> 

> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

> ---

>  config/common_armv8a_linuxapp | 58 +++++++++++++++++++++++++++++++++++++++++++

>  1 file changed, 58 insertions(+)

> 

> diff --git a/config/common_armv8a_linuxapp b/config/common_armv8a_linuxapp

> index 790e716..572db11 100644

> --- a/config/common_armv8a_linuxapp

> +++ b/config/common_armv8a_linuxapp

> @@ -34,3 +34,61 @@ CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n

>  CONFIG_RTE_LIBRTE_AVP_PMD=n

>  

>  CONFIG_RTE_SCHED_VECTOR=n

> +

> +#

> +# ARMv8 Specific driver compilation flags

> +#


Will it be better if it is enabled in generic config?

If you have any assembly code then you just stub it for non arm64.
Since these are integrate controllers, I guess, there is no issue in
stubbing the non arm64 specific things.

I believe in that way, it will be maintainable. i.e there will not
any case where arm64 config failing but not non arm64 configs.

On the upside, The common code(ethdev, cryptodev) changes will be build
against your driver by all the developers.

> +

> +#

> +# Compile NXP DPAA Bus

> +#

> +CONFIG_RTE_LIBRTE_DPAA_BUS=y

> +CONFIG_RTE_LIBRTE_DPAA_HWDEBUG=n

> +

> +#

> +# Compile NXP DPAA2 FSL-MC Bus

> +#

> +CONFIG_RTE_LIBRTE_FSLMC_BUS=y

> +

> +#

> +# Compile NXP DPAA Mempool

> +#

> +CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=y

> +

> +#

> +# Compile NXP DPAA2 Mempool

> +#

> +CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=y

> +

> +#

> +# Compile bust-oriented NXP DPAA PMD

> +#

> +CONFIG_RTE_LIBRTE_DPAA_PMD=y

> +

> +#

> +# Compile burst-oriented NXP DPAA2 PMD driver

> +#

> +CONFIG_RTE_LIBRTE_DPAA2_PMD=y

> +

> +#

> +# Compile schedule-oriented NXP DPAA Event Dev PMD

> +#

> +CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=y

> +

> +#

> +# Compile schedule-oriented NXP DPAA2 EVENTDEV driver

> +#

> +CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=y

> +

> +#

> +# Compile NXP DPAA caam - crypto driver

> +#

> +CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=y

> +CONFIG_RTE_LIBRTE_DPAA_MAX_CRYPTODEV=4

> +CONFIG_RTE_DPAA_SEC_PMD_MAX_NB_SESSIONS=2048

> +

> +#

> +# Compile NXP DPAA2 crypto sec driver for CAAM HW

> +#

> +CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=y

> +CONFIG_RTE_DPAA2_SEC_PMD_MAX_NB_SESSIONS=2048

> -- 

> 2.7.4

>
Hemant Agrawal Jan. 30, 2018, 8:42 a.m. | #2
Hi Jerin,

On 1/25/2018 4:51 PM, Jerin Jacob wrote:
> -----Original Message-----

>> Date: Thu, 25 Jan 2018 15:23:31 +0530

>> From: Hemant Agrawal <hemant.agrawal@nxp.com>

>> To: dev@dpdk.org

>> CC: jerin.jacob@caviumnetworks.com

>> Subject: [PATCH 5/5] config: enable dpaaX drivers compilation for ARMv8

>> X-Mailer: git-send-email 2.7.4

>>

>> This patch enables the NXP DPAA & DPAA2 drivers for

>> ARMV8 targets. They can be used with standard armv8 config

>> with command line mempool argument or newly introduced

>> platform mempool internal registration mechanism.

>>

>> Note that the dpaa(x) specific config files are still preserved

>> to continue customer support. They also contain some of the ARM

>> performance tuning flags. e.g the default ARM cache size of 128

>> is not optimal for NXP platforms.

>>

>> However, these configs will eventually be removed once a dynamic

>> mechanisms are developed to detect the performance settings.

>>

>> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

>> ---

>>   config/common_armv8a_linuxapp | 58 +++++++++++++++++++++++++++++++++++++++++++

>>   1 file changed, 58 insertions(+)

>>

>> diff --git a/config/common_armv8a_linuxapp b/config/common_armv8a_linuxapp

>> index 790e716..572db11 100644

>> --- a/config/common_armv8a_linuxapp

>> +++ b/config/common_armv8a_linuxapp

>> @@ -34,3 +34,61 @@ CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n

>>   CONFIG_RTE_LIBRTE_AVP_PMD=n

>>   

>>   CONFIG_RTE_SCHED_VECTOR=n

>> +

>> +#

>> +# ARMv8 Specific driver compilation flags

>> +#

> 

> Will it be better if it is enabled in generic config?

> 

> If you have any assembly code then you just stub it for non arm64.

> Since these are integrate controllers, I guess, there is no issue in

> stubbing the non arm64 specific things.

> 

> I believe in that way, it will be maintainable. i.e there will not

> any case where arm64 config failing but not non arm64 configs.

> 

> On the upside, The common code(ethdev, cryptodev) changes will be build

> against your driver by all the developers.


It is a good suggestion and we did attempted it and realized that the 
amount of changes required are more than expected.
We will attempt it for next release.

However, if you are ok, please ack it in ARM for now.
Hemant Agrawal Jan. 30, 2018, 9:33 a.m. | #3
On 1/30/2018 2:12 PM, Hemant Agrawal wrote:
> Hi Jerin,

> 

> On 1/25/2018 4:51 PM, Jerin Jacob wrote:

>> -----Original Message-----

>>> Date: Thu, 25 Jan 2018 15:23:31 +0530

>>> From: Hemant Agrawal <hemant.agrawal@nxp.com>

>>> To: dev@dpdk.org

>>> CC: jerin.jacob@caviumnetworks.com

>>> Subject: [PATCH 5/5] config: enable dpaaX drivers compilation for ARMv8

>>> X-Mailer: git-send-email 2.7.4

>>>

>>> This patch enables the NXP DPAA & DPAA2 drivers for

>>> ARMV8 targets. They can be used with standard armv8 config

>>> with command line mempool argument or newly introduced

>>> platform mempool internal registration mechanism.

>>>

>>> Note that the dpaa(x) specific config files are still preserved

>>> to continue customer support. They also contain some of the ARM

>>> performance tuning flags. e.g the default ARM cache size of 128

>>> is not optimal for NXP platforms.

>>>

>>> However, these configs will eventually be removed once a dynamic

>>> mechanisms are developed to detect the performance settings.

>>>

>>> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

>>> ---

>>>   config/common_armv8a_linuxapp | 58 

>>> +++++++++++++++++++++++++++++++++++++++++++

>>>   1 file changed, 58 insertions(+)

>>>

>>> diff --git a/config/common_armv8a_linuxapp 

>>> b/config/common_armv8a_linuxapp

>>> index 790e716..572db11 100644

>>> --- a/config/common_armv8a_linuxapp

>>> +++ b/config/common_armv8a_linuxapp

>>> @@ -34,3 +34,61 @@ CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n

>>>   CONFIG_RTE_LIBRTE_AVP_PMD=n

>>>   CONFIG_RTE_SCHED_VECTOR=n

>>> +

>>> +#

>>> +# ARMv8 Specific driver compilation flags

>>> +#

>>

>> Will it be better if it is enabled in generic config?

>>

>> If you have any assembly code then you just stub it for non arm64.

>> Since these are integrate controllers, I guess, there is no issue in

>> stubbing the non arm64 specific things.

>>

>> I believe in that way, it will be maintainable. i.e there will not

>> any case where arm64 config failing but not non arm64 configs.

>>

>> On the upside, The common code(ethdev, cryptodev) changes will be build

>> against your driver by all the developers.

> 

> It is a good suggestion and we did attempted it and realized that the 

> amount of changes required are more than expected.

> We will attempt it for next release.

> 

> However, if you are ok, please ack it in ARM for now.

> 

> 

I take it back. I figured out easy changes to make it compile for x86 as 
well.

We will submit the v2.
Hemant Agrawal Jan. 30, 2018, 2:43 p.m. | #4
On 1/30/2018 3:03 PM, Hemant Agrawal wrote:
> On 1/30/2018 2:12 PM, Hemant Agrawal wrote:

>> Hi Jerin,

>>

>> On 1/25/2018 4:51 PM, Jerin Jacob wrote:

>>> -----Original Message-----

>>>> Date: Thu, 25 Jan 2018 15:23:31 +0530

>>>> From: Hemant Agrawal <hemant.agrawal@nxp.com>

>>>> To: dev@dpdk.org

>>>> CC: jerin.jacob@caviumnetworks.com

>>>> Subject: [PATCH 5/5] config: enable dpaaX drivers compilation for ARMv8

>>>> X-Mailer: git-send-email 2.7.4

>>>>

>>>> This patch enables the NXP DPAA & DPAA2 drivers for

>>>> ARMV8 targets. They can be used with standard armv8 config

>>>> with command line mempool argument or newly introduced

>>>> platform mempool internal registration mechanism.

>>>>

>>>> Note that the dpaa(x) specific config files are still preserved

>>>> to continue customer support. They also contain some of the ARM

>>>> performance tuning flags. e.g the default ARM cache size of 128

>>>> is not optimal for NXP platforms.

>>>>

>>>> However, these configs will eventually be removed once a dynamic

>>>> mechanisms are developed to detect the performance settings.

>>>>

>>>> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

>>>> ---

>>>>   config/common_armv8a_linuxapp | 58 

>>>> +++++++++++++++++++++++++++++++++++++++++++

>>>>   1 file changed, 58 insertions(+)

>>>>

>>>> diff --git a/config/common_armv8a_linuxapp 

>>>> b/config/common_armv8a_linuxapp

>>>> index 790e716..572db11 100644

>>>> --- a/config/common_armv8a_linuxapp

>>>> +++ b/config/common_armv8a_linuxapp

>>>> @@ -34,3 +34,61 @@ CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n

>>>>   CONFIG_RTE_LIBRTE_AVP_PMD=n

>>>>   CONFIG_RTE_SCHED_VECTOR=n

>>>> +

>>>> +#

>>>> +# ARMv8 Specific driver compilation flags

>>>> +#

>>>

>>> Will it be better if it is enabled in generic config?

>>>

>>> If you have any assembly code then you just stub it for non arm64.

>>> Since these are integrate controllers, I guess, there is no issue in

>>> stubbing the non arm64 specific things.

>>>

>>> I believe in that way, it will be maintainable. i.e there will not

>>> any case where arm64 config failing but not non arm64 configs.

>>>

>>> On the upside, The common code(ethdev, cryptodev) changes will be build

>>> against your driver by all the developers.

>>

>> It is a good suggestion and we did attempted it and realized that the 

>> amount of changes required are more than expected.

>> We will attempt it for next release.

>>

>> However, if you are ok, please ack it in ARM for now.

>>

>>

> I take it back. I figured out easy changes to make it compile for x86 as 

> well.

> 

> We will submit the v2.

> 

I think, we need to leave this patch as it is for this release.

We are running into freebsd issue w.r.t common_base
and 32 bit issues with common_linuxapp.

We will do these changes incrementally in next release.
Jerin Jacob Jan. 31, 2018, 9:11 a.m. | #5
-----Original Message-----
> Date: Tue, 30 Jan 2018 20:13:00 +0530

> From: Hemant Agrawal <hemant.agrawal@nxp.com>

> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>

> CC: dev@dpdk.org

> Subject: Re: [PATCH 5/5] config: enable dpaaX drivers compilation for ARMv8

> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101

>  Thunderbird/52.6.0

> 

> On 1/30/2018 3:03 PM, Hemant Agrawal wrote:

> > On 1/30/2018 2:12 PM, Hemant Agrawal wrote:

> > > Hi Jerin,

> > > 

> > > On 1/25/2018 4:51 PM, Jerin Jacob wrote:

> > > > -----Original Message-----

> > > > > Date: Thu, 25 Jan 2018 15:23:31 +0530

> > > > > From: Hemant Agrawal <hemant.agrawal@nxp.com>

> > > > > To: dev@dpdk.org

> > > > > CC: jerin.jacob@caviumnetworks.com

> > > > > Subject: [PATCH 5/5] config: enable dpaaX drivers compilation for ARMv8

> > > > > X-Mailer: git-send-email 2.7.4

> > > > > 

> > > > > This patch enables the NXP DPAA & DPAA2 drivers for

> > > > > ARMV8 targets. They can be used with standard armv8 config

> > > > > with command line mempool argument or newly introduced

> > > > > platform mempool internal registration mechanism.

> > > > > 

> > > > > Note that the dpaa(x) specific config files are still preserved

> > > > > to continue customer support. They also contain some of the ARM

> > > > > performance tuning flags. e.g the default ARM cache size of 128

> > > > > is not optimal for NXP platforms.

> > > > > 

> > > > > However, these configs will eventually be removed once a dynamic

> > > > > mechanisms are developed to detect the performance settings.

> > > > > 

> > > > > Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

> > > > > ---

> > > > >   config/common_armv8a_linuxapp | 58

> > > > > +++++++++++++++++++++++++++++++++++++++++++

> > > > >   1 file changed, 58 insertions(+)

> > > > > 

> > > > > diff --git a/config/common_armv8a_linuxapp

> > > > > b/config/common_armv8a_linuxapp

> > > > > index 790e716..572db11 100644

> > > > > --- a/config/common_armv8a_linuxapp

> > > > > +++ b/config/common_armv8a_linuxapp

> > > > > @@ -34,3 +34,61 @@ CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n

> > > > >   CONFIG_RTE_LIBRTE_AVP_PMD=n

> > > > >   CONFIG_RTE_SCHED_VECTOR=n

> > > > > +

> > > > > +#

> > > > > +# ARMv8 Specific driver compilation flags

> > > > > +#

> > > > 

> > > > Will it be better if it is enabled in generic config?

> > > > 

> > > > If you have any assembly code then you just stub it for non arm64.

> > > > Since these are integrate controllers, I guess, there is no issue in

> > > > stubbing the non arm64 specific things.

> > > > 

> > > > I believe in that way, it will be maintainable. i.e there will not

> > > > any case where arm64 config failing but not non arm64 configs.

> > > > 

> > > > On the upside, The common code(ethdev, cryptodev) changes will be build

> > > > against your driver by all the developers.

> > > 

> > > It is a good suggestion and we did attempted it and realized that

> > > the amount of changes required are more than expected.

> > > We will attempt it for next release.

> > > 

> > > However, if you are ok, please ack it in ARM for now.

> > > 

> > > 

> > I take it back. I figured out easy changes to make it compile for x86 as

> > well.

> > 

> > We will submit the v2.

> > 

> I think, we need to leave this patch as it is for this release.

> 

> We are running into freebsd issue w.r.t common_base

> and 32 bit issues with common_linuxapp.

> 

> We will do these changes incrementally in next release.


OK. Please make these changes in next release.
Even in the context of meson build, it make sense to move common config.
architecture specific config should be just arch specific things.
Please move to common config in next release.

Patch

diff --git a/config/common_armv8a_linuxapp b/config/common_armv8a_linuxapp
index 790e716..572db11 100644
--- a/config/common_armv8a_linuxapp
+++ b/config/common_armv8a_linuxapp
@@ -34,3 +34,61 @@  CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
 CONFIG_RTE_LIBRTE_AVP_PMD=n
 
 CONFIG_RTE_SCHED_VECTOR=n
+
+#
+# ARMv8 Specific driver compilation flags
+#
+
+#
+# Compile NXP DPAA Bus
+#
+CONFIG_RTE_LIBRTE_DPAA_BUS=y
+CONFIG_RTE_LIBRTE_DPAA_HWDEBUG=n
+
+#
+# Compile NXP DPAA2 FSL-MC Bus
+#
+CONFIG_RTE_LIBRTE_FSLMC_BUS=y
+
+#
+# Compile NXP DPAA Mempool
+#
+CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=y
+
+#
+# Compile NXP DPAA2 Mempool
+#
+CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=y
+
+#
+# Compile bust-oriented NXP DPAA PMD
+#
+CONFIG_RTE_LIBRTE_DPAA_PMD=y
+
+#
+# Compile burst-oriented NXP DPAA2 PMD driver
+#
+CONFIG_RTE_LIBRTE_DPAA2_PMD=y
+
+#
+# Compile schedule-oriented NXP DPAA Event Dev PMD
+#
+CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=y
+
+#
+# Compile schedule-oriented NXP DPAA2 EVENTDEV driver
+#
+CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=y
+
+#
+# Compile NXP DPAA caam - crypto driver
+#
+CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=y
+CONFIG_RTE_LIBRTE_DPAA_MAX_CRYPTODEV=4
+CONFIG_RTE_DPAA_SEC_PMD_MAX_NB_SESSIONS=2048
+
+#
+# Compile NXP DPAA2 crypto sec driver for CAAM HW
+#
+CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=y
+CONFIG_RTE_DPAA2_SEC_PMD_MAX_NB_SESSIONS=2048