Re: [PATCH iwl-next 05/14] libeth: add control queue support

Larysa Zaremba
2025-04-10T10:45:37Z

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 <phani.r.burra@intel.com>
> >
> > 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/61bfa880-6a88-4eac-bab7-040bf72a11ef@intel.com/

> Thanks