All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yonghong Song <yonghong.song@linux.dev>
To: "Kirill A. Shutemov" <kirill@shutemov.name>,
	Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: Hou Tao <houtao1@huawei.com>, Jakub Kicinski <kuba@kernel.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	"David S. Miller" <davem@davemloft.net>,
	Network Development <netdev@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	yonghong.song@linux.dev
Subject: Re: [GIT PULL v2] Networking for 6.7
Date: Thu, 9 Nov 2023 10:09:46 -0800	[thread overview]
Message-ID: <11e2e744-4bc7-45b1-aaca-298b5e4ee281@linux.dev> (raw)
In-Reply-To: <20231109161406.lol2mjhr47dhd42q@box.shutemov.name>


On 11/9/23 8:14 AM, Kirill A. Shutemov wrote:
> On Thu, Nov 09, 2023 at 08:01:39AM -0800, Alexei Starovoitov wrote:
>> On Thu, Nov 9, 2023 at 7:49 AM Kirill A. Shutemov <kirill@shutemov.name> wrote:
>>> On Tue, Oct 31, 2023 at 02:09:48PM -0700, Jakub Kicinski wrote:
>>>>        bpf: Add support for non-fix-size percpu mem allocation
>>> Recent changes in BPF increased per-CPU memory consumption a lot.
>>>
>>> On virtual machine with 288 CPUs, per-CPU consumtion increased from 111 MB
>>> to 969 MB, or 8.7x.
>>>
>>> I've bisected it to the commit 41a5db8d8161 ("bpf: Add support for
>>> non-fix-size percpu mem allocation"), which part of the pull request.
>> Hmm. This is unexpected. Thank you for reporting.
>>
>> How did you measure this 111 MB vs 969 MB ?
>> Pls share the steps to reproduce.
> Boot VMM with 288 (qemu-system-x86_64 -smp 288) and check Percpu: field of
> /proc/meminfo.

I did some experiments with my VM. My VM currently supports up to 255 cpus,
so I tried 4/32/252 number of cpus. For a particular number of cpus, two
experiments are done:
   (1). bpf-percpu-mem-prefill
   (2). no-bpf-percpu-mem-prefill

For 4 cpu:
    bpf-percpu-mem-prefill:
      Percpu:             2000 kB
    no-bpf-percpu-mem-prefill:
      Percpu:             1808 kB

    bpf-percpu-mem-prefill percpu cost: (2000 - 1808)/4 KB = 48KB

For 32 cpus:
    bpf-percpu-mem-prefill:
      Percpu:            25344 kB
    no-bpf-percpu-mem-prefill:
      Percpu:            14464 kB

    bpf-percpu-mem-prefill percpu cost: (25344 - 14464)/4 KB = 340KB

For 252 cpus:
    bpf-percpu-mem-prefill:
      Percpu:           230912 kB
    no-bpf-percpu-mem-prefill:
      Percpu:            57856 kB
  
    bpf-percpu-mem-prefill percpu cost: (230912 - 57856)/4 KB = 686KB

I am not able to reproduce the dramatic number from 111 MB to 969 MB.
My number with 252 cpus is from ~58MB to ~231MB.

I appears that percpu allocation cost goes up when the number of cpus
is increased.

I will continue to debug this. Thanks!

>

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

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-28  1:17 [GIT PULL] Networking for 6.7 Jakub Kicinski
2023-10-30 23:15 ` Jakub Kicinski
2023-10-31 21:09 ` [GIT PULL v2] " Jakub Kicinski
2023-10-31 22:57   ` Linus Torvalds
2023-11-01  1:18     ` [GIT PULL] Networking follow up " Jakub Kicinski
2023-11-02  2:51   ` [GIT PULL v2] Networking " pr-tracker-bot
2023-11-09 15:49   ` Kirill A. Shutemov
2023-11-09 16:01     ` Alexei Starovoitov
2023-11-09 16:14       ` Kirill A. Shutemov
2023-11-09 18:09         ` Yonghong Song [this message]
2023-11-09 18:18           ` Alexei Starovoitov
2023-11-09 18:41             ` Yonghong Song
2023-11-14 13:30     ` Linux regression tracking #adding (Thorsten Leemhuis)
2023-10-31 23:00 ` [GIT PULL] " pr-tracker-bot

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=11e2e744-4bc7-45b1-aaca-298b5e4ee281@linux.dev \
    --to=yonghong.song@linux.dev \
    --cc=alexei.starovoitov@gmail.com \
    --cc=ast@kernel.org \
    --cc=davem@davemloft.net \
    --cc=houtao1@huawei.com \
    --cc=kirill@shutemov.name \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=torvalds@linux-foundation.org \
    /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.