All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesper Dangaard Brouer <hawk@kernel.org>
To: "Mina Almasry" <almasrymina@google.com>,
	"Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Jakub Kicinski <kuba@kernel.org>
Subject: Re: [PATCH RFC net-next v1] page_pool: import Jesper's page_pool benchmark
Date: Mon, 24 Mar 2025 23:11:22 +0100	[thread overview]
Message-ID: <4bb08c33-eac5-46e1-8d59-acc125946654@kernel.org> (raw)
In-Reply-To: <CAHS8izM30jZ+bKkpeKQLKk3BGj8nBFLpUFgS2qM7x8EPMV7KOQ@mail.gmail.com>



On 24/03/2025 21.23, Mina Almasry wrote:
> On Mon, Mar 10, 2025 at 2:15 AM Toke Høiland-Jørgensen <toke@toke.dk> wrote:
>>
>> Mina Almasry <almasrymina@google.com> writes:
>>
>>> From: Jesper Dangaard Brouer <hawk@kernel.org>
>>>
>>> We frequently consult with Jesper's out-of-tree page_pool benchmark to
>>> evaluate page_pool changes.
>>>
>>> Consider importing the benchmark into the upstream linux kernel tree so
>>> that (a) we're all running the same version, (b) pave the way for shared
>>> improvements, and (c) maybe one day integrate it with nipa, if possible.
>>>
>>> I imported the bench_page_pool_simple from commit 35b1716d0c30 ("Add
>>> page_bench06_walk_all"), from this repository:
>>> https://github.com/netoptimizer/prototype-kernel.git
>>>
>>> I imported the benchmark, largely as-is. I only fixed build or
>>> checkpatch issues.
>>>
>>> Cc: Jesper Dangaard Brouer <hawk@kernel.org>
>>> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
>>> Cc: Jakub Kicinski <kuba@kernel.org>
>>> Cc: Toke Høiland-Jørgensen <toke@toke.dk>
>>> Cc: netdev@vger.kernel.org
>>> Signed-off-by: Mina Almasry <almasrymina@google.com>
>>>
>>> ---
>>>
>>> RFC discussion points:
>>> - Desirable to import it?
>>
>> I think so, yeah.
>>
>>> - Can the benchmark be imported as-is for an initial version? Or needs
>>>    lots of modifications?
>>
>> One thing that I was discussing with Jesper the other day is that the
>> current version allocates the page_pool itself in softirq context, which
>> leads to some "may sleep" warning. I think we should fix that before
>> upstreaming.
>>
> 
> I don't think I saw that warning for whatever reason. Do you by any
> chance have a fix that I can squash? Or do you think it is very
> critical to fix this before upstreaming? I.e. not follow up with a
> fix?

The tasklet trick in the benchmark module is to fake that code is
running in softirq context, which avoids taking the _bh lock variants.

In the past the performance was really different between the two
execution contexts, but in all of my recent experiments [1][2], the
performance differences are gone. So, I think we can simply drop the
ugly tasklet setup tricks.

  [1] 
https://github.com/xdp-project/xdp-project/blob/main/areas/mem/page_pool07_bench_DMA_fix.org
  [2] 
https://github.com/xdp-project/xdp-project/blob/main/areas/mem/page_pool08_bench_AMD.org

BTW it is awesome that you are pushing this to get upstreamed.

--Jesper

  reply	other threads:[~2025-03-24 22:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-09  8:41 [PATCH RFC net-next v1] page_pool: import Jesper's page_pool benchmark Mina Almasry
2025-03-09 10:34 ` kernel test robot
2025-03-10  6:22 ` kernel test robot
2025-03-10  8:08 ` kernel test robot
2025-03-10  9:15 ` Toke Høiland-Jørgensen
2025-03-24 20:23   ` Mina Almasry
2025-03-24 22:11     ` Jesper Dangaard Brouer [this message]
2025-03-24 13:55 ` Jakub Kicinski
2025-03-24 20:21   ` Mina Almasry
2025-03-25 22:38     ` Jakub Kicinski
2025-03-24 22:34 ` Jesper Dangaard Brouer

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=4bb08c33-eac5-46e1-8d59-acc125946654@kernel.org \
    --to=hawk@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=almasrymina@google.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=toke@toke.dk \
    /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.