Right I pulled it back

On Fri, Jul 3, 2026, 11:56 Maxime Leroy <[email protected]> wrote:

> Hi Stephen,
>
> Le ven. 3 juil. 2026, 18:03, Stephen Hemminger <[email protected]>
> a écrit :
>
>> On Tue, 30 Jun 2026 16:43:23 +0200
>> Maxime Leroy <[email protected]> wrote:
>>
>> > This series lets a dpaa2 worker sleep on a queue's data-availability
>> > notification instead of busy-polling, exposed through the generic
>> > rte_eth_dev_rx_intr_* API (NAPI-style: poll while frames keep coming,
>> > arm the interrupt and sleep when the queue runs dry).
>> >
>> > Why it is not a trivial .rx_queue_intr_enable
>> > ----------------------------------------------
>> > A worker wakes on its software portal's DQRI, which fires when the
>> > portal's DQRR holds frames. The default dpaa2 Rx burst pulls frames
>> > from the FQ with a volatile dequeue and cannot be interrupt-driven; to
>> > wake on the DQRI the FQ must instead be pushed to the portal's DQRR.
>> >
>> > The natural dpni_set_queue with a notification destination would have to
>> > target the worker's portal, but that portal is only known once a worker
>> > affines, after dev_start, and that MC command holds the global MC lock
>> > long enough to wedge the firmware while traffic runs. So the bind cannot
>> > be done late, against the polling lcore.
>> >
>> > Design
>> > ------
>> > Each Rx FQ is bound to its own DPCON channel, statically, at dev_start
>> > while the dpni is still disabled (no knowledge of the polling lcore). A
>> > worker later subscribes its own ethrx portal to the channel and arms the
>> > DQRI in rx_queue_intr_enable, a one-shot per-portal op, never the
>> wedging
>> > set_queue. On a wakeup the worker drains each of its queues by a
>> volatile
>> > dequeue on the queue's own DPCON channel (one FQ per channel, so no
>> > per-frame demux); it polls all its queues, the same scheduling contract
>> > as plain DPDK polling. A queue can be re-homed to another lcore at
>> > runtime with no set_queue and no port stop.
>> >
>> > This reuses the event PMD's pushed/DQRR model but with one DPCON per FQ
>> > and static affinity (no QBMan scheduling), so the DPCON allocator is
>> > moved from the event driver to the fslmc bus and shared.
>> >
>> > Patch 1 disables the DPCON channel before closing it, an event/dpaa2 fix
>> > the shared allocator depends on. Patches 2 to 4 move the DPCON allocator
>> > to the fslmc bus, make the portal DQRI epoll optional, and add the
>> > dpcon_set_notification MC command. Patch 5 adds the interrupt support
>> > proper; patch 6 pins each DPIO's MSI to the lcore that arms it, a
>> latency
>> > optimisation.
>> >
>> > Tested on LX2160A (lx2160acex7).
>> >
>> > v3:
>> > - Reworked the Rx drain. Both versions bind one DPCON per FQ, but v2
>> >   drained the shared portal DQRR and demuxed frames to their FQ by
>> >   fqd_ctx, stashing foreign frames in a per-queue FIFO. v3 drains each
>> >   queue with a volatile dequeue on its own channel (one FQ per channel),
>> >   which drops the demux and stash code.
>> > - Dropped the rx_queue_count fix; it is applied to main.
>> > - Dropped the software VLAN strip patch; an independent net/dpaa2
>> cleanup,
>> >   sent standalone and now applied to next-net.
>> > - Dropped the Depends-on: the ethdev fast-path ops fix is now in main.
>> > - Split the dpcon_set_notification MC command into its own patch.
>> > - Added an event/dpaa2 fix to disable the DPCON channel before close,
>> >   needed once the allocator is shared.
>> > - Dropped the DQRI holdoff-tuning patch; the immediate-DQRI holdoff is
>> now
>> >   set inline in the arm path.
>> > - Added a patch reusing the event driver's MSI-affinity helper (exposed
>> >   from its RTE_EVENT_DPAA2 guard) to pin the portal MSI to the lcore
>> that
>> >   arms it, so a CDAN wake lands on the worker's own core.
>> >
>> > v2:
>> > - Dropped the RSS RETA patch, an independent net/dpaa2 change the
>> >   interrupt path does not require; it will be sent as its own series.
>> > - Dropped the ethdev fast-path ops fix; it is now a standalone series.
>> > - Dropped the eal/interrupts -EEXIST fix, applied to main by David
>> >   Marchand.
>> > - Declared qbman_swp_interrupt_set_inhibit and qbman_swp_dqrr_size
>> >   __rte_internal (David Marchand).
>> > - Minor formatting cleanup in the Rx interrupt setup.
>> >
>> > Maxime Leroy (6):
>> >   event/dpaa2: disable channel before closing it
>> >   bus/fslmc: move DPCON management from event driver to bus
>> >   bus/fslmc/dpio: make the portal DQRI epoll optional
>> >   bus/fslmc/mc: implement dpcon_set_notification
>> >   net/dpaa2: support Rx queue interrupts
>> >   net/dpaa2: pin Rx queue interrupt to the polling core
>> >
>> >  doc/guides/nics/dpaa2.rst                     |  21 +
>> >  doc/guides/nics/features/dpaa2.ini            |   1 +
>> >  doc/guides/rel_notes/release_26_07.rst        |   1 +
>> >  drivers/bus/fslmc/mc/dpcon.c                  |  31 ++
>> >  drivers/bus/fslmc/mc/fsl_dpcon.h              |  18 +
>> >  drivers/bus/fslmc/meson.build                 |   1 +
>> >  .../fslmc/portal}/dpaa2_hw_dpcon.c            |  17 +-
>> >  drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      | 112 ++++--
>> >  drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  12 +
>> >  drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  12 +
>> >  .../fslmc/qbman/include/fsl_qbman_portal.h    |   5 +
>> >  drivers/bus/fslmc/qbman/qbman_portal.c        |   5 +
>> >  drivers/event/dpaa2/dpaa2_eventdev.h          |   3 -
>> >  drivers/event/dpaa2/meson.build               |   1 -
>> >  drivers/net/dpaa2/dpaa2_ethdev.c              | 372 +++++++++++++++++-
>> >  drivers/net/dpaa2/dpaa2_ethdev.h              |   4 +
>> >  drivers/net/dpaa2/dpaa2_rxtx.c                | 104 +++--
>> >  17 files changed, 649 insertions(+), 71 deletions(-)
>> >  rename drivers/{event/dpaa2 => bus/fslmc/portal}/dpaa2_hw_dpcon.c (88%)
>> >
>> >
>> > base-commit: 030328f5f920a87dabde54dacd4f5ac411ddcac9
>>
>> Looks good, applied to net-next
>
>
> Thanks for the merge.
>
> But this patchset have not been acked by Hemant. Right now, Hemant have
> asked some fixes on this serie. Hemant also said it needs some time to test
> it.
>
>

Reply via email to