Re: [dpdk-dev] [PATCH v2 0/7] Removal of PCI bus ABIs
From: Xia, Chenbo <hidden>
Date: 2021-10-11 06:59:08
Hi David & Changpeng,
-----Original Message----- From: Liu, Changpeng <redacted> Sent: Friday, October 8, 2021 3:45 PM To: David Marchand <redacted>; Harris, James R [off-list ref] Cc: Xia, Chenbo <redacted>; dev@dpdk.org; ci@dpdk.org; Aaron Conole [off-list ref]; dpdklab [off-list ref]; Zawadzki, Tomasz [off-list ref]; alexeymar@mellanox.com Subject: RE: [dpdk-dev] [PATCH v2 0/7] Removal of PCI bus ABIs Thanks, I have worked with Chenbo to address this issue before. After enable the `ALLOW_INTERNAL_API` option, it works now with SPDK. Another issue raised by Jim Harris is that for distro packaged DPDK, since this option isn't enabled by default, this will not allow SPDK to use the distro packaged DPDK after this release.
I think for this problem, we have two options: enable driver sdk by default or let OSV configure the option when building distros. I'm fine with either option. @David, What do you think? Thanks, Chenbo
quoted
-----Original Message----- From: David Marchand <redacted> Sent: Friday, October 8, 2021 3:08 PM To: Liu, Changpeng <redacted> Cc: Xia, Chenbo <redacted>; Harris, James R [off-list ref]; dev@dpdk.org; ci@dpdk.org; Aaron Conole [off-list ref]; dpdklab [off-list ref]; Zawadzki, Tomasz [off-list ref]; alexeymar@mellanox.com Subject: Re: [dpdk-dev] [PATCH v2 0/7] Removal of PCI bus ABIs Hello, On Fri, Oct 8, 2021 at 8:15 AM Liu, Changpeng [off-list ref]wrote:quoted
quoted
I tried the above DPDK patches, and got the following errors: pci.c:115:7: error: call to ‘rte_pci_read_config’ declared with attributeerror:quoted
Symbol is not public ABIquoted
115 | rc = rte_pci_read_config(dev->dev_handle, value, len, offset); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pci.c: In function ‘cfg_write_rte’: pci.c:125:7: error: call to ‘rte_pci_write_config’ declared with attributeerror:quoted
Symbol is not public ABIquoted
125 | rc = rte_pci_write_config(dev->dev_handle, value, len, offset); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pci.c: In function ‘register_rte_driver’: pci.c:375:2: error: call to ‘rte_pci_register’ declared with attributeerror:quoted
Symbol is not public ABIquoted
375 | rte_pci_register(&driver->driver);I should have got this warning... but compilation passed fine for me. Happy you tested it.quoted
We may use the new added API to replace rte_pci_write_config andrte_pci_read_config, but SPDKquoted
do require rte_pci_register().Since SPDK has a PCI driver, you'll need to compile code that calls those PCI driver internal API with ALLOW_INTERNAL_API defined. You can probably add a #define ALLOW_INTERNAL_API first thing (it's important to have it defined before including any dpdk header) in pci.c Another option, is to add it to lib/env_dpdk/env.mk:ENV_CFLAGS = $(DPDK_INC) -DALLOW_EXPERIMENTAL_API. Can someone from SPDK take over this and sync with Chenbo? Thanks. -- David Marchand