Re: [PATCH net-next v01 1/1] hinic3: module initialization and tx/rx logic
From: Jakub Kicinski
Date: Fri Dec 27 2024 - 13:31:44 EST
On Wed, 25 Dec 2024 14:56:49 +0200 Gur Stavi wrote:
> > I understand. But I'm concerned about the self-assured tone of the
> > "it's not supported" message, that's very corporate verbiage. Annotating
> > endian is standard practice of writing upstream drivers. It makes me
> > doubt if you have any developers with upstream experience on your team
> > if you don't know that. That and the fact that Huawei usually tops
> > the list of net-negative review contributors in netdev.
>
> The most popular combination in the last 3 decades was little endian
> CPUs with big endian device interfaces. Endianity conversion was a
> necessity and therefore endian annotation became standard practice.
> But it was never symmetric, conversion to/from BE was more common than
> conversion to/from LE.
>
> As the pendulum moved from horizontal market to vertical market and major
> companies started to develop both hw and sw, the hw engineers transformed
> proprietary parts of the interface to little endian to save extra work in
> the sw. AWS did it. Azure did it. Huawei did it. These vertical companies
> do not care about endianity of CPUs they do not use.
> This is not "corporate verbiage" this is a real market shift.
Don't misquote me. You did it in your previous reply, now you're doing
it again.
If you don't understand what I'm saying you can ask for clarifications.
> The necessity for endian conversion is gone (or just halved). Will the
> standard practice remain? There is not a single __le annotation in Amazon
> and Microsoft code. Not in Mellanox code either. Maybe their hw is fully
> BE (have to wonder about their DPUs). Amazingly, Intel that only creates
> little endian CPUs has lots of __le annotations. But they are the flag
> barer of horizontal market.
>
> Interesting how both Amazon and Microsoft started with:
> depends on X86
> Thus evaded demand for adding __le annotations to the code.
> Later, both sneaked in quiet small patches with replacement to:
> depends on !CPU_BIG_ENDIAN
> Maybe that is the true meaning of "upstream experience".