Thread (59 messages) 59 messages, 10 authors, 2022-07-11

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 attribute
error:
quoted
Symbol is not public ABI
quoted
  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 attribute
error:
quoted
Symbol is not public ABI
quoted
  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 attribute
error:
quoted
Symbol is not public ABI
quoted
  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 and
rte_pci_read_config, but SPDK
quoted
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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help