Hi David & Changpeng, > -----Original Message----- > From: Liu, Changpeng <changpeng....@intel.com> > Sent: Friday, October 8, 2021 3:45 PM > To: David Marchand <david.march...@redhat.com>; Harris, James R > <james.r.har...@intel.com> > Cc: Xia, Chenbo <chenbo....@intel.com>; dev@dpdk.org; c...@dpdk.org; Aaron > Conole <acon...@redhat.com>; dpdklab <dpdk...@iol.unh.edu>; Zawadzki, Tomasz > <tomasz.zawad...@intel.com>; alexey...@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 > > > -----Original Message----- > > From: David Marchand <david.march...@redhat.com> > > Sent: Friday, October 8, 2021 3:08 PM > > To: Liu, Changpeng <changpeng....@intel.com> > > Cc: Xia, Chenbo <chenbo....@intel.com>; Harris, James R > > <james.r.har...@intel.com>; dev@dpdk.org; c...@dpdk.org; Aaron Conole > > <acon...@redhat.com>; dpdklab <dpdk...@iol.unh.edu>; Zawadzki, Tomasz > > <tomasz.zawad...@intel.com>; alexey...@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 <changpeng....@intel.com> > 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