On Tue, 26 May 2026 at 11:03, David Marchand <[email protected]> wrote: > > On Tue, 26 May 2026 at 10:42, David Marchand <[email protected]> > wrote: > > > > This is a continuation of the work I started on the bus infrastructure, > > but this time, a lot of the changes were done by a AI "friend". > > It is still an unfinished topic as the current series focuses on probing > > only. The detaching/cleanup aspect is postponed to another release/time. > > > > My AI "friend" really *sucked* at git and at separating unrelated changes, > > so it required quite a lot of massage/polishing afterwards. > > But it seems good enough now for upstream submission. > > > > I would like to see this series merged in 26.07, so that we have enough > > time to stabilize it before the next LTS. > > And seeing how it affects drivers, it is probably better to merge it > > the sooner possible (so Thomas does not have to solve too many conflicts > > when pulling next-* subtrees after, especially wrt the last patch). > > > > > > This series refactors the DPDK bus infrastructure to consolidate common > > operations and reduce code duplication across all bus drivers. > > Currently, each bus implements its own specific device/driver lists, > > probe logic, and lookup functions. > > This series moves these common patterns into the EAL bus layer, > > providing generic helpers that all buses can use. > > > > The refactoring removes approximately 1,400 lines of duplicated code across > > the codebase while maintaining full functional equivalence. > > > > Key changes: > > - Factorize device and driver lists into struct rte_bus > > - Implement generic probe, device/driver lookup, and iteration helpers in > > EAL > > - Introduce conversion macros (RTE_BUS_DEVICE, RTE_BUS_DRIVER, > > RTE_CLASS_TO_BUS_DEVICE) > > to safely convert between generic and bus-specific types > > - Remove bus-specific device/driver types from most driver code > > - Move probe logic from individual buses to rte_bus_generic_probe() > > - Separate NXP-specific metadata from generic bus structures > > > > Benefits: > > - Significant code reduction (~1,400 lines removed) > > - Consistent behavior across all bus types > > - Simplified bus driver implementation > > - Easier maintenance and future enhancements > > > > The series is structured as a progressive refactoring: > > - Remove redundant checks and helpers (patches 1-5) > > - Add conversion macros and factorize lists (patches 6-8) > > - Consolidate device/driver lookup and iteration (patches 9-11) > > - Refactor probe logic (patches 12-15) > > - Remove bus-specific types from drivers (patches 16-23) > > > > Note on ABI: > > This series breaks the ABI for drivers (changes to rte_pci_device, > > rte_pci_driver, and similar structures for other buses). However, the DPDK > > ABI policy does not provide guarantees for driver-level interfaces. > > > > > > -- > > David Marchand > > > > Changes since v2: > > - fixed dma/idxd probing as reported by Bruce, > > - moved api_ver setting (from match to scan) in bus/uacce, > > - fixed transient bug in the vdev code (in the middle of the series). > > tl;dr the high level difference for bus/vdev between v2 and v3 == 0, > > - fixed doxygen, > > - enhanced API description, > > There was some hiccup from Red Hat SMTP when sending the series.. > hopefully my resending of the second half of the patches is good > enough. > At least, patchwork looks happy.
The sxe drivers got merged and pulled in main, so I'll prepare a v4 and send it probably tomorrow. Comments still welcome. -- David Marchand

