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 CE9F4CDB474 for ; Fri, 20 Oct 2023 04:17:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 675F88D01BE; Fri, 20 Oct 2023 00:17:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 626DA8D01BD; Fri, 20 Oct 2023 00:17:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4EE618D01BE; Fri, 20 Oct 2023 00:17:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 3CA828D01BD for ; Fri, 20 Oct 2023 00:17:00 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 13256807B3 for ; Fri, 20 Oct 2023 04:17:00 +0000 (UTC) X-FDA: 81364529400.12.1430732 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by imf04.hostedemail.com (Postfix) with ESMTP id 4708E40018 for ; Fri, 20 Oct 2023 04:16:58 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ImpzmucL; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.41 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=1697775418; 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=Iq2GHe4S8Tx96jWYrK8W2I7QeV1dNeA11hm6wpM3tp4=; b=Y1qE0JRHxUrV0eP2qbtU037LaDso30H5jXHLNda7g4PTrkcUj8qFadveez+E2pMeZydWVN U4m3dXxkp+LNY/4uZsNg6EJ/fTuvUOe511haUhkbnM7niT5iUCdDxLceAwDl19yeuY5nHo LQRxUXVHtP6xCE5Q4zyDbG0R/0qMyhY= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ImpzmucL; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697775418; a=rsa-sha256; cv=none; b=wwnXsFLNxQkOloidhYYFwlyMhmChyL9ncdBJfgyCQSwRal3TNGz2D/Wv6swWN2yN0d1rXC t85uhXJIBl8iRUGINPoEHqtk9zmzjWPKXX0t3ZUx+8f5Q4oCUp8wTtkB9hVtcxSIv374ko 0eb3VbcDYifAJ3G8hZyauRs+Xt/b/Pc= Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-408425c7c10so3206985e9.0 for ; Thu, 19 Oct 2023 21:16:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697775417; x=1698380217; 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=Iq2GHe4S8Tx96jWYrK8W2I7QeV1dNeA11hm6wpM3tp4=; b=ImpzmucLPYwTQFVxZX4rtI9UojAjihkr/4RB+g/cptgLyH/vsiq0+pjEvuwwD2ur8i /J6JhuVSMJu0RbXSXd50/5UlvdZbAbRygIgaNu33NYb+MZXCnqeA0jDeSlu4RTv1e95q w72rcPUXU1rryyrdxk5fW17gYAZYNxJWjT709gIVIwqkmXAvfUJuDlWhDdwHcpowr0kp Fa3InsyjIwVMhfkIkU0kx8SE2kzaInXw15vGK09+f41sez8nBWjCjqhoNWb/8+1Orw/B NYOpAognzxLLRAfJFehnUjcFF+2JFUX6mem358yEjtJhU5G7gE/SL9f4ulA900VI5iZd biCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697775417; x=1698380217; 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=Iq2GHe4S8Tx96jWYrK8W2I7QeV1dNeA11hm6wpM3tp4=; b=hkmDJqhwpb7Dg6CS37wGqEDOhGAIW4aTA0TDdSMJuU2XKgmFQJ3VPOdbSM54YaSxAx y+DrU+XL7f9F+59mlb0Qe5auq+fBoCCaCRwiUGvrVNFPu+d6b5kLIQSR+86m8yq5eXPH lGTgLrGEizRunKsX1mxdZiLUcf2NOgHNTXdlI6yS03Av3sv4PYdzMJ7VfpFt8f/Lm5j7 LsL2MBERrOhvyT4BcnABmEHt/TMdlWCZbrqAnjfiUVwBo4pX7XihK96UxvLqPdihPFHL 2zpeAAl//qiNiZFch/yY6jaXZFzcdAxdFpU7fRbX7jCvziG0MQM3raIq9YtPql42ed0W o8zQ== X-Gm-Message-State: AOJu0Yz0+JBIkTB+llXQXV9Nsw9Zam7mHhV49yl9sLB5+GJi+4Pj4xq9 GlV2WzyEpFRsbi3eKwgbaZZBOjRjqqUFBQYmST0= X-Google-Smtp-Source: AGHT+IHy2TNgSOL8g18C52dgy5qs4n8ppcNo+OAu9yOihdXqOOdNEv7ANBv8LcrGgSDb/7EHGOPt0XwsKvzwzLbS0uA= X-Received: by 2002:a5d:5705:0:b0:32d:a369:1820 with SMTP id a5-20020a5d5705000000b0032da3691820mr426273wrv.64.1697775416523; Thu, 19 Oct 2023 21:16:56 -0700 (PDT) MIME-Version: 1.0 References: <20231018113343.2446300-1-houtao@huaweicloud.com> <20231018113343.2446300-3-houtao@huaweicloud.com> In-Reply-To: From: Alexei Starovoitov Date: Thu, 19 Oct 2023 21:16:45 -0700 Message-ID: Subject: Re: [PATCH bpf-next v2 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: 4708E40018 X-Stat-Signature: ua6e7wykycrtjq9h89eiw1uf8hj7gqzr X-Rspam-User: X-HE-Tag: 1697775418-570768 X-HE-Meta: U2FsdGVkX1+orXL84KxstqB7jDqBf995yn6VBgZo9qqoCmWsV9WXJBUwxw6nNdskMhPRv5bfC4VFoFewCoT/VkdWmzX9loeIPs8JZ60rMqT+mXmKBeCVgu/IOfIUBbrualSjy8YONIz03kNlGYsQKHYKrBVkUZoQB0g4ggbzgQTUzw9kbGTTzLPKq2iwRf7nUHsBesqIGv6IWG17H1JkS8W5xJN/c/xjScbK/eD28N++++CM/CLQmi2Lo57MudgDXg6x7sXx31PDxYzlQd2m/vpGggl1+u4SyIGFEwyZ2ihPKiSbJiQ02esMImZKZWCzmkpFAIfqJNRcOU8v2VIfFJJQ9YT91BgWeqsr7BJx5n5/vMJjtElrvhieG+66Oz5HxdyiLNy3Slu1ddzdKI7clbdKEie+WtfhounwPF2PGorq8b0xmFo7sU7TlBlFKplxcZFeOwvsIZ+MWfq+VnSeSqjWUJQJr2D2iWnZnXpe8d5fcuDrSvsvU9DLZT43upnBOW2Uya5IyQZ9q2jwCQ8Cd1r7qi0f0V6aDUEi5Jz1vlueTAdfVg0QpK2FmH8HmJc8cSWo9vkI9lVCZcVNtjB7EBJF3Uv3nm/z4urbYrSnawSrzVEkXnZVqpJ9WZU+ZaByU5s5isl/d6zi5XUm5UZw+zYFE85Sv2G5YfQqj0fI3mFPTlCXkJeN8tjI7wjRR9PDn/OIoVSDuovL8GnEri7K1bBZh7CnA7j6Lj9n7w3cClSBUuFSEC8NF+DlNCw1eSMJcJhOLxWYtn2uG20+/KPYMo99C+4geiHYyXp6yMS/yFH/7SmxG4Ot7FGRAEaYTcZL1KknNK6aiRg98ziTSB0R3MuW5qS8aa/prEuxUOs975SPWLFAsAJs5IegOjtAiOiy2Pvd90fsO4wnGPuyIF+ESOG7d9zYIRkuSXCjY+ifU2WhhD3UrSu2PiRIr9y4VJ3auY0+WIXFGlzNcx9hkoG XqDPWu2a CEnijV/AftKSw93BbLtqKucx6PAZPYOS3jVUjGVWbl7ZCct/rsHdyU+I+h42sDPeZyiqUQDMVw3QvoA3v3UIwrY/SbA5osP5K+zQSHReopoDQkpvf1Z3cEXmwIy+H7O0b1HVOWiKme2xtkdhH72BWLFRin+g3Izqenjd0G3PcVTmXIovYHGg57MmIMiT6dDema9D5xIZ2knRskZ+a+ujKoyiHyUXKElHEtXjwwYo5/rKngDd321ny+I4EWb/8itlvPn9SYBjy9gkAfDFiWw5VqlRg2nj7EQAVpCbUbibCfL8vwZyd3Nb4WHAtqbqWmk5AfE8QdSTRRhU/KhPydiyYnsdKY/NLUN27TJQJhLjvMbUoIoEi/4zAP4LWrdiEIdEbSbaxbd56S94xCHSfiq1vI4BzBgY3Arx+kX95kf5svYIceaOkywpxeeVVVcNAvvANJ6hQKlPFF/8AKlBZDd+mekPswC44+yYHcL2zEXyK9krZrxKabO9yNTxY9/W7jkLhATUjA8A0fMH2rJsh0zRYrGDbZFg3AFjIQdj9HB2JgJTU2rv5Gaw04Is/OD0EUSorestfY9+OfuqaP7Y= 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 Thu, Oct 19, 2023 at 9:09=E2=80=AFPM Dennis Zhou wro= te: > > On Wed, Oct 18, 2023 at 07:33:38PM +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 patches. > > BPF memory allocator maintains per-cpu area caches for multiple area > > 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 cach= e > > when bpf program frees the dynamic per-cpu pointer. > > > > Signed-off-by: Hou Tao > > --- > > include/linux/percpu.h | 1 + > > mm/percpu.c | 30 ++++++++++++++++++++++++++++++ > > 2 files changed, 31 insertions(+) > > > > diff --git a/include/linux/percpu.h b/include/linux/percpu.h > > index 68fac2e7cbe6..8c677f185901 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, gf= p_t gfp) __alloc_size(1); > > extern void __percpu *__alloc_percpu(size_t size, size_t align) __allo= c_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 76b9c5e63c56..b0cea2dc16a9 100644 > > --- a/mm/percpu.c > > +++ b/mm/percpu.c > > @@ -2244,6 +2244,36 @@ static void pcpu_balance_workfn(struct work_stru= ct *work) > > mutex_unlock(&pcpu_alloc_mutex); > > } > > > > +/** > > + * pcpu_alloc_size - the size of the dynamic percpu area > > + * @ptr: pointer to the dynamic percpu area > > + * > > + * Return the size of the dynamic percpu area @ptr. > > + * > > Alexei, can you modify the above comment to: > > Returns the size of the @ptr allocation. This is undefined for staticall= y > defined percpu variables as there is no corresponding chunk->bound_map. Good point! Will do. Thanks for the quick review!