From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93CC4C001DF for ; Fri, 20 Oct 2023 21:17:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EF01B8D01D6; Fri, 20 Oct 2023 17:17:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EA0948D0008; Fri, 20 Oct 2023 17:17:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D69F78D01D6; Fri, 20 Oct 2023 17:17:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C34138D0008 for ; Fri, 20 Oct 2023 17:17:54 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 84E8BC01D3 for ; Fri, 20 Oct 2023 21:17:54 +0000 (UTC) X-FDA: 81367102068.28.5AEB78B Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) by imf04.hostedemail.com (Postfix) with ESMTP id B9CAD4001E for ; Fri, 20 Oct 2023 21:17:52 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eiIhppKQ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.208.179 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697836672; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5VSu/up4BtxqY9kA9X5D7qVX7VZc1rv3uL9WcJiZCGo=; b=NJvrmnKsYGcAypTtOhaAJjXTh3lxvz3eOa57t1jtwN59R3DX78YujjnLrkEoRS4tf3uLSL v6KskDK4qENhy3uSVe21gbqe3ojlL2DGCWfWUpafAPo8YuERe+4xL2/whEDEDdQ/kK8WVb TKy9WCeR57s8wP1Y8d1c1DcYO/4kMsI= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eiIhppKQ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.208.179 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697836672; a=rsa-sha256; cv=none; b=SR6isdtNDzqN3OEQA5KbveaqWPKLq6+5Wx9XV2q4NHZXOUtdwWFo82MVCgRJJfK6HHA+Dm Sq3lWI6prxLVY5QauFQAjfIwGNaHCkP1+1FE+lB4PPTQ6PzIDDzThTYD6TTYfS0HiRB3Kh JYSapYB9gIRk67rib2NjkSm+CbmhOnM= Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-2c5071165d5so5664151fa.0 for ; Fri, 20 Oct 2023 14:17:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697836671; x=1698441471; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=5VSu/up4BtxqY9kA9X5D7qVX7VZc1rv3uL9WcJiZCGo=; b=eiIhppKQA3YkdeqTPIKup2eUzp2IGqn0HLyr0JsCpwQ1yGaGeUFENJTldCvgnFc5zR S/U9jyS1bOQCK/knDpBbGklNTXyhBW+qW2tKmcqT/SfB6fqPygIXQhEi3zQwMSeoDPcw VQsQggrQA0U8u4mBkzmX7LTUnhTJxhc5zngbAnQ8U6FfMJ2u4bxe5JfowiUTVvitUJuS YgPLA1lYuYvqgfqTvHiJTqsxxEWmaO9nFzm8JIdoqwqczdieOSESI4/oDDdbYiRk8C1I C0NaQshAEaSBYSKqAZ7QHINiQVVnbbIMjxm/X+ATirVwi3gn0I4ACVJDergAof/DF1JH KR8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697836671; x=1698441471; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5VSu/up4BtxqY9kA9X5D7qVX7VZc1rv3uL9WcJiZCGo=; b=nuz42I/+tqY9mGLtHUqgHaZnJamm1K1sT/1dZ8TCWix1n3bJOFP/iynGJT5pjOu9d6 /6ofU+l1ZswBUl2mt5ODiuYof10gvR/lmfxB941q2ByHuJa26CDXd1LLuA7/Rwi16b1E eLGjQk8Avxf6DRDBH9vBV9ztUWn9Un8q7hHfsaWDGXufGGPd/90p00H94RnJOMPGMGxs LNRTeOUbCQqSaBmg246tqam2wyPr2OAF36PSl3yYZhAMvtAy3sQbhNHC+I/nClIJSnMH LAOoCPucR6/lOcag6f17VHJ0TtcFy3wBdc4A+OWuaSr6vDVug36HWJRLF91MPVODJTVm bdQA== X-Gm-Message-State: AOJu0YxNk6teycJyPvJxK6tDRmRgLPt8IwHBACfiNnXf3ERdwJVnGyXg PLmQWM6UNrBbKdi4ilm2qdB+JIbpRNqQa50yZ/I= X-Google-Smtp-Source: AGHT+IGZVYhkb9MhLLVxzdsiQWh4RDf1U7olKW8wE7vuUmxOpZ31dkeH/Y14411XKhkmSc5K3FsSJKDrA3/S/KBwVjw= X-Received: by 2002:a2e:a589:0:b0:2c5:1a40:f26a with SMTP id m9-20020a2ea589000000b002c51a40f26amr2108118ljp.13.1697836669959; Fri, 20 Oct 2023 14:17:49 -0700 (PDT) MIME-Version: 1.0 References: <20231020133202.4043247-1-houtao@huaweicloud.com> <20231020133202.4043247-3-houtao@huaweicloud.com> In-Reply-To: From: Alexei Starovoitov Date: Fri, 20 Oct 2023 14:17:38 -0700 Message-ID: Subject: Re: [PATCH bpf-next v3 2/7] mm/percpu.c: introduce pcpu_alloc_size() To: Dennis Zhou Cc: Hou Tao , bpf , linux-mm , Martin KaFai Lau , Andrii Nakryiko , Song Liu , Hao Luo , Yonghong Song , Daniel Borkmann , KP Singh , Stanislav Fomichev , Jiri Olsa , John Fastabend , Hou Tao , Tejun Heo , Christoph Lameter , Andrew Morton Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: B9CAD4001E X-Stat-Signature: bp54xiese4gg53r56efqk5rogfggyes5 X-Rspam-User: X-HE-Tag: 1697836672-819160 X-HE-Meta: U2FsdGVkX1+5tGo8keC9tim+pdObezorPaUK6iCEsYM9+zF4+yw+NAQipQudiAtyNZPtSL5hTeKmRMhjfSa7l0/r7sModtHk96Ad4INKPnLZAIFkmwaoAnxadbySzQ5XFl8SZur3SX1YcdK2eqJradfiCfWchtlp8pzytt5WmtLh7TtzwlXJkQdMaW+WuOKMqTE0fuV97Ffu4feLSXeF7swwGRl5ftf6icHkSK7hAzuMLsiy41kjguU152NFlrXL/sXAvQ13zlxwf/NR2nGqzkmY0ngjQTf3MX0WuDSUlgLVmHxBAtfbySeaDBDRgyP6kMa5OZAb51DQOLV5HuKVDU7tjOYB1dYnt4ap9jWMm5tgzCjK7IoLcvtzLWYi4IvV6Svic9i1NniUN35U28Q0rJgPhzQSFtRkFRu2AmTRq/9sECmNHDPUDcAIQh/B5fDu/f+1leYtaEz5WPP2k25+aN6hqV9HfChRjR5ppkP53iZcQ0fsbe9YeWQb8dsjmFZT65Ei2LVxVx02NiSDHiv+QSlFu7ZWKSYt/x0nwuQ+p8/USiqrFwhazlwYqfzgHPk82bfN9NxETImhVc3SG03BeMKKyQQ+sTAkbmhJbdntY/kCq5LQ70Ziv8n7ZdivYYIzg/1UJu+YN/F2sAHx0YmAPC/F/iLx753f8xaybS5FExHdYO/wHbA2dn+3kqh9D+ZS23qtV4rSZQsVXUwhCUBbaG7OTcHpGpXbBZMi/9T93b7/MP4nn16+nDeiqCWE69lYxEQ1zoy2nbPz+4mEEGo3gd4+l1tz4dW3W1GsCa/Tm5onX1Cc9kd4MTKsp95e1mQF7yaHNGzDsGrAIYS3vhRmioPRwp/FXv6ZR3Pg3u5drNFDFf8zBBQlMs32GLhpbdh5XrOKgbyySKHe0lvRCwHn6DMvLYMeVorDvql2TaAZuEj+jEhGlOlmRfnRi8Dr4v8fOdv2vWjjSlv5Ebj9UmD H94NQHkC u8WPHJfApsIwOr8N7HpzEOU9DmqzBlXeE5SFGu2s9B5OqIk45plnS9gW9UecEC7sJKuqhzjfvCwdmX54Dfi/SWoIWJ2oHTH4VtelcXNQCmw05075YUIs0RS6RXLZBIyWPcHL9lpYfeUSWlhRuMN18zFGFIRvDp9w0YorPPXYa5ECKMOAkCh+rNZtFQjM9an/eV4AybCX5Yo7/KaN8cfNvwAW2+Jq7Iq75tkRxpHmZ+qus6SpvCYKHOjtc9dic32A9ze+wGMUmZIrMKvr8WeR4d4p4S+tGNQRU8NN4TnjBYYam6v1CCIwQ0GHgckt74OGjOTvO6/eiDjPo0aJRkUX5H+ZOO2M4GQY8IEuWzxFcrzyrYbNjGfYVKR2Cr4SArh7V/Qjc35dZYbaVXgZJiUvPbgolV0ZM/hA/nI/zP6YissS3bdtwjONjJLJrsLDiaK+edfzg/qOKnRXKqfKzq+MssYkG5d2ec7i1cC9qDSTtOSLLHYEuj/2ibnQe/fe+yZ5dJ0t8fiX6/btgT3L0JG6OWzij83dn8zNWvdiHa4QK45SJ3XhsmoBwHlEGT7i1bYL6j/BMuG9yS4/S9N0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Oct 20, 2023 at 11:03=E2=80=AFAM Dennis Zhou wr= ote: > > On Fri, Oct 20, 2023 at 10:58:37AM -0700, Alexei Starovoitov wrote: > > On Fri, Oct 20, 2023 at 10:48=E2=80=AFAM Dennis Zhou wrote: > > > > > > On Fri, Oct 20, 2023 at 09:31:57PM +0800, Hou Tao wrote: > > > > From: Hou Tao > > > > > > > > Introduce pcpu_alloc_size() to get the size of the dynamic per-cpu > > > > area. It will be used by bpf memory allocator in the following patc= hes. > > > > BPF memory allocator maintains per-cpu area caches for multiple are= a > > > > sizes and its free API only has the to-be-freed per-cpu pointer, so= it > > > > needs the size of dynamic per-cpu area to select the corresponding = cache > > > > when bpf program frees the dynamic per-cpu pointer. > > > > > > > > Acked-by: Dennis Zhou > > > > Signed-off-by: Hou Tao > > > > --- > > > > include/linux/percpu.h | 1 + > > > > mm/percpu.c | 31 +++++++++++++++++++++++++++++++ > > > > 2 files changed, 32 insertions(+) > > > > > > > > diff --git a/include/linux/percpu.h b/include/linux/percpu.h > > > > index 68fac2e7cbe67..8c677f185901b 100644 > > > > --- a/include/linux/percpu.h > > > > +++ b/include/linux/percpu.h > > > > @@ -132,6 +132,7 @@ extern void __init setup_per_cpu_areas(void); > > > > extern void __percpu *__alloc_percpu_gfp(size_t size, size_t align= , gfp_t gfp) __alloc_size(1); > > > > extern void __percpu *__alloc_percpu(size_t size, size_t align) __= alloc_size(1); > > > > extern void free_percpu(void __percpu *__pdata); > > > > +extern size_t pcpu_alloc_size(void __percpu *__pdata); > > > > > > > > DEFINE_FREE(free_percpu, void __percpu *, free_percpu(_T)) > > > > > > > > diff --git a/mm/percpu.c b/mm/percpu.c > > > > index 76b9c5e63c562..1759b91c8944a 100644 > > > > --- a/mm/percpu.c > > > > +++ b/mm/percpu.c > > > > @@ -2244,6 +2244,37 @@ static void pcpu_balance_workfn(struct work_= struct *work) > > > > mutex_unlock(&pcpu_alloc_mutex); > > > > } > > > > > > > > +/** > > > > + * pcpu_alloc_size - the size of the dynamic percpu area > > > > + * @ptr: pointer to the dynamic percpu area > > > > + * > > > > + * Returns the size of the @ptr allocation. This is undefined for = statically > > > ^ > > > > > > Nit: Alexei, when you pull this, can you make it a double space here? > > > Just keeps percpu's file consistent. > > > > Argh. Already applied. > > That's a very weird style you have in a few places. > > $ grep '\. [A-z]' mm/*.c|wc -l > > 1118 > > $ grep '\. [A-z]' mm/*.c|wc -l > > 2451 > > > > Single space is used more often in mm/* and in the rest of the kernel. > > > > $ grep '\. [A-z]' mm/percpu.c|wc -l > > 10 > > > > percpu.c isn't consistent either. > > > > I can force push if you really insist. > > Eh, if it's trouble I can fix it in the future. I know single space is > more common, but percpu was written with double so I'm trying my best to > keep the file consistent. Ok. Fair enough. Force pushed with double space.