06/05/2021 17:34, Bruce Richardson: > On Thu, May 06, 2021 at 04:27:03PM +0100, Burakov, Anatoly wrote: > > On 06-May-21 4:09 PM, Bruce Richardson wrote: > > > If after a bus scan, there are no devices using a particular bus, then > > > that bus should not be taken into account when deciding whether DPDK > > > should be run in VA or PA addressing mode. This becomes an issue when > > > the DSA bus driver code is used on a system without an IOMMU. The PCI > > > bus correctly reports that it only works in PA mode, while the DSA bus - > > > also correctly - reports that it works only in VA mode. The difference > > > is that there will be no devices found in a scan for the DSA bus, since > > > the kernel driver can only present those to userspace in the presence of > > > an IOMMU. > > > > > > While we could change DSA instance to always report that it does not > > > care about the addressing mode, this would imply that it could be used > > > with DPDK in PA mode which is not the case. Therefore, this patch > > > changes the driver to report DC (don't care) in the case where no > > > devices are present, and VA otherwise. > > > > > > NOTE: this addressing mode use of VA-only applies only in the case of > > > using DSA through the idxd kernel driver. The use of DSA though vfio-pci > > > is unaffected and works as with other PCI devices. > > > > > > Fixes: b7aaf417f936 ("raw/ioat: add bus driver for device scanning > > > automatically") > > > > > > Reported-by: Harry van Haaren <harry.van.haa...@intel.com> > > > Signed-off-by: Bruce Richardson <bruce.richard...@intel.com> > > > --- > > > > This would be a good opportunity to start a discussion on a "proper" fix for > > this, because while this hack is acceptable being so close to release, IMO > > we need a more general solution. Maybe a bus API reporting number of scanned > > devices would be nice to have, as EAL will then be able to ignore the > > opinion of those buses who don't have any devices. > > > > The "number of devices" is a bit of a fluid concept, as number of scanned > > devices may not be the same as number of *probed* devices, and there's also > > hotplug. However, i think that we can ignore all that, because we care about > > initialization only - any other issues can be addressed by forcing > > --iova-mode by the user, as we cannot really do anything about hotplug or > > devices that fail to probe. > > > > Thoughts? > > > Perhaps rather than just "number of devices" we should have buses report > whether they are relevant or not. For example, there are a number of > SoC-specific bus drivers in DPDK, which are presumably only relevant on > particular SoCs. Similarly here for the DSA bus, the presence of the > devices is a useful proxy for relevance - especially since it doesn't > support hotplug - but if we had a way to report relevance/non-relevance DSA > could just report itself as not-relevant in case where there is no IOMMU > enabled on the system, or when the "idxd" kernel driver is not present, for > example, and then have EAL skip even asking about PA/VA support
I think what you are describing is the same as reporting "don't care". Why do you consider it as a hack?