Hi David & Changpeng, > -----Original Message----- > From: Liu, Changpeng <[email protected]> > Sent: Friday, October 8, 2021 3:45 PM > To: David Marchand <[email protected]>; Harris, James R > <[email protected]> > Cc: Xia, Chenbo <[email protected]>; [email protected]; [email protected]; Aaron > Conole <[email protected]>; dpdklab <[email protected]>; Zawadzki, Tomasz > <[email protected]>; [email protected] > 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 > > > -----Original Message----- > > From: David Marchand <[email protected]> > > Sent: Friday, October 8, 2021 3:08 PM > > To: Liu, Changpeng <[email protected]> > > Cc: Xia, Chenbo <[email protected]>; Harris, James R > > <[email protected]>; [email protected]; [email protected]; Aaron Conole > > <[email protected]>; dpdklab <[email protected]>; Zawadzki, Tomasz > > <[email protected]>; [email protected] > > 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 <[email protected]> > wrote: > > > > > > 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: > > Symbol is not public ABI > > > 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: > > Symbol is not public ABI > > > 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: > > Symbol is not public ABI > > > 375 | rte_pci_register(&driver->driver); > > > > I should have got this warning... but compilation passed fine for me. > > Happy you tested it. > > > > > > > > We may use the new added API to replace rte_pci_write_config and > > rte_pci_read_config, but SPDK > > > 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

