All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Gur Stavi <gur.stavi@huawei.com>
Cc: andrew+netdev@lunn.ch, christophe.jaillet@wanadoo.fr,
	corbet@lwn.net, davem@davemloft.net, edumazet@google.com,
	fuguiming@h-partners.com, gongfan1@huawei.com,
	guoxin09@huawei.com, helgaas@kernel.org, jdamato@fastly.com,
	kuba@kernel.org, lee@trager.us, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, luosifu@huawei.com,
	meny.yossefi@huawei.com, mpe@ellerman.id.au,
	netdev@vger.kernel.org, pabeni@redhat.com,
	przemyslaw.kitszel@intel.com, shenchenyang1@hisilicon.com,
	shijing34@huawei.com, sumang@marvell.com,
	vadim.fedorenko@linux.dev, wulike1@huawei.com,
	zhoushuai28@huawei.com, zhuyikai1@h-partners.com
Subject: Re: [PATCH net-next v10 1/8] hinic3: Async Event Queue interfaces
Date: Thu, 31 Jul 2025 21:31:24 +0100	[thread overview]
Message-ID: <20250731203124.GI8494@horms.kernel.org> (raw)
In-Reply-To: <20250731183420.1138336-1-gur.stavi@huawei.com>

On Thu, Jul 31, 2025 at 09:34:20PM +0300, Gur Stavi wrote:
> > On Thu, Jul 31, 2025 at 03:58:39PM +0300, Gur Stavi wrote:

...

> > Thanks, I think I am closer to understanding things now.
> >
> > Let me try and express things in my own words:
> >
> > 1. On the hardware side, things are stored in a way that may be represented
> >    as structures with little-endian values. The members of the structures may
> >    have different sizes: 8-bit, 16-bit, 32-bit, ...
> >
> > 2. The hardware runs the equivalent of swab32_array() over this data
> >    when writing it to (or reading it from) the host. So we get a
> >    "byte jumble".
> >
> > 3. In this patch, the hinic3_cmdq_buf_swab32 reverses this jumbling
> >    by running he equivalent of swab32_array() over this data again.
> >
> >    As 3 exactly reverses 2, what is left are structures exactly as in 1.
> >
> 
> Yes. Your understanding matches mine.

Great. Sorry for taking a while to get there.

> > If so, I agree this makes sense and I am sorry for missing this before.
> >
> > And if so, is the intention for the cmdq "coherent structs" in the driver
> > to look something like this.
> >
> >    struct {
> > 	u8 a;
> > 	u8 b;
> > 	__le16 c;
> > 	__le32 d;
> >    };
> >
> > If so, this seems sensible to me.
> >
> > But I think it would be best so include some code in this patchset
> > that makes use of such structures - sorry if it is there, I couldn't find
> > it just now.
> >
> > And, although there is no intention for the driver to run on big endian
> > systems, the __le* fields should be accessed using cpu_to_le*/le*_to_cpu
> > helpers.
> 
> There was a long and somewhat heated debate about this issue.
> https://lore.kernel.org/netdev/20241230192326.384fd21d@kernel.org/
> I agree that having __le in the code is better coding practice.
> But flooding the code with cpu_to_le and le_to_cpu does hurt readability.
> And there are precedences of drivers that avoid it.
> 
> However, our dev team (I am mostly an advisor) decided to give it a try anyway.
> I hope they manage to survive it.

Thanks, I appreciate it.
I look forward to reviewing what they come up with.

  reply	other threads:[~2025-07-31 20:31 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-22  7:18 [PATCH net-next v10 0/8] net: hinic3: Add a driver for Huawei 3rd gen NIC - management interfaces Fan Gong
2025-07-22  7:18 ` [PATCH net-next v10 1/8] hinic3: Async Event Queue interfaces Fan Gong
2025-07-22 14:36   ` Simon Horman
2025-07-23  8:19   ` Simon Horman
2025-07-24 13:45     ` Fan Gong
2025-07-25 15:27       ` Simon Horman
2025-07-31 10:49         ` Fan Gong
2025-07-31 13:39           ` Simon Horman
2025-07-31 14:09             ` Simon Horman
2025-07-31 12:58         ` Gur Stavi
2025-07-31 14:04           ` Simon Horman
2025-07-31 18:34             ` Gur Stavi
2025-07-31 20:31               ` Simon Horman [this message]
2025-07-23 11:34   ` kernel test robot
2025-07-22  7:18 ` [PATCH net-next v10 2/8] hinic3: Complete " Fan Gong
2025-07-23 10:03   ` Simon Horman
2025-07-22  7:18 ` [PATCH net-next v10 3/8] hinic3: Command Queue framework Fan Gong
2025-07-22  7:18 ` [PATCH net-next v10 4/8] hinic3: Command Queue interfaces Fan Gong
2025-07-22  7:18 ` [PATCH net-next v10 5/8] hinic3: TX & RX Queue coalesce interfaces Fan Gong
2025-07-22  7:18 ` [PATCH net-next v10 6/8] hinic3: Mailbox framework Fan Gong
2025-07-23 10:35   ` Simon Horman
2025-07-22  7:18 ` [PATCH net-next v10 7/8] hinic3: Mailbox management interfaces Fan Gong
2025-07-23 10:51   ` Simon Horman
2025-07-22  7:18 ` [PATCH net-next v10 8/8] hinic3: Interrupt request configuration Fan Gong

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=20250731203124.GI8494@horms.kernel.org \
    --to=horms@kernel.org \
    --cc=andrew+netdev@lunn.ch \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=fuguiming@h-partners.com \
    --cc=gongfan1@huawei.com \
    --cc=guoxin09@huawei.com \
    --cc=gur.stavi@huawei.com \
    --cc=helgaas@kernel.org \
    --cc=jdamato@fastly.com \
    --cc=kuba@kernel.org \
    --cc=lee@trager.us \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luosifu@huawei.com \
    --cc=meny.yossefi@huawei.com \
    --cc=mpe@ellerman.id.au \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=shenchenyang1@hisilicon.com \
    --cc=shijing34@huawei.com \
    --cc=sumang@marvell.com \
    --cc=vadim.fedorenko@linux.dev \
    --cc=wulike1@huawei.com \
    --cc=zhoushuai28@huawei.com \
    --cc=zhuyikai1@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.