24/07/2020 15:48, Parav Pandit: > Hi Bruce, > > > From: Bruce Richardson <bruce.richard...@intel.com> > > Sent: Friday, July 24, 2020 4:37 PM > > > > On Thu, Jul 23, 2020 at 11:09:03PM +0300, Parav Pandit wrote: > > > From: Thomas Monjalon <tho...@monjalon.net> > > > > > > Drivers dependencies are evaluated in the order defined per their > > > parent directory (also called class). > > > This strict ordering prevent from having 2 different drivers of the > > > same class with different dependencies ordering. > > > This problem occurs if drivers/common/mlx5 depends on drivers/bus/pci, > > > while drivers/bus/dpaa depends on drivers/common/dpaax. > > > Having a strict ordering between directories bus and common is too > > > much restrictive. > > > > > > That's why it is made possible to have a more fine-grain directory > > > list, adding a driver sub-directory in the list. > > > In this case, the isolated driver must be removed from its class list, > > > and added directly in drivers/meson.build. > > > Also, the per-class variables must be duplicated in the isolated > > > driver, because the call "subdir(class)" is skipped in the isolated > > > driver case. > > > > > > Signed-off-by: Thomas Monjalon <tho...@monjalon.net> > > > > The commit log above has some strange word-wrapping, and occasionally > > strange phrasing. I think it could be slightly reworded, perhaps as: > > > I updated the commit log as you suggested below along with RB, ack tag. > Thank you. > > > Drivers dependencies are evaluated in the order defined per their parent > > directory (also called class). This strict ordering prevents from us
Is "from us" too much? > > from having pairs of drivers from two classes with different dependency > > ordering. For example, if the mlx5 common code depends on the pci bus > > driver, while the dpaax common code is itself a dependency of the dpaa > > bus driver. Having a strict ordering between directories bus and common > > is too restrictive, as processing either common drivers or bus drivers > > first leads us to missing dependencies in this scenario. > > > > This patch makes it possible to have a more fine-grain directory list, > > adding a specific driver sub-directory in the top-level drivers > > subdirectory list. In this case, the isolated driver must also be removed > > from its class list, and the per-class variables must be duplicated in > > the isolated driver, because the call "subdir(class)" is skipped in the > > isolated driver case. > > > > > > Apart from that, I think this is a good idea to give us some flexibility in > > managing driver ordering which should help other drivers too - perhaps QAT? > > Ideally, though, I'd like if we can limit the flexible ordering to *only* > > common > > code, in which case we could move the per-class variables for common to the > > top-level to prevent duplication, and maybe even get rid of > > common/meson.build completely. That, however, will depend on how much > > this feature gets used and by whom. For now it is used only to have common/mlx5 isolated of the rest of common drivers, as an exception. I think it is good to keep common/meson.build until there are more exceptions than the rest.