netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Alexander Lobakin <aleksander.lobakin@intel.com>
Cc: Yunsheng Lin <yunshenglin0825@gmail.com>,
	Yunsheng Lin <linyunsheng@huawei.com>, <davem@davemloft.net>,
	<pabeni@redhat.com>, <netdev@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	Lorenzo Bianconi <lorenzo@kernel.org>,
	Alexander Duyck <alexander.duyck@gmail.com>,
	Liang Chen <liangchen.linux@gmail.com>,
	Saeed Mahameed <saeedm@nvidia.com>,
	"Leon Romanovsky" <leon@kernel.org>,
	Eric Dumazet <edumazet@google.com>,
	"Jesper Dangaard Brouer" <hawk@kernel.org>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	<linux-rdma@vger.kernel.org>
Subject: Re: [PATCH v5 RFC 1/6] page_pool: frag API support for 32-bit arch with 64-bit DMA
Date: Tue, 11 Jul 2023 13:09:03 -0700	[thread overview]
Message-ID: <20230711130903.2961a804@kernel.org> (raw)
In-Reply-To: <1bec23ff-d38b-3fdf-1bb3-89658c1d465a@intel.com>

On Tue, 11 Jul 2023 18:59:51 +0200 Alexander Lobakin wrote:
> From: Jakub Kicinski <kuba@kernel.org>
> Date: Tue, 11 Jul 2023 09:37:05 -0700
> 
> > On Tue, 11 Jul 2023 12:59:00 +0200 Alexander Lobakin wrote:  
> >> I'm fine with that, although ain't really able to work on this myself
> >> now :s (BTW I almost finished Netlink bigints, just some more libie/IAVF
> >> crap).  
> > 
> > FWIW I was thinking about the bigints recently, and from ynl
> > perspective I think we may want two flavors :( One which is at
> > most the length of platform's long long, and another which is  
> 
> `long long` or `long`? `long long` is always 64-bit unless I'm missing
> something. On my 32-bit MIPS they were :D
> If `long long`, what's the point then if we have %NLA_U64 and would
> still have to add dumb padding attrs? :D I thought the idea was to carry
> 64+ bits encapsulated in 32-bit primitives.

Sorry I confused things. Keep in mind we're only talking about what 
the generated YNL code ends up looking like, not the "wire" format.
So we still "transport" things as multiple 32b chunks at netlink level.
No padding.

The question is how to render the C / C++ code on the YNL side (or 
any practical library). Are we storing all those values as bigints and
require users to coerce them to a more natural type on each access?
That'd defeat the goal of the new int type becoming the default /
"don't overthink the sizing" type.

If we have a subtype with a max size of 64b, it can be 32b or 64b on
the wire, as needed, but user space can feel assured that u64 will
always be able to store the result.

The long long is my misguided attempt to be platform dependent.
I think a better way of putting it would actually be 2 * sizeof(long).
That way we can use u128 as max, which seems to only be defined on 64b
platforms. But that's just a random thought, I'm not sure how useful 
it would be.

Perhaps we need two types, one "basic" which tops out at 64b and one
"really bigint" which can be used as bitmaps as well?

  reply	other threads:[~2023-07-11 20:09 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-29 12:02 [PATCH v5 RFC 0/6] introduce page_pool_alloc() API Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 1/6] page_pool: frag API support for 32-bit arch with 64-bit DMA Yunsheng Lin
2023-07-07 23:59   ` Jakub Kicinski
2023-07-09 12:39     ` Yunsheng Lin
2023-07-10 18:36       ` Jakub Kicinski
2023-07-08  0:01   ` Jakub Kicinski
2023-07-09 12:54     ` Yunsheng Lin
2023-07-10 18:38       ` Jakub Kicinski
2023-07-11 10:59         ` Alexander Lobakin
2023-07-11 16:37           ` Jakub Kicinski
2023-07-11 16:59             ` Alexander Lobakin
2023-07-11 20:09               ` Jakub Kicinski [this message]
2023-07-12 12:34               ` Yunsheng Lin
2023-07-12 17:26                 ` Jakub Kicinski
2023-07-14 12:16                   ` Yunsheng Lin
2023-07-14 13:44                     ` Jesper Dangaard Brouer
2023-07-14 17:52                     ` Jakub Kicinski
2023-07-17 12:33                       ` Yunsheng Lin
2023-07-18 18:16                         ` Jakub Kicinski
2023-07-18 18:28                           ` Alexander Lobakin
2023-07-19 12:21                             ` Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 2/6] page_pool: unify frag_count handling in page_pool_is_last_frag() Yunsheng Lin
2023-07-10 14:39   ` Alexander Lobakin
2023-07-11 11:47     ` Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 3/6] page_pool: introduce page_pool[_cache]_alloc() API Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 4/6] page_pool: remove PP_FLAG_PAGE_FRAG flag Yunsheng Lin
2023-06-29 12:02 ` [PATCH v5 RFC 5/6] page_pool: update document about frag API Yunsheng Lin
2023-06-29 20:30   ` Randy Dunlap
2023-06-29 12:02 ` [PATCH v5 RFC 6/6] net: veth: use newly added page pool API for veth with xdp Yunsheng Lin
2023-06-29 14:26 ` [PATCH v5 RFC 0/6] introduce page_pool_alloc() API Alexander Lobakin
2023-06-30 11:57   ` Yunsheng Lin

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=20230711130903.2961a804@kernel.org \
    --to=kuba@kernel.org \
    --cc=aleksander.lobakin@intel.com \
    --cc=alexander.duyck@gmail.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hawk@kernel.org \
    --cc=ilias.apalodimas@linaro.org \
    --cc=leon@kernel.org \
    --cc=liangchen.linux@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linyunsheng@huawei.com \
    --cc=lorenzo@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=saeedm@nvidia.com \
    --cc=yunshenglin0825@gmail.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).