From: Stephen Hemminger <stephen@networkplumber.org>
To: Dimon Zhao <dimon.zhao@nebula-matrix.com>
Cc: dev@dpdk.org, Kyo Liu <kyo.liu@nebula-matrix.com>,
Leon Yu <leon.yu@nebula-matrix.com>,
Sam Chen <sam.chen@nebula-matrix.com>
Subject: Re: [PATCH v9 04/17] net/nbl: add Channel layer definitions and implementation
Date: Thu, 18 Sep 2025 09:33:17 -0700 [thread overview]
Message-ID: <20250918093317.59c4cce2@hermes.local> (raw)
In-Reply-To: <20250917080843.646050-5-dimon.zhao@nebula-matrix.com>
On Wed, 17 Sep 2025 01:08:30 -0700
Dimon Zhao <dimon.zhao@nebula-matrix.com> wrote:
> +static void nbl_chan_recv_ack_msg(void *priv, uint16_t srcid, uint16_t msgid,
> + void *data, uint32_t data_len)
> +{
> + struct nbl_channel_mgt *chan_mgt = (struct nbl_channel_mgt *)priv;
> + union nbl_chan_info *chan_info = NULL;
> + struct nbl_chan_waitqueue_head *wait_head;
> + uint32_t *payload = (uint32_t *)data;
> + uint32_t ack_msgid;
> + uint32_t ack_msgtype;
> + uint32_t copy_len;
> +
> + chan_info = NBL_CHAN_MGT_TO_CHAN_INFO(chan_mgt);
> + ack_msgtype = *payload;
> + ack_msgid = *(payload + 1);
> + wait_head = &chan_info->mailbox.wait[ack_msgid];
> + wait_head->ack_err = *(payload + 2);
> +
> + if (wait_head->ack_err >= 0 && (data_len > 3 * sizeof(uint32_t))) {
> + if (data_len - 3 * sizeof(uint32_t) != wait_head->ack_data_len)
> + NBL_LOG(ERR, "payload_len do not match ack_len!,"
> + " srcid:%u, msgtype:%u, msgid:%u, ack_msgid %u,"
> + " data_len:%u, ack_data_len:%u",
> + srcid, ack_msgtype, msgid,
> + ack_msgid, data_len, wait_head->ack_data_len);
> + copy_len = RTE_MIN((u32)wait_head->ack_data_len,
> + (u32)data_len - 3 * sizeof(uint32_t));
> + memcpy(wait_head->ack_data, payload + 3, copy_len);
> + }
> +
> + /* wmb */
> + rte_wmb();
> + wait_head->acked = 1;
> +}
The C11 atomic (rte_atomic) model is preferred over using memory barriers.
In this case you want to ensure the wati_head is updated before the
store to acked. That would rte_memory_order_release or rte_memory_order_seq_cst.
next prev parent reply other threads:[~2025-09-18 16:39 UTC|newest]
Thread overview: 163+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-27 1:40 [PATCH v3 00/16] NBL PMD for Nebulamatrix NICs dimon.zhao
2025-06-27 1:40 ` [PATCH v3 01/16] net/nbl: add doc and minimum nbl build framework dimon.zhao
2025-06-27 1:40 ` [PATCH v3 02/16] net/nbl: add simple probe/remove and log module dimon.zhao
2025-08-20 19:51 ` Stephen Hemminger
2025-06-27 1:40 ` [PATCH v3 03/16] net/nbl: add PHY layer definitions and implementation dimon.zhao
2025-06-27 1:40 ` [PATCH v3 04/16] net/nbl: add Channel " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 05/16] net/nbl: add Resource " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 06/16] net/nbl: add Dispatch " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 07/16] net/nbl: add Dev " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 08/16] net/nbl: add complete device init and uninit functionality dimon.zhao
2025-06-27 1:40 ` [PATCH v3 09/16] net/nbl: add UIO and VFIO mode for nbl dimon.zhao
2025-06-27 1:40 ` [PATCH v3 10/16] net/nbl: add nbl coexistence " dimon.zhao
2025-06-27 1:40 ` [PATCH v3 11/16] net/nbl: add nbl ethdev configuration dimon.zhao
2025-06-27 1:40 ` [PATCH v3 12/16] net/nbl: add nbl device rxtx queue setup and release ops dimon.zhao
2025-06-27 1:40 ` [PATCH v3 13/16] net/nbl: add nbl device start and stop ops dimon.zhao
2025-06-27 1:40 ` [PATCH v3 14/16] net/nbl: add nbl device Tx and Rx burst dimon.zhao
2025-06-27 1:40 ` [PATCH v3 15/16] net/nbl: add nbl device xstats and stats dimon.zhao
2025-06-27 1:40 ` [PATCH v3 16/16] net/nbl: nbl device support set MTU and promisc dimon.zhao
2025-06-27 21:07 ` [PATCH v3 00/16] NBL PMD for Nebulamatrix NICs Stephen Hemminger
2025-06-27 21:40 ` Thomas Monjalon
2025-08-13 6:43 ` [PATCH v4 " Dimon Zhao
2025-08-13 6:43 ` [PATCH v4 01/16] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-13 14:43 ` Stephen Hemminger
2025-08-19 22:32 ` Stephen Hemminger
2025-08-13 6:43 ` [PATCH v4 02/16] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-08-13 6:43 ` [PATCH v4 03/16] net/nbl: add PHY layer definitions and implementation Dimon Zhao
2025-08-13 9:30 ` Ivan Malov
2025-08-13 14:19 ` Stephen Hemminger
2025-08-13 6:43 ` [PATCH v4 04/16] net/nbl: add Channel " Dimon Zhao
2025-08-13 9:54 ` Ivan Malov
2025-08-13 14:21 ` Stephen Hemminger
2025-08-13 14:22 ` Stephen Hemminger
2025-08-13 14:25 ` Stephen Hemminger
2025-08-13 14:28 ` Stephen Hemminger
2025-08-13 6:43 ` [PATCH v4 05/16] net/nbl: add Resource " Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 06/16] net/nbl: add Dispatch " Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 07/16] net/nbl: add Dev " Dimon Zhao
2025-08-13 10:12 ` Ivan Malov
2025-08-13 6:44 ` [PATCH v4 08/16] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 09/16] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 10/16] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-13 10:35 ` Ivan Malov
2025-08-13 6:44 ` [PATCH v4 11/16] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-13 10:40 ` Ivan Malov
2025-08-13 6:44 ` [PATCH v4 12/16] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-13 12:00 ` Ivan Malov
2025-08-15 3:47 ` 回复:[PATCH " Dimon
2025-08-15 8:00 ` Ivan Malov
2025-08-18 2:59 ` 回复:回复:[PATCH " Dimon
2025-08-13 6:44 ` [PATCH v4 13/16] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-13 6:44 ` [PATCH v4 14/16] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-13 11:31 ` Ivan Malov
2025-08-13 6:44 ` [PATCH v4 15/16] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-13 11:48 ` Ivan Malov
2025-08-13 14:27 ` Stephen Hemminger
2025-08-18 10:11 ` 回复:[PATCH " Dimon
2025-08-13 6:44 ` [PATCH v4 16/16] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-08-13 12:06 ` Ivan Malov
2025-08-19 10:22 ` [PATCH v5 00/17] NBL PMD for Nebulamatrix NICs Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 02/17] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 04/17] net/nbl: add Channel " Dimon Zhao
2025-08-19 22:05 ` Stephen Hemminger
2025-08-20 16:16 ` Stephen Hemminger
2025-08-21 3:19 ` 回复:[PATCH " Dimon
2025-08-19 10:22 ` [PATCH v5 05/17] net/nbl: add Resource " Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 07/17] net/nbl: add Dev " Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-19 15:30 ` Stephen Hemminger
2025-08-19 10:22 ` [PATCH v5 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-19 22:35 ` Stephen Hemminger
2025-08-19 10:22 ` [PATCH v5 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-19 10:22 ` [PATCH v5 17/17] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 00/17] NBL PMD for Nebulamatrix NICs Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-27 16:27 ` Stephen Hemminger
2025-08-28 3:06 ` 回复:[PATCH " Dimon
2025-08-22 9:03 ` [PATCH v6 02/17] net/nbl: add simple proybe/remove and log module Dimon Zhao
2025-08-27 16:30 ` Stephen Hemminger
2025-08-22 9:03 ` [PATCH v6 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 04/17] net/nbl: add Channel " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 05/17] net/nbl: add Resource " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 07/17] net/nbl: add Dev " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-22 9:03 ` [PATCH v6 17/17] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 00/17] NBL PMD for Nebulamatrix NICs Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 02/17] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 04/17] net/nbl: add Channel " Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 05/17] net/nbl: add Resource " Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 07/17] net/nbl: add Dev " Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-08-29 3:27 ` [PATCH v7 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-08-29 3:28 ` [PATCH v7 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-08-29 3:28 ` [PATCH v7 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-08-29 3:28 ` [PATCH v7 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-08-29 3:28 ` [PATCH v7 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-08-29 3:28 ` [PATCH v7 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-08-29 3:28 ` [PATCH v7 17/17] net/nbl: nbl device support set MTU and promisc Dimon Zhao
2025-09-09 21:34 ` [PATCH v7 00/17] NBL PMD for Nebulamatrix NICs Stephen Hemminger
2025-09-12 6:17 ` [PATCH v8 " Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 02/17] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 04/17] net/nbl: add Channel " Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 05/17] net/nbl: add Resource " Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 07/17] net/nbl: add Dev " Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-09-12 6:17 ` [PATCH v8 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-09-12 15:13 ` Stephen Hemminger
2025-09-12 6:17 ` [PATCH v8 17/17] net/nbl: add nbl device set MTU and promisc Dimon Zhao
2025-09-12 15:25 ` Stephen Hemminger
2025-09-17 8:08 ` [PATCH v9 00/17] NBL PMD for Nebulamatrix NICs Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 01/17] net/nbl: add doc and minimum nbl build framework Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 02/17] net/nbl: add simple probe/remove and log module Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 03/17] net/nbl: add HW layer definitions and implementation Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 04/17] net/nbl: add Channel " Dimon Zhao
2025-09-18 16:30 ` Stephen Hemminger
2025-09-18 16:33 ` Stephen Hemminger [this message]
2025-09-18 16:35 ` Stephen Hemminger
2025-09-18 16:38 ` Stephen Hemminger
2025-09-17 8:08 ` [PATCH v9 05/17] net/nbl: add Resource " Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 06/17] net/nbl: add Dispatch " Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 07/17] net/nbl: add Dev " Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 08/17] net/nbl: add complete device init and uninit functionality Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 09/17] net/nbl: add UIO and VFIO mode for nbl Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 10/17] net/nbl: add nbl coexistence " Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 11/17] net/nbl: add nbl ethdev configuration Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 12/17] net/nbl: add nbl device rxtx queue setup and release ops Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 13/17] net/nbl: add nbl device start and stop ops Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 14/17] net/nbl: add nbl device Tx and Rx burst Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 15/17] net/nbl: add nbl ethdev infos get Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 16/17] net/nbl: add nbl device xstats and stats Dimon Zhao
2025-09-17 8:08 ` [PATCH v9 17/17] net/nbl: add nbl device set MTU and promisc Dimon Zhao
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=20250918093317.59c4cce2@hermes.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=dimon.zhao@nebula-matrix.com \
--cc=kyo.liu@nebula-matrix.com \
--cc=leon.yu@nebula-matrix.com \
--cc=sam.chen@nebula-matrix.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;
as well as URLs for NNTP newsgroup(s).