[1/2] config/arm: fix Hisilicon kunpeng920 SoC build
Checks
Commit Message
From: Chengchang Tang <tangchengchang@huawei.com>
Because of the '9ca2f16' have merged, the current hns3
pmd driver can not be directly complied on the kunpeng920
server board. Therefore, we need to fix the meson build.
Besides, add kunpeng 920 SoC meson cross compile target.
Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
---
config/arm/arm64_kunpeng920_linux_gcc | 19 +++++++++++++++++++
config/arm/meson.build | 20 ++++++++++++++++++++
doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst | 4 ++++
3 files changed, 43 insertions(+)
create mode 100644 config/arm/arm64_kunpeng920_linux_gcc
Comments
03/02/2021 13:46, Lijun Ou:
> From: Chengchang Tang <tangchengchang@huawei.com>
>
> Because of the '9ca2f16' have merged, the current hns3
> pmd driver can not be directly complied on the kunpeng920
> server board. Therefore, we need to fix the meson build.
> Besides, add kunpeng 920 SoC meson cross compile target.
>
> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
Why do you think this patch is fixing the one above?
It looks just a new config, not a fix. Am I missing something?
在 2021/2/10 17:41, Thomas Monjalon 写道:
> 03/02/2021 13:46, Lijun Ou:
>> From: Chengchang Tang <tangchengchang@huawei.com>
>>
>> Because of the '9ca2f16' have merged, the current hns3
>> pmd driver can not be directly complied on the kunpeng920
>> server board. Therefore, we need to fix the meson build.
>> Besides, add kunpeng 920 SoC meson cross compile target.
>>
>> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
>
> Why do you think this patch is fixing the one above?
> It looks just a new config, not a fix. Am I missing something?
>
I'm sorry to see you so late. In the meantime, we are celebrating the
Spring Festival. This patch fixes the problem. If the patch is not
added, the latest version cannot be directly compiled on the Kunpeng 930
server board.In addition, the cross compilation configuration file is added.
>
> .
>
24/02/2021 02:34, oulijun:
>
> 在 2021/2/10 17:41, Thomas Monjalon 写道:
> > 03/02/2021 13:46, Lijun Ou:
> >> From: Chengchang Tang <tangchengchang@huawei.com>
> >>
> >> Because of the '9ca2f16' have merged, the current hns3
> >> pmd driver can not be directly complied on the kunpeng920
> >> server board. Therefore, we need to fix the meson build.
> >> Besides, add kunpeng 920 SoC meson cross compile target.
> >>
> >> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
> >
> > Why do you think this patch is fixing the one above?
> > It looks just a new config, not a fix. Am I missing something?
> >
> I'm sorry to see you so late. In the meantime, we are celebrating the
> Spring Festival. This patch fixes the problem. If the patch is not
> added, the latest version cannot be directly compiled on the Kunpeng 930
> server board.In addition, the cross compilation configuration file is added.
Please can you explain what was removed which breaks your compilation?
在 2021/2/24 15:41, Thomas Monjalon 写道:
> 24/02/2021 02:34, oulijun:
>>
>> 在 2021/2/10 17:41, Thomas Monjalon 写道:
>>> 03/02/2021 13:46, Lijun Ou:
>>>> From: Chengchang Tang <tangchengchang@huawei.com>
>>>>
>>>> Because of the '9ca2f16' have merged, the current hns3
>>>> pmd driver can not be directly complied on the kunpeng920
>>>> server board. Therefore, we need to fix the meson build.
>>>> Besides, add kunpeng 920 SoC meson cross compile target.
>>>>
>>>> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
>>>
>>> Why do you think this patch is fixing the one above?
>>> It looks just a new config, not a fix. Am I missing something?
>>>
>> I'm sorry to see you so late. In the meantime, we are celebrating the
>> Spring Festival. This patch fixes the problem. If the patch is not
>> added, the latest version cannot be directly compiled on the Kunpeng 930
>> server board.In addition, the cross compilation configuration file is added.
>
> Please can you explain what was removed which breaks your compilation?
>
I understand that implementation_id is identified in 9ca2f16. If the
configuration file does not contain implementation_id, it will be
displayed as unsupported.
The error as follows:
config/arm/meson.build:227:2: ERROR: Problem encountered: Unsupported
Arm implementer: 0x48. Please add support for it or use the generic
(-Dmachine=generic) build.
Besides, we use the -Dmachine=generic, the bug is not resolved.
the cmd as:
meson build or meson -Dmachine=generic build
>
> .
>
24/02/2021 10:17, oulijun:
>
> 在 2021/2/24 15:41, Thomas Monjalon 写道:
> > 24/02/2021 02:34, oulijun:
> >>
> >> 在 2021/2/10 17:41, Thomas Monjalon 写道:
> >>> 03/02/2021 13:46, Lijun Ou:
> >>>> From: Chengchang Tang <tangchengchang@huawei.com>
> >>>>
> >>>> Because of the '9ca2f16' have merged, the current hns3
> >>>> pmd driver can not be directly complied on the kunpeng920
> >>>> server board. Therefore, we need to fix the meson build.
> >>>> Besides, add kunpeng 920 SoC meson cross compile target.
> >>>>
> >>>> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
> >>>
> >>> Why do you think this patch is fixing the one above?
> >>> It looks just a new config, not a fix. Am I missing something?
> >>>
> >> I'm sorry to see you so late. In the meantime, we are celebrating the
> >> Spring Festival. This patch fixes the problem. If the patch is not
> >> added, the latest version cannot be directly compiled on the Kunpeng 930
> >> server board.In addition, the cross compilation configuration file is added.
> >
> > Please can you explain what was removed which breaks your compilation?
> >
> I understand that implementation_id is identified in 9ca2f16. If the
> configuration file does not contain implementation_id, it will be
> displayed as unsupported.
>
> The error as follows:
> config/arm/meson.build:227:2: ERROR: Problem encountered: Unsupported
> Arm implementer: 0x48. Please add support for it or use the generic
> (-Dmachine=generic) build.
>
> Besides, we use the -Dmachine=generic, the bug is not resolved.
> the cmd as:
> meson build or meson -Dmachine=generic build
What is the result of a generic build?
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> Sent: Wednesday, February 24, 2021 8:42 AM
> To: oulijun <oulijun@huawei.com>
> Cc: ferruh.yigit@intel.com; dev@dpdk.org; linuxarm@openeuler.org
> Subject: Re: [dpdk-dev] [PATCH 1/2] config/arm: fix Hisilicon kunpeng920 SoC
> build
>
> 24/02/2021 02:34, oulijun:
> >
> > 在 2021/2/10 17:41, Thomas Monjalon 写道:
> > > 03/02/2021 13:46, Lijun Ou:
> > >> From: Chengchang Tang <tangchengchang@huawei.com>
> > >>
> > >> Because of the '9ca2f16' have merged, the current hns3 pmd driver
> > >> can not be directly complied on the kunpeng920 server board.
> > >> Therefore, we need to fix the meson build.
> > >> Besides, add kunpeng 920 SoC meson cross compile target.
> > >>
> > >> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
> > >
> > > Why do you think this patch is fixing the one above?
> > > It looks just a new config, not a fix. Am I missing something?
> > >
> > I'm sorry to see you so late. In the meantime, we are celebrating the
> > Spring Festival. This patch fixes the problem. If the patch is not
> > added, the latest version cannot be directly compiled on the Kunpeng
> > 930 server board.In addition, the cross compilation configuration file is added.
>
> Please can you explain what was removed which breaks your compilation?
>
>
I can explain what's changed and why we changed it.
The previous behavior was that when an uknown implementer was found (when we're building on an uknown build machine) we fell back to a generic build.
The current behavior is we raise an error when building on an unknown build machine and inform the user about the generic build (there's an error in the message, it should be -Dmachine=default instead of -Dmachine=generic). Lijun came across this scenario, so he wants to add an implementer, but it is not a fix, rather an addition that we wanted to encourage when we changed the behavior. The change in behavior also has an additional benefit in that it notifies the user that meson is not doing a tailored build for the build machine and the only permissible build is the generic one.
24/02/2021 12:55, Juraj Linkeš:
> From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> > 24/02/2021 02:34, oulijun:
> > >
> > > 在 2021/2/10 17:41, Thomas Monjalon 写道:
> > > > 03/02/2021 13:46, Lijun Ou:
> > > >> From: Chengchang Tang <tangchengchang@huawei.com>
> > > >>
> > > >> Because of the '9ca2f16' have merged, the current hns3 pmd driver
> > > >> can not be directly complied on the kunpeng920 server board.
> > > >> Therefore, we need to fix the meson build.
> > > >> Besides, add kunpeng 920 SoC meson cross compile target.
> > > >>
> > > >> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
> > > >
> > > > Why do you think this patch is fixing the one above?
> > > > It looks just a new config, not a fix. Am I missing something?
> > > >
> > > I'm sorry to see you so late. In the meantime, we are celebrating the
> > > Spring Festival. This patch fixes the problem. If the patch is not
> > > added, the latest version cannot be directly compiled on the Kunpeng
> > > 930 server board.In addition, the cross compilation configuration file is added.
> >
> > Please can you explain what was removed which breaks your compilation?
> >
>
> I can explain what's changed and why we changed it.
>
> The previous behavior was that when an uknown implementer was found (when we're building on an uknown build machine) we fell back to a generic build.
> The current behavior is we raise an error when building on an unknown build machine and inform the user about the generic build (there's an error in the message, it should be -Dmachine=default instead of -Dmachine=generic). Lijun came across this scenario, so he wants to add an implementer, but it is not a fix, rather an addition that we wanted to encourage when we changed the behavior. The change in behavior also has an additional benefit in that it notifies the user that meson is not doing a tailored build for the build machine and the only permissible build is the generic one.
There were already many fixes for that rework.
Please check if there are other missing updates.
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Wednesday, February 24, 2021 1:10 PM
> To: Juraj Linkeš <juraj.linkes@pantheon.tech>
> Cc: oulijun <oulijun@huawei.com>; ferruh.yigit@intel.com; dev@dpdk.org;
> linuxarm@openeuler.org
> Subject: Re: [dpdk-dev] [PATCH 1/2] config/arm: fix Hisilicon kunpeng920 SoC
> build
>
> 24/02/2021 12:55, Juraj Linkeš:
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> > > 24/02/2021 02:34, oulijun:
> > > >
> > > > 在 2021/2/10 17:41, Thomas Monjalon 写道:
> > > > > 03/02/2021 13:46, Lijun Ou:
> > > > >> From: Chengchang Tang <tangchengchang@huawei.com>
> > > > >>
> > > > >> Because of the '9ca2f16' have merged, the current hns3 pmd
> > > > >> driver can not be directly complied on the kunpeng920 server board.
> > > > >> Therefore, we need to fix the meson build.
> > > > >> Besides, add kunpeng 920 SoC meson cross compile target.
> > > > >>
> > > > >> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
> > > > >
> > > > > Why do you think this patch is fixing the one above?
> > > > > It looks just a new config, not a fix. Am I missing something?
> > > > >
> > > > I'm sorry to see you so late. In the meantime, we are celebrating
> > > > the Spring Festival. This patch fixes the problem. If the patch is
> > > > not added, the latest version cannot be directly compiled on the
> > > > Kunpeng
> > > > 930 server board.In addition, the cross compilation configuration file is
> added.
> > >
> > > Please can you explain what was removed which breaks your compilation?
> > >
> >
> > I can explain what's changed and why we changed it.
> >
> > The previous behavior was that when an uknown implementer was found
> (when we're building on an uknown build machine) we fell back to a generic
> build.
> > The current behavior is we raise an error when building on an unknown build
> machine and inform the user about the generic build (there's an error in the
> message, it should be -Dmachine=default instead of -Dmachine=generic). Lijun
> came across this scenario, so he wants to add an implementer, but it is not a fix,
> rather an addition that we wanted to encourage when we changed the
> behavior. The change in behavior also has an additional benefit in that it notifies
> the user that meson is not doing a tailored build for the build machine and the
> only permissible build is the generic one.
>
> There were already many fixes for that rework.
> Please check if there are other missing updates.
>
This is actually the first mistake that my testing missed. I tested that the message is properly emitted, but I didn't test the message after we extracted the default->generic rename patch. As a side note, we could address this issue with http://patches.dpdk.org/project/dpdk/patch/1613657555-17683-1-git-send-email-juraj.linkes@pantheon.tech/ - then we can leave the message in place as is (with -Dmachine=generic).
I went through all of the patches again but I didn't find anything that needs addressing.
As far as I'm aware, there were two other fixes for the series. One was a failure of communication (the native margs fix - I implemented what we thought we agreed on) and the other is not really a fix, just the addition of one implementer configuration (I removed the implementer because we didn't have its configuration). The clang cross-compile fixes are related, but those are the problem with that series, not the rework series.
>
>
在 2021/3/1 18:46, Juraj Linkeš 写道:
>
>
>> -----Original Message-----
>> From: Thomas Monjalon <thomas@monjalon.net>
>> Sent: Wednesday, February 24, 2021 1:10 PM
>> To: Juraj Linkeš <juraj.linkes@pantheon.tech>
>> Cc: oulijun <oulijun@huawei.com>; ferruh.yigit@intel.com; dev@dpdk.org;
>> linuxarm@openeuler.org
>> Subject: Re: [dpdk-dev] [PATCH 1/2] config/arm: fix Hisilicon kunpeng920 SoC
>> build
>>
>> 24/02/2021 12:55, Juraj Linkeš:
>>> From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
>>>> 24/02/2021 02:34, oulijun:
>>>>>
>>>>> 在 2021/2/10 17:41, Thomas Monjalon 写道:
>>>>>> 03/02/2021 13:46, Lijun Ou:
>>>>>>> From: Chengchang Tang <tangchengchang@huawei.com>
>>>>>>>
>>>>>>> Because of the '9ca2f16' have merged, the current hns3 pmd
>>>>>>> driver can not be directly complied on the kunpeng920 server board.
>>>>>>> Therefore, we need to fix the meson build.
>>>>>>> Besides, add kunpeng 920 SoC meson cross compile target.
>>>>>>>
>>>>>>> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
>>>>>>
>>>>>> Why do you think this patch is fixing the one above?
>>>>>> It looks just a new config, not a fix. Am I missing something?
>>>>>>
>>>>> I'm sorry to see you so late. In the meantime, we are celebrating
>>>>> the Spring Festival. This patch fixes the problem. If the patch is
>>>>> not added, the latest version cannot be directly compiled on the
>>>>> Kunpeng
>>>>> 930 server board.In addition, the cross compilation configuration file is
>> added.
>>>>
>>>> Please can you explain what was removed which breaks your compilation?
>>>>
>>>
>>> I can explain what's changed and why we changed it.
>>>
>>> The previous behavior was that when an uknown implementer was found
>> (when we're building on an uknown build machine) we fell back to a generic
>> build.
>>> The current behavior is we raise an error when building on an unknown build
>> machine and inform the user about the generic build (there's an error in the
>> message, it should be -Dmachine=default instead of -Dmachine=generic). Lijun
>> came across this scenario, so he wants to add an implementer, but it is not a fix,
>> rather an addition that we wanted to encourage when we changed the
>> behavior. The change in behavior also has an additional benefit in that it notifies
>> the user that meson is not doing a tailored build for the build machine and the
>> only permissible build is the generic one.
>>
>> There were already many fixes for that rework.
>> Please check if there are other missing updates.
>>
>
> This is actually the first mistake that my testing missed. I tested that the message is properly emitted, but I didn't test the message after we extracted the default->generic rename patch. As a side note, we could address this issue with http://patches.dpdk.org/project/dpdk/patch/1613657555-17683-1-git-send-email-juraj.linkes@pantheon.tech/ - then we can leave the message in place as is (with -Dmachine=generic).
>
> I went through all of the patches again but I didn't find anything that needs addressing.
>
> As far as I'm aware, there were two other fixes for the series. One was a failure of communication (the native margs fix - I implemented what we thought we agreed on) and the other is not really a fix, just the addition of one implementer configuration (I removed the implementer because we didn't have its configuration). The clang cross-compile fixes are related, but those are the problem with that series, not the rework series.
>
Hi,
the patch
http://patches.dpdk.org/project/dpdk/patch/1613657555-17683-1-git-send-email-juraj.linkes@pantheon.tech/
will this patch be incorporated? We have realized this problem and fixed
it in the internal version.
>>
>>
>
Hi, all,
any comments for this patch?
Hope for your reply.
Thanks.
在 2021/3/5 9:36, oulijun 写道:
>
>
> 在 2021/3/1 18:46, Juraj Linkeš 写道:
>>
>>
>>> -----Original Message-----
>>> From: Thomas Monjalon <thomas@monjalon.net>
>>> Sent: Wednesday, February 24, 2021 1:10 PM
>>> To: Juraj Linkeš <juraj.linkes@pantheon.tech>
>>> Cc: oulijun <oulijun@huawei.com>; ferruh.yigit@intel.com; dev@dpdk.org;
>>> linuxarm@openeuler.org
>>> Subject: Re: [dpdk-dev] [PATCH 1/2] config/arm: fix Hisilicon
>>> kunpeng920 SoC
>>> build
>>>
>>> 24/02/2021 12:55, Juraj Linkeš:
>>>> From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
>>>>> 24/02/2021 02:34, oulijun:
>>>>>>
>>>>>> 在 2021/2/10 17:41, Thomas Monjalon 写道:
>>>>>>> 03/02/2021 13:46, Lijun Ou:
>>>>>>>> From: Chengchang Tang <tangchengchang@huawei.com>
>>>>>>>>
>>>>>>>> Because of the '9ca2f16' have merged, the current hns3 pmd
>>>>>>>> driver can not be directly complied on the kunpeng920 server board.
>>>>>>>> Therefore, we need to fix the meson build.
>>>>>>>> Besides, add kunpeng 920 SoC meson cross compile target.
>>>>>>>>
>>>>>>>> Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")
>>>>>>>
>>>>>>> Why do you think this patch is fixing the one above?
>>>>>>> It looks just a new config, not a fix. Am I missing something?
>>>>>>>
>>>>>> I'm sorry to see you so late. In the meantime, we are celebrating
>>>>>> the Spring Festival. This patch fixes the problem. If the patch is
>>>>>> not added, the latest version cannot be directly compiled on the
>>>>>> Kunpeng
>>>>>> 930 server board.In addition, the cross compilation configuration
>>>>>> file is
>>> added.
>>>>>
>>>>> Please can you explain what was removed which breaks your compilation?
>>>>>
>>>>
>>>> I can explain what's changed and why we changed it.
>>>>
>>>> The previous behavior was that when an uknown implementer was found
>>> (when we're building on an uknown build machine) we fell back to a
>>> generic
>>> build.
>>>> The current behavior is we raise an error when building on an
>>>> unknown build
>>> machine and inform the user about the generic build (there's an error
>>> in the
>>> message, it should be -Dmachine=default instead of
>>> -Dmachine=generic). Lijun
>>> came across this scenario, so he wants to add an implementer, but it
>>> is not a fix,
>>> rather an addition that we wanted to encourage when we changed the
>>> behavior. The change in behavior also has an additional benefit in
>>> that it notifies
>>> the user that meson is not doing a tailored build for the build
>>> machine and the
>>> only permissible build is the generic one.
>>>
>>> There were already many fixes for that rework.
>>> Please check if there are other missing updates.
>>>
>>
>> This is actually the first mistake that my testing missed. I tested
>> that the message is properly emitted, but I didn't test the message
>> after we extracted the default->generic rename patch. As a side note,
>> we could address this issue with
>> http://patches.dpdk.org/project/dpdk/patch/1613657555-17683-1-git-send-email-juraj.linkes@pantheon.tech/
>> - then we can leave the message in place as is (with -Dmachine=generic).
>>
>> I went through all of the patches again but I didn't find anything
>> that needs addressing.
>>
>> As far as I'm aware, there were two other fixes for the series. One
>> was a failure of communication (the native margs fix - I implemented
>> what we thought we agreed on) and the other is not really a fix, just
>> the addition of one implementer configuration (I removed the
>> implementer because we didn't have its configuration). The clang
>> cross-compile fixes are related, but those are the problem with that
>> series, not the rework series.
>>
> Hi,
> the patch
> http://patches.dpdk.org/project/dpdk/patch/1613657555-17683-1-git-send-email-juraj.linkes@pantheon.tech/
>
> will this patch be incorporated? We have realized this problem and fixed
> it in the internal version.
>>>
>>>
>>
> .
new file mode 100644
@@ -0,0 +1,19 @@
+[binaries]
+c = 'aarch64-linux-gnu-gcc'
+cpp = 'aarch64-linux-gnu-cpp'
+ar = 'aarch64-linux-gnu-gcc-ar'
+strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
+pcap-config = ''
+
+[host_machine]
+system = 'linux'
+cpu_family = 'aarch64'
+cpu = 'armv8-a'
+endian = 'little'
+
+[properties]
+implementer_id = '0x48'
+part_number = '0xd01'
+max_lcores = 128
+max_numa_nodes = 4
@@ -133,6 +133,25 @@ implementer_cavium = {
}
}
+implementer_hisilicon = {
+ 'description': 'Hisilicon',
+ 'flags': [
+ ['RTE_USE_C11_MEM_MODEL', true],
+ ['RTE_CACHE_LINE_SIZE', 128],
+ ['RTE_MAX_NUMA_NODES', 4]
+ ],
+ 'part_number_config': {
+ '0xd01': {
+ 'machine_args': ['-march=armv8.2-a+crypto',
+ '-mtune=tsv110'],
+ 'flag': [['RTE_MACHINE', '"kunpeng920"'],
+ ['RTE_MAX_LCORE', 128],
+ ['RTE_ARM_FEATURE_ATOMICS', true]
+ ]
+ }
+ }
+}
+
implementer_ampere = {
'description': 'Ampere Computing',
'flags': [
@@ -176,6 +195,7 @@ implementers = {
'generic': implementer_generic,
'0x41': implementer_arm,
'0x43': implementer_cavium,
+ '0x48': implementer_hisilicon,
'0x50': implementer_ampere,
'0x56': implementer_marvell,
'dpaa': implementer_dpaa
@@ -197,6 +197,7 @@ you may use various combinations of implementer/part number::
'generic': Generic armv8
'0x41': Arm
'0x43': Cavium
+ '0x48': Hisilicon
'0x50': Ampere Computing
'0x56': Marvell ARMADA
'dpaa': NXP DPAA
@@ -219,6 +220,9 @@ you may use various combinations of implementer/part number::
'0xaf': thunderx2t99
'0xb2': octeontx2
+ Supported part_numbers for 0x48:
+ '0xd01': kunpeng920
+
Supported part_numbers for 0x50:
'0x0': emag