public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Mina Almasry <almasrymina@google.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>,
	Alexander Lobakin <aleksander.lobakin@intel.com>,
	Saeed Mahameed <saeedm@nvidia.com>,
	Leon Romanovsky <leon@kernel.org>,
	Eric Dumazet <edumazet@google.com>,
	Jesper Dangaard Brouer <hawk@kernel.org>
Subject: Re: [PATCH net-next v7 1/6] page_pool: frag API support for 32-bit arch with 64-bit DMA
Date: Thu, 17 Aug 2023 16:57:44 -0700	[thread overview]
Message-ID: <20230817165744.73d61fb6@kernel.org> (raw)
In-Reply-To: <CAC_iWjJQepZWVrY8BHgGgRVS1V_fTtGe-i=r8X5z465td3TvbA@mail.gmail.com>

On Thu, 17 Aug 2023 19:59:37 +0300 Ilias Apalodimas wrote:
> > Can we assume the DMA mapping of page pool is page aligned? We should
> > be, right?  
> 
> Yes
> 
> > That means we're storing 12 bits of 0 at the lower end.
> > So even with 32b of space we can easily store addresses for 32b+12b =>
> > 16TB of memory. "Ought to be enough" to paraphrase Bill G, and the
> > problem is only in our heads?  
> 
> Do you mean moving the pp_frag_count there? 

Right, IIUC we don't have enough space to fit dma_addr_t and the
refcount, but if we store the dma addr on a shifted u32 instead 
of using dma_addr_t explicitly - the refcount should fit?

> I was questioning the need to have PP_FLAG_PAGE_SPLIT_IN_DRIVER
> overall.  With Yunshengs patches such a platform would allocate a
> page, so why should we prevent it from splitting it internally?

Splitting it is fine, the problem is that the refcount AKA
page->pp_frag_count** counts outstanding PP-aware references
and page->refcount counts PP-unaware references.

If we want to use page->refcount directly we'd need to unmap 
the page whenever drivers calls page_pool_defrag_page().
But the driver may assume the page is still mapped afterwards.

We can change the API to make this behavior explicit. Although
IMHO that's putting the burden of rare platforms on non-rare
platforms which we should avoid.

** I said it before and I will keep saying this until someone gets 
   angry at me - I really think we should rename this field because
   the association with frags is a coincidence.

  reply	other threads:[~2023-08-17 23:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-16 10:01 [PATCH net-next v7 0/6] introduce page_pool_alloc() related API Yunsheng Lin
2023-08-16 10:01 ` [PATCH net-next v7 1/6] page_pool: frag API support for 32-bit arch with 64-bit DMA Yunsheng Lin
2023-08-17 13:57   ` Ilias Apalodimas
2023-08-17 16:15     ` Jakub Kicinski
2023-08-17 16:59       ` Ilias Apalodimas
2023-08-17 23:57         ` Jakub Kicinski [this message]
2023-08-18  6:12           ` Ilias Apalodimas
2023-08-18  8:59             ` Yunsheng Lin
2023-08-18 21:51             ` Jakub Kicinski
2023-08-21  8:38               ` Ilias Apalodimas
2023-08-21 11:15                 ` Ilias Apalodimas
2023-08-21 12:18               ` Yunsheng Lin
2023-08-21 18:35                 ` Jakub Kicinski
2023-08-22  9:21                   ` Yunsheng Lin
2023-08-22 15:38                     ` Jakub Kicinski
2023-08-22 18:30                       ` Alexander Duyck
2023-08-22 18:58                         ` Alexander Duyck
2023-08-23  3:03                       ` Yunsheng Lin
2023-08-23 14:25                         ` Jakub Kicinski
2023-08-23 18:00                           ` Alexander Duyck
2023-08-25  9:40                             ` Yunsheng Lin
2023-08-26  0:08                               ` Jakub Kicinski
2023-08-28 14:50                                 ` Alexander Duyck
2023-08-28 15:38                                   ` Jakub Kicinski
2023-08-29 11:58                                     ` Yunsheng Lin
2023-08-16 10:01 ` [PATCH net-next v7 2/6] page_pool: unify frag_count handling in page_pool_is_last_frag() Yunsheng Lin
2023-08-16 11:30   ` Ilias Apalodimas
2023-08-16 12:42     ` Yunsheng Lin
2023-08-16 10:01 ` [PATCH net-next v7 3/6] page_pool: remove PP_FLAG_PAGE_FRAG Yunsheng Lin
2023-08-16 10:01 ` [PATCH net-next v7 4/6] page_pool: introduce page_pool[_cache]_alloc() API Yunsheng Lin
2023-08-16 10:01 ` [PATCH net-next v7 5/6] page_pool: update document about frag API Yunsheng Lin
2023-08-16 10:01 ` [PATCH net-next v7 6/6] net: veth: use newly added page pool API for veth with xdp 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=20230817165744.73d61fb6@kernel.org \
    --to=kuba@kernel.org \
    --cc=aleksander.lobakin@intel.com \
    --cc=alexander.duyck@gmail.com \
    --cc=almasrymina@google.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=linyunsheng@huawei.com \
    --cc=lorenzo@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=saeedm@nvidia.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