On Thu, Apr 10, 2025 at 11:21:37AM +0300, Leon Romanovsky wrote:
> On Tue, Apr 08, 2025 at 02:47:51PM +0200, Larysa Zaremba wrote:
> > From: Phani R Burra <[email protected]>
> > 
> > Libeth will now support control queue setup and configuration APIs.
> > These are mainly used for mailbox communication between drivers and
> > control plane.
> > 
> > Make use of the page pool support for managing controlq buffers.
> 
> <...>
> 
> >  libeth-y                   := rx.o
> >  
> > +obj-$(CONFIG_LIBETH_CP)            += libeth_cp.o
> > +
> > +libeth_cp-y                        := controlq.o
> 
> So why did you create separate module for it?
> Now you have pci -> libeth -> libeth_cp -> ixd, with the potential races 
> between ixd and libeth, am I right?
>

I am not sure what kind of races do you mean, all libeth modules themselves are 
stateless and will stay this way [0], all used data is owned by drivers.

As for the module separation, I think there is no harm in keeping it modular. 
We intend to use basic libeth (libeth_rx) in drivers that for sure have no use 
for libeth_cp. libeth_pci and libeth_cp separation is more arbitral, as we have 
no plans for now to use them separately.

Module dependencies are as follows:

libeth_rx and libeth_pci do not depend on other modules.
libeth_cp depends on both libeth_rx and libeth_pci.
idpf directly uses libeth_pci, libeth_rx and libeth_cp.
ixd directly uses libeth_cp and libeth_pci.

[0] 
https://lore.kernel.org/netdev/[email protected]/

> Thanks

Reply via email to