From: Stephen Hemminger <stephen@networkplumber.org>
To: Jiacheng Ye <yejiacheng4@h-partners.com>
Cc: dev@dpdk.org, Feifei Wang <wangfeifei40@huawei.com>,
Thomas Monjalon <thomas@monjalon.net>,
Anatoly Burakov <anatoly.burakov@intel.com>
Subject: Re: [PATCH v3 00/27] net/hinic3: add PMD features and fixes
Date: Mon, 19 Oct 2026 09:52:41 -0700 [thread overview]
Message-ID: <20261019095241.54d27257@phoenix.local> (raw)
In-Reply-To: <20261019151930.1572-1-yejiacheng4@h-partners.com>
On Mon, 19 Oct 2026 23:19:02 +0800
Jiacheng Ye <yejiacheng4@h-partners.com> wrote:
> This series fixes offload capability advertisement, cmdq/compact CQE
> configuration, and several defects found during review, and adds NIC
> type identification, FEC, CIR drop statistics, VF LAG/link state, COS
> mask/map, mbox recording, RSS hash configuration, compact CQE Rx/Tx
> paths, TSO segment expansion, Tx burst mode reporting, queue statistics,
> pseudo-header checksum, per-tile cmdq ops, SP560 NIC support, and device
> kvargs tunables.
>
> v3:
> - Move the ethertype-flow TCAM index leak fix out of the flow-refactor
> patch into its own patch with a Fixes tag and a stable Cc tag.
> - Set burst function pointers and tx_pkt_prepare for both primary and
> secondary processes, and select the Tx path on its own feature bit.
> - Zero the RQ/SQ context buffers and honour dp_intr_en for the STN CEQ
> attribute in compact CQE mode.
> - Return the number of Tx packets consumed instead of the doorbell
> count, and guard the Tx prefetch against overreading the array.
> - Validate device kvargs and reject values above the hardware field
> width; document the real defaults and units.
> - Reject mismatched queue depths and reset saved depths in
> dev_configure(), and size the TSO copy pool per port.
> - Report FEC capabilities per supported speed regardless of link state.
> - Route the private dump through fprintf() on the provided FILE*.
> - Derive the pseudo-header L4 protocol from the offload flags and fail
> shared or indirect mbufs; add Fixes and stable Cc tags.
> - Drop stable Cc tags where the Fixes target is not in an LTS release
> and remove dead code and unused definitions.
Still lots of AI feedback, biggest issue is the bisect break.
You should run semi-automated incremental builds on any large
patch series like this. CI does that.
Subject: Re: [PATCH 00/27] net/hinic3: fixes and new features
This is v3 of the series; please mark it as such in the subject, and
put a changelog in the cover letter so reviewers can see what changed.
Applies to main (26.11-rc1). Tip builds with -Dwerror=true. Most of
the v2 comments are addressed: Tx burst return value, prefetch, kvargs
error and bounds, secondary process burst setup, RQ/SQ context memset,
queue depth checks, per-port copy pool, priv_dump to FILE, TCAM leak
split out, Fixes/Cc tags.
Errors
======
Series: bisect broken at 20 through 26.
[PATCH 20/27] sets tx_pkt_prepare = hinic3_prep_pkts, which is not
defined until 27/27, and uses hinic3_xmit_pkts_compact_cqe, which
arrives in 22/27.
[PATCH 21/27] uses nic_dev->txq_depth, which is added in 23/27.
Every commit must build. Move 27/27 ahead of 20 (it is a Fixes: patch
anyway), select only hinic3_xmit_pkts in 20 and add the compact
choice in 22, and add txq_depth in 21 or move the pool sizing to 23.
[PATCH 08/27] net/hinic3: add SP230 Rx queue interrupt handling
On SP230 hinic3_init_rxq_intr() now runs the full Rx interrupt setup
even when intr_conf.rxq is 0. That path requires
rte_intr_cap_multiple(), so on igb_uio or uio_pci_generic dev_start
fails with -ENOTSUP for an application that never asked for
interrupts. It also creates eventfds and sets rxq->dp_intr_en = 1,
so the RQ context is programmed with the CEQ interrupt enabled.
Split the SP230 masking out of the interrupt setup:
if (!dev->data->dev_conf.intr_conf.rxq) {
if (HINIC3_IS_SP230_NIC(nic_dev))
return hinic3_sp230_mask_rxq_msix(dev);
return 0;
}
where the helper only programs coalescing/auto-mask on vectors
i + HINIC3_RX_VEC_START, with no efd, no intr_vec and no dp_intr_en.
[PATCH 21/27] net/hinic3: expand TSO from 127 to 255 segments
hinic3_copy_tx_mbuf_multi() always copies from the start of the source
segment:
rte_memcpy((uint8_t *)cur_mbuf->buf_addr + copy_offset,
(uint8_t *)mbuf->buf_addr + mbuf->data_off,
copy_size);
When a source segment spans two copy mbufs, the second copy repeats
the first bytes of that segment, and the packet goes out corrupted.
This was also in v2; I missed it there.
uint32_t src_off = mbuf->data_len - remaining_len;
rte_memcpy((uint8_t *)cur_mbuf->buf_addr + copy_offset,
rte_pktmbuf_mtod_offset(mbuf, uint8_t *, src_off),
copy_size);
Warnings
========
[PATCH 18/27] net/hinic3: add SP560 NIC type identification and
handling
The STN op still forces EN=1 (interrupt disabled) with SW compact CQE,
and the commit marks Rx interrupt as "P". An application that sets
intr_conf.rxq still gets success from configure and start, and then
never gets an interrupt. Reject it:
if (dev->data->dev_conf.intr_conf.rxq &&
nic_dev->config.rx_cqe_compact_en &&
HINIC3_SUPPORT_RX_SW_COMPACT_CQE(nic_dev))
return -ENOTSUP;
[PATCH 21/27] net/hinic3: expand TSO from 127 to 255 segments
The copy pool is now num_sqs * txq_depth 4 KB mbufs, created at every
dev_start. With 16 queues of 4096 descriptors that is about 280 MB of
hugepage memory per port, for a slow path that only fires on packets
with too many segments. Cap it, for example:
depth = nic_dev->num_sqs * RTE_MIN(nic_dev->txq_depth, 256u);
[PATCH 27/27] net/hinic3: add pseudo-header checksum calculation
For IPv6 the L4 offset still comes from walking extension headers,
while the descriptor (hinic3_get_tx_offload) uses mbuf->l3_len. When
the two disagree, software writes the checksum in one place and the
hardware computes it at another. mbuf->l3_len is the application's
contract and includes extension headers; use it, and drop
hinic3_get_ipv6_len_proto().
Info
====
[PATCH 27/27] "l4_proto = (uint32_t)proto << 24" is only correct on
little endian. The old rte_cpu_to_be_16(proto) was fine, since the
ones' complement sum ignores word position. Use
rte_cpu_to_be_32(proto).
[PATCH 27/27] Has Cc: stable, but it depends on NIC type
identification from 07/27. Put it right after 07, so the stable
backport is the pair.
next prev parent reply other threads:[~2026-10-19 16:52 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-10 14:44 [PATCH v1 00/17] net/hinic3: add PMD features and fixes Jiacheng Ye
2026-10-10 14:44 ` [PATCH v1 01/17] net/hinic3: fix offload and cmdq/compact CQE config Jiacheng Ye
2026-10-10 14:44 ` [PATCH v1 02/17] net/hinic3: add CIR drop statistics and VF LAG support Jiacheng Ye
2026-10-10 14:44 ` [PATCH v1 03/17] net/hinic3: add FEC mode get/set and capability support Jiacheng Ye
2026-10-10 14:44 ` [PATCH v1 04/17] net/hinic3: add mbox message recording and debug dump Jiacheng Ye
2026-10-10 14:44 ` [PATCH v1 05/17] net/hinic3: add COS mask and COS map support Jiacheng Ye
2026-10-10 14:44 ` [PATCH v1 06/17] net/hinic3: add VF link state and promiscuous support Jiacheng Ye
2026-10-10 14:44 ` [PATCH v1 07/17] net/hinic3: convert cmdq ops to static global variables Jiacheng Ye
2026-10-10 14:44 ` [PATCH v1 08/17] net/hinic3: update RSS hash type configuration Jiacheng Ye
2026-10-10 14:45 ` [PATCH v1 09/17] net/hinic3: refactor flow rule parsing Jiacheng Ye
2026-10-10 14:45 ` [PATCH v1 10/17] net/hinic3: add SP560 NIC type identification and handling Jiacheng Ye
2026-10-10 14:45 ` [PATCH v1 11/17] net/hinic3: add device kvargs parameters support Jiacheng Ye
2026-10-10 14:45 ` [PATCH v1 12/17] net/hinic3: add compact CQE Rx path and ptype table Jiacheng Ye
2026-10-10 14:45 ` [PATCH v1 13/17] net/hinic3: expand TSO from 127 to 255 segments Jiacheng Ye
2026-10-10 14:45 ` [PATCH v1 14/17] net/hinic3: split Tx burst function for compact CQE support Jiacheng Ye
2026-10-10 14:45 ` [PATCH v1 15/17] net/hinic3: add pseudo-header checksum calculation Jiacheng Ye
2026-10-10 14:45 ` [PATCH v1 16/17] net/hinic3: add per-tile prefetch/drop/CEQ cmdq ops Jiacheng Ye
2026-10-10 14:45 ` [PATCH v1 17/17] net/hinic3: add mbox count telemetry support Jiacheng Ye
2026-10-10 18:30 ` [PATCH v1 00/17] net/hinic3: add PMD features and fixes Stephen Hemminger
2026-10-14 14:39 ` jiachengye_123
2026-10-14 15:08 ` [PATCH v2 00/26] " Jiacheng Ye
2026-10-14 15:08 ` [PATCH v2 01/26] net/hinic3: fix SP230 VF PCI device ID Jiacheng Ye
2026-10-14 15:08 ` [PATCH v2 02/26] net/hinic3: fix double removal in ethertype flow destroy Jiacheng Ye
2026-10-14 15:08 ` [PATCH v2 03/26] net/hinic3: fix VXLAN VNI spec and mask write Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 04/26] net/hinic3: fix vport enable null dereference Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 05/26] net/hinic3: attach ethdev and set ops in secondary process Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 06/26] net/hinic3: add NIC type identification Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 07/26] net/hinic3: fix offload and cmdq/compact CQE config Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 08/26] net/hinic3: add CIR drop statistics and VF LAG support Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 09/26] net/hinic3: add FEC mode get/set and capability support Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 10/26] net/hinic3: add mbox message recording and debug dump Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 11/26] net/hinic3: add COS mask and COS map support Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 12/26] net/hinic3: add VF link state and promiscuous support Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 13/26] net/hinic3: convert cmdq ops to static global variables Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 14/26] net/hinic3: update RSS hash type configuration Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 15/26] net/hinic3: refactor flow rule parsing Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 16/26] net/hinic3: add SP560 NIC type identification and handling Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 17/26] net/hinic3: add device kvargs parameters support Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 18/26] net/hinic3: add compact CQE Rx path and ptype table Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 19/26] net/hinic3: expand TSO from 127 to 255 segments Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 20/26] net/hinic3: split Tx burst function for compact CQE support Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 21/26] net/hinic3: ensure queue depth and state consistency Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 22/26] net/hinic3: add SP230 VF software statistics Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 23/26] net/hinic3: add Tx burst mode get Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 24/26] net/hinic3: expose Tx queue copied-mbuf statistics Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 25/26] net/hinic3: add pseudo-header checksum calculation Jiacheng Ye
2026-10-14 15:09 ` [PATCH v2 26/26] net/hinic3: add per-tile prefetch/drop/CEQ cmdq ops Jiacheng Ye
2026-10-14 17:13 ` [PATCH v2 00/26] net/hinic3: add PMD features and fixes Stephen Hemminger
2026-10-19 15:19 ` [PATCH v3 00/27] " Jiacheng Ye
2026-10-19 15:19 ` [PATCH 01/27] net/hinic3: fix SP230 VF PCI device ID Jiacheng Ye
2026-10-19 15:19 ` [PATCH 02/27] net/hinic3: fix double removal in ethertype flow destroy Jiacheng Ye
2026-10-19 15:19 ` [PATCH 03/27] net/hinic3: fix TCAM index leak on ethertype flow set Jiacheng Ye
2026-10-19 15:19 ` [PATCH 04/27] net/hinic3: fix VXLAN VNI spec and mask write Jiacheng Ye
2026-10-19 15:19 ` [PATCH 05/27] net/hinic3: fix vport enable null dereference Jiacheng Ye
2026-10-19 15:19 ` [PATCH 06/27] net/hinic3: attach ethdev and set ops in secondary process Jiacheng Ye
2026-10-19 15:19 ` [PATCH 07/27] net/hinic3: add NIC type identification Jiacheng Ye
2026-10-19 15:19 ` [PATCH 08/27] net/hinic3: add SP230 Rx queue interrupt handling Jiacheng Ye
2026-10-19 15:19 ` [PATCH 09/27] net/hinic3: fix offload and cmdq/compact CQE config Jiacheng Ye
2026-10-19 15:19 ` [PATCH 10/27] net/hinic3: add CIR drop statistics and VF LAG support Jiacheng Ye
2026-10-19 15:19 ` [PATCH 11/27] net/hinic3: add FEC mode get/set and capability support Jiacheng Ye
2026-10-19 15:19 ` [PATCH 12/27] net/hinic3: add mbox message recording and debug dump Jiacheng Ye
2026-10-19 15:19 ` [PATCH 13/27] net/hinic3: add COS mask and COS map support Jiacheng Ye
2026-10-19 15:19 ` [PATCH 14/27] net/hinic3: add VF link state and promiscuous support Jiacheng Ye
2026-10-19 15:19 ` [PATCH 15/27] net/hinic3: convert cmdq ops to static global variables Jiacheng Ye
2026-10-19 15:19 ` [PATCH 16/27] net/hinic3: update RSS hash type configuration Jiacheng Ye
2026-10-19 15:19 ` [PATCH 17/27] net/hinic3: refactor flow rule parsing Jiacheng Ye
2026-10-19 15:19 ` [PATCH 18/27] net/hinic3: add SP560 NIC type identification and handling Jiacheng Ye
2026-10-19 15:19 ` [PATCH 19/27] net/hinic3: add device kvargs parameters support Jiacheng Ye
2026-10-19 15:19 ` [PATCH 20/27] net/hinic3: add compact CQE Rx path and ptype table Jiacheng Ye
2026-10-19 15:19 ` [PATCH 21/27] net/hinic3: expand TSO from 127 to 255 segments Jiacheng Ye
2026-10-19 15:19 ` [PATCH 22/27] net/hinic3: split Tx burst function for compact CQE support Jiacheng Ye
2026-10-19 15:19 ` [PATCH 23/27] net/hinic3: ensure queue depth and state consistency Jiacheng Ye
2026-10-19 15:19 ` [PATCH 24/27] net/hinic3: add SP230 VF software statistics Jiacheng Ye
2026-10-19 15:19 ` [PATCH 25/27] net/hinic3: add Tx burst mode get Jiacheng Ye
2026-10-19 15:19 ` [PATCH 26/27] net/hinic3: expose Tx queue copied-mbuf statistics Jiacheng Ye
2026-10-19 15:19 ` [PATCH 27/27] net/hinic3: add pseudo-header checksum calculation Jiacheng Ye
2026-10-19 16:52 ` Stephen Hemminger [this message]
2026-10-23 15:56 ` [PATCH v3 00/27] net/hinic3: add PMD features and fixes jiachengye_123
2026-10-23 15:57 ` [PATCH v4 " Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 01/27] net/hinic3: fix SP230 VF PCI device ID Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 02/27] net/hinic3: fix double removal in ethertype flow destroy Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 03/27] net/hinic3: fix TCAM index leak on ethertype flow set Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 04/27] net/hinic3: fix VXLAN VNI spec and mask write Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 05/27] net/hinic3: fix vport enable null dereference Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 06/27] net/hinic3: attach ethdev and set ops in secondary process Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 07/27] net/hinic3: add NIC type identification Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 08/27] net/hinic3: fix pseudo-header checksum calculation Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 09/27] net/hinic3: add SP230 Rx queue interrupt handling Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 10/27] net/hinic3: fix offload and cmdq/compact CQE config Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 11/27] net/hinic3: add CIR drop statistics and VF LAG support Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 12/27] net/hinic3: add FEC mode get/set and capability support Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 13/27] net/hinic3: add mbox message recording and debug dump Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 14/27] net/hinic3: add COS mask and COS map support Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 15/27] net/hinic3: add VF link state and promiscuous support Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 16/27] net/hinic3: convert cmdq ops to static global variables Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 17/27] net/hinic3: update RSS hash type configuration Jiacheng Ye
2026-10-23 15:57 ` [PATCH v4 18/27] net/hinic3: refactor flow rule parsing Jiacheng Ye
2026-10-23 15:58 ` [PATCH v4 19/27] net/hinic3: add SP560 NIC type identification and handling Jiacheng Ye
2026-10-23 15:58 ` [PATCH v4 20/27] net/hinic3: add device kvargs parameters support Jiacheng Ye
2026-10-23 15:58 ` [PATCH v4 21/27] net/hinic3: add compact CQE Rx path and ptype table Jiacheng Ye
2026-10-23 15:58 ` [PATCH v4 22/27] net/hinic3: ensure queue depth and state consistency Jiacheng Ye
2026-10-23 15:58 ` [PATCH v4 23/27] net/hinic3: expand TSO from 127 to 255 segments Jiacheng Ye
2026-10-23 15:58 ` [PATCH v4 24/27] net/hinic3: split Tx burst function for compact CQE support Jiacheng Ye
2026-10-23 15:58 ` [PATCH v4 25/27] net/hinic3: add SP230 VF software statistics Jiacheng Ye
2026-10-23 15:58 ` [PATCH v4 26/27] net/hinic3: add Tx burst mode get Jiacheng Ye
2026-10-23 15:58 ` [PATCH v4 27/27] net/hinic3: expose Tx queue copied-mbuf statistics Jiacheng Ye
2026-10-23 16:21 ` [PATCH v4 00/27] net/hinic3: add PMD features and fixes Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261019095241.54d27257@phoenix.local \
--to=stephen@networkplumber.org \
--cc=anatoly.burakov@intel.com \
--cc=dev@dpdk.org \
--cc=thomas@monjalon.net \
--cc=wangfeifei40@huawei.com \
--cc=yejiacheng4@h-partners.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox