Regenerated AI review.

Applied to main (04d091fe4c).  24/24 conflicts in the release notes
context and needs a rebase.  All 24 commits build with -Dwerror=true
(gcc 13.3, x86) for bus/dpaa, common/dpaax, mempool/dpaa, net/dpaa,
crypto/dpaa_sec, dma/dpaa and event/dpaa.  Not built for arm64.

The v16 errors are fixed: the mempool destructor no longer frees EAL
memory, and the O/H port can now be enabled (bus name) and reached
(devargs lookup, "oldev1" parsed).  Also resolved: bman_pool_max is
clamped, a CGR is deleted when its FQ init fails, the byte-count
shortcut is gone, the FQRN wait is bounded, the fq info ioctl moved to
dev_start, OL probe rejects a secondary, the ioctl helpers return
-errno, the VSP ID is bounded before first use, the dma/dpaa param
string no longer has an #ifdef inside the macro, and the FMC parse log
levels are fixed.

Errors
------

Patch 15/24: dma/dpaa: add devargs for SG and errata workaround

  None of the dma/dpaa devargs can be passed.  The documented form is

      -a dpaa_bus:dpaa_qdma-1,dpaa_dma_sg_disable=1

  but rte_dpaa_bus_parse() only accepts fmX-macY, fmX-ohY, fmX-onicY,
  dpaa_sec-N and oldevN.  "dpaa_qdma-1" falls through to the fm%u-mac%u
  sscanf() and is rejected, so rte_devargs_parse() fails with "failed
  to parse device" and EAL init aborts.  The device itself is created
  as "dpaa_qdma-%d" in dpaa_create_device_list().

  This is pre-existing for dpaa_dma_err_check, but this patch adds
  three more devargs that cannot be used.  Accept dpaa_qdma-N in
  rte_dpaa_bus_parse() in a separate patch:

      Fixes: a63c6426fdfd ("dma/dpaa: add option for error checks")
      Cc: [email protected]

  and test the new devargs end to end.

Warnings
--------

Patch 10/24: bus/dpaa: improve FQ shutdown with channel validation

  The last paragraph of the commit message still describes changes
  that are not in the diff.  Nothing selects "the correct portal" for
  push-mode Rx queues; an FQ on another portal's dedicated channel now
  returns -EBUSY.  Nothing cleans up CGRID or other queue parameters.

Patch 14/24: drivers: release DPAA bpid on driver destructor

  The commit message still says to free rte_dpaa_bpid_info "from the
  destructor instead, once, at process teardown".  The code frees it
  nowhere, which is correct.  Update the message.

  The old dpaa_mbuf_free_pool() did

      rte_free(mp->pool_data);
      bp_info->bp = NULL;

  which writes after free, since bp_info == mp->pool_data.  That fix
  is buried in a feature patch.  Split it out with

      Fixes: 376fb49ecfca ("net/dpaa: prevent multiple mempool config")
      Cc: [email protected]

Patch 22/24: drivers: add offline (O/H) port device support

  "-a bus=dpaa_bus,drv_oldev=1" is an allowed devargs, so
  rte_devargs_add() switches the DPAA bus to RTE_BUS_SCAN_ALLOWLIST.
  Every fmX-macY port not also given with -a is then ignored, and
  oldev1 itself is only probed if "-a dpaa_bus:oldev1,..." is given
  too.  dpaa.rst shows the two as independent examples.  Document
  that both are required and that ports must be listed, or use a
  mechanism that does not flip the bus to allowlist mode.

Info
----

Series: patches 02 and 03 end a commit message sentence with ":"
  followed by nothing ("returns -ENOMEM directly:", "in
  dpaa_dev_init():").  The quoted code was lost.

Patch 08/24: The stated motivation is push-mode Rx queue shutdown,
  but nothing in the series shuts down a net/dpaa Rx queue by
  descriptor.  The callers of qman_shutdown_fq(fq) are dpaa_sec and
  oldev, and after patch 10 a push-mode FQ on another portal returns
  -EBUSY anyway.

Patch 09/24: With the byte-count shortcut gone, every CGR costs a
  full FQID space scan.  qman_pending_fq_by_cgrid() runs to -ERANGE
  even after it finds the port's own FQ, and close does this
  nb_rx_queues + MAX_DPAA_CORES times per port.  One pass matching
  all of the port's CGRIDs would do.  The "still alive?" debug message
  also fires for the port's own FQs, since close never shuts them
  down before this point.

Patch 14/24:
  - RTE_PRIORITY_104 is a driver-local define in the RTE_ namespace.
  - The new comment in dpaa_mbuf_free_pool() calls the array both
    "shared (hugepage) memory" and "a fixed-size per-process table".

Patch 18/24: A drv_sh_if_name value longer than IFNAMSIZ - 1 makes
  rte_strscpy() fail, and dpaa_eth_dev_configure() silently falls back
  to the fmX-macY name.  Reject it or at least log it.

Patch 22/24:
  - rte_dpaa_bus_oldev_enabled() is exported and has no users.
  - rte_pmd_dpaa_oldev.h is not in doc/api/doxy-api-index.md.

Patch 24/24:
  - The FMCLESS default Rx queue count change in patch 17
    (rte_lcore_count() to DPAA_MAX_NUM_PCD_QUEUES) is user visible and
    not in the release notes.
  - The new experimental rte_pmd_dpaa_ol_* API is not listed.

Pre-existing, not introduced here: in dpaa_dev_init() the "FMC
initializes failed" path does goto free_rx without setting ret, so
probe can succeed with no Rx queues.

Reply via email to