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 1B35BCD610E for ; Mon, 9 Oct 2023 16:51:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7B9758002C; Mon, 9 Oct 2023 12:51:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 768E680027; Mon, 9 Oct 2023 12:51:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 630B88002C; Mon, 9 Oct 2023 12:51:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 514F780027 for ; Mon, 9 Oct 2023 12:51:39 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 1350A12029B for ; Mon, 9 Oct 2023 16:51:39 +0000 (UTC) X-FDA: 81326514318.24.8BA33F3 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by imf03.hostedemail.com (Postfix) with ESMTP id 36F112001D for ; Mon, 9 Oct 2023 16:51:37 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VuTwKsPj; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.210.178 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=1696870297; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=yoVvS5aTpmgzM3CgSvcww3KK8a1y4W0NXCISlBNyW4M=; b=in6PJgFx1ohp/qWMGDoV717hJ73Ps4P6BbJLCJpDDq5OAHec8MjBsPgEwJXzsLeTecU9CR BARKgeqFDtoM7cVLTlc087UXoKGafhRdvR70qGLTiY9ZpxvTPQcrgJKI60zURL11vGazBU MFr3cFniktW9Lk4gJZZ8QlHrL2uI9SQ= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VuTwKsPj; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696870297; a=rsa-sha256; cv=none; b=TYfJ9M33KS2KAInJiLGXFKCsL/9125z59sARovrlmx/Nwh9LlMeirsDCvi0xV81vlxSxHD MD8ZmE7wRwPQKCmqqKdZtkDdsUcyyjWB5002w/FgjHDgmjPfNpO0NKCtLkj+mR0QvOWuAM f8ZEnTTmNXU58g8Ufu0GLMO9zrxUAuo= Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-6969b391791so3158996b3a.3 for ; Mon, 09 Oct 2023 09:51:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696870296; x=1697475096; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=yoVvS5aTpmgzM3CgSvcww3KK8a1y4W0NXCISlBNyW4M=; b=VuTwKsPjsnqexf51MufY0XPSzSQO+m/Mt1PyvYE0ClQgfbG1POXCMGqF1BbF7oBjBV /kV52x2Y8ErQ9//RSZsYCPeQnMclo2o8u9c2H3E7+KowEsad/JDORAmlI+w0siXvESZQ JOwnVZQUih3q987BbjWYCcoxYjT+XOa2BS/hqpvWP9hj472Rcn++tFhYePnUvBGAOCmB GWxzY893E0b2a6KM6UCZQU1wlp7JFhQUX4E9/B9G9q2xATSUk18RrPtrzASAv6WmD+YW 2k2v9FwLay75Qyhr/nuKSXYdkyx60P+WPw0ER7TuwM7d02kkqIgpeLMkqCa+lwh4Jq+5 w+mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696870296; x=1697475096; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=yoVvS5aTpmgzM3CgSvcww3KK8a1y4W0NXCISlBNyW4M=; b=AARaLxsOIlGFXK9EUX4zofHtFcBk4UQBM/1nRycAMlnPSTergfbFrToC2YQ3c8icNo YupOKP0p+ZIxUq1sTTznVt6s+lOoCAnvUdRROYpfN0eOEstnBBHOlsAdkg0nOf0WqMdz oAvKzHP7RkMuSUymlmbpHYZdvdHOo5ovatDpshcT+m5MJTFSwF8lBXyHJc0l7a9vhfa9 R2tkmrVwcRX+ZiCfdl3g/sP4VzbTHKAflnu45yAV8itDRWk2+3Q3wJsyyW+0G5lHGcDq pG9rdJuymfr1iSVm3M/8lqf3yIfWC0+xaCveH8NlLE4mhse/DL6sJsZs0cXlcQfL3Ctx NGHw== X-Gm-Message-State: AOJu0Yy1GDRouiRgpFY0MvU7qLm2wfE5kmJkp/IAb0mtut7Ln3eqd+hE Y/Ia4eIE7sIugYNDb5hn0Fo= X-Google-Smtp-Source: AGHT+IFm9S+x41mCOTxe0jaj3TZGFxnBlagrj/PVjtNv0mmEckhtnIt64aTztKWitTsXQoqeTpWfhQ== X-Received: by 2002:a05:6a00:3a1f:b0:690:d620:7804 with SMTP id fj31-20020a056a003a1f00b00690d6207804mr15428631pfb.13.1696870295704; Mon, 09 Oct 2023 09:51:35 -0700 (PDT) Received: from MacBook-Pro-49.local ([2620:10d:c090:400::4:85e9]) by smtp.gmail.com with ESMTPSA id y3-20020a62b503000000b00692b7011349sm6642183pfe.188.2023.10.09.09.51.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Oct 2023 09:51:35 -0700 (PDT) Date: Mon, 9 Oct 2023 09:51:31 -0700 From: Alexei Starovoitov To: Hou Tao Cc: bpf@vger.kernel.org, linux-mm@kvack.org, Martin KaFai Lau , Andrii Nakryiko , Song Liu , Hao Luo , Yonghong Song , Daniel Borkmann , KP Singh , Stanislav Fomichev , Jiri Olsa , John Fastabend , houtao1@huawei.com, Dennis Zhou , Tejun Heo , Christoph Lameter , Andrew Morton Subject: Re: [PATCH bpf-next 2/6] bpf: Re-enable unit_size checking for global per-cpu allocator Message-ID: <20231009165131.coaxglwfgrjninod@MacBook-Pro-49.local> References: <20231007135106.3031284-1-houtao@huaweicloud.com> <20231007135106.3031284-3-houtao@huaweicloud.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231007135106.3031284-3-houtao@huaweicloud.com> X-Rspamd-Queue-Id: 36F112001D X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: x9m74sdyyfb6gn6c6neg99bxoge5ut16 X-HE-Tag: 1696870297-575640 X-HE-Meta: U2FsdGVkX1+E9gR0XAH8TwWTC5RWQGQB0jBy5RSnHNDrJo9WaMtWQW8btkBXcq6C/5N96ZEaAldfuE7s15GBxCA3HFDlYDbUdkhyjZczoQlE0WarkaQ/T68Qvf23ZdZ1v3knUC8aDfPya+aAEhkUoPWOTYQiRdgxULZodkuzovnedR+x5K0f1uMksv3cCMlkVB8zpRLjfbEZ/IkLWk9mLuFIHbtV7sIgDDPmOBVBg1IBI2IOPqHHF7LIsuip6ixJtJJht0NpP9ByEOM4O6Tr8sNr4wWWLk1Y4LDSkuj+C9yHf0qVmzxYDpfKiw8GoRgjI1UxSdgwwSXeCiEVkdH6mNid8J/s8BN61xhY4zHDszlhRi6Im/LDLQTBZ/JkdGHsNgCHLRm3KE2yd6ETTEoHsDLI1SYe+x//lfSJbXQHNmwOB1HSwG5+aFtsiq2313E8Dw1u16VMg2UjyhlYaHGDZ8tX6UmuWuH7R3/YIff4K4Mqcc/7EWNBQX5b0JczZXV8CYsGgXqjCwvFruw6m7wG7wrqGwoekbNKqPN+CbG++Lp2H2CKqlG5pDF+MEcNLR7A8BJB2PgyL5lHQimc3m7ONljLviLnbdJM2gMVfNbc4fIpF3ZjmnoGLFx4rz1ICil00zeFGynSVM3Vx4tZ8s2oRFGkV4D3GU+VziFGwQTfF4KvUKO46AJVyLWloG6RppbdcsyVabCDZO95VeHAghwu1zAIDF6GVYc395aMSIFJ3Vv4NlT4A79jqopHAsaI9KXUAnX0rtkYuMQs00xOx3SE8BsAw89upYzWIGrJCfxj42eTxxKXegdk6L6ddske0ZXpOaAyYr50Q8Ue4VB3c8zhn/s+uY8aDW6QZUuHDngQYEhAFfjjhtz31aywtLtTo7zkVVL1HyoX2VouHWJJsnZt4KEqiTU0/ixJXrVIHVeVDhbLF8jku86o2c93ODZwaJVratuRSE2v1j9vQnX+2ra Z8ZyE9/Z r5T7kK0W4KvKjCQPhuI43JmK1TFH0dZxdYz44xRg5oojGGehfCyEzcJBmUED730a4i0y5QUDCnE2QOQMCQXKw7Jh51ekd+KXlFoWayMAOjhVnIE7sRiKHeMBjL1xovODCUKX/rbK5GSqAK5DhWinxJvfSJBPsmkqQ/iwJAYWuw/ukFfXvqwAtM5L4cFSb1eIyND3ULMLkIz35EJO7EP8ZjNEPKO/zFnwrsH1NuX6/OW7+6edDwPt4SdnqjIZwntuJgDDqLv0iGMn0U14UNbXRcc0NDfzPqflX4k2V0GzimoLDtAlWZRBvpZVnTNd4eLBr+GDmP0QluQP1D1JgOZHjAlLt2bheH3w0oqX01rQx10+ryPwQ37WbQKgy/XNppOoxEc6JznjQPNB+IzyVCalvdS9DFh+zNOVSLIfTyrqgp3Lyghg6+L3is03Acp1r7C9RpU/XC1fgqTvutx5i9xQbmSOuDorhZPR+9dmkeDJyDPC+liZnYJXz5+1UNdN+M2UL4LBEjzCVNMjcz52DdO4udbvdjGdyF9kdkBU018lZerT1IQ4vBucLMS5Fy4TU+P/WvtJRP/ByjEVniC99hy92Mbo6IFW4qzn7HCYD+Kj6yoEOqrE= 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 Sat, Oct 07, 2023 at 09:51:02PM +0800, Hou Tao wrote: > From: Hou Tao > > With alloc_size_percpu() in place, check whether or not the size of > the dynamic per-cpu area is matched with unit_size. > > Signed-off-by: Hou Tao > --- > kernel/bpf/memalloc.c | 25 ++++++++++++++----------- > 1 file changed, 14 insertions(+), 11 deletions(-) > > diff --git a/kernel/bpf/memalloc.c b/kernel/bpf/memalloc.c > index 6cf61ea55c27..af9ff0755959 100644 > --- a/kernel/bpf/memalloc.c > +++ b/kernel/bpf/memalloc.c > @@ -497,21 +497,17 @@ static int check_obj_size(struct bpf_mem_cache *c, unsigned int idx) > struct llist_node *first; > unsigned int obj_size; > > - /* For per-cpu allocator, the size of free objects in free list doesn't > - * match with unit_size and now there is no way to get the size of > - * per-cpu pointer saved in free object, so just skip the checking. > - */ > - if (c->percpu_size) > - return 0; > - > first = c->free_llist.first; > if (!first) > return 0; > > - obj_size = ksize(first); > + if (c->percpu_size) > + obj_size = alloc_size_percpu(((void **)first)[1]); > + else > + obj_size = ksize(first); > if (obj_size != c->unit_size) { > - WARN_ONCE(1, "bpf_mem_cache[%u]: unexpected object size %u, expect %u\n", > - idx, obj_size, c->unit_size); > + WARN_ONCE(1, "bpf_mem_cache[%u]: percpu %d, unexpected object size %u, expect %u\n", > + idx, c->percpu_size, obj_size, c->unit_size); > return -EINVAL; > } > return 0; > @@ -979,7 +975,14 @@ void notrace *bpf_mem_cache_alloc_flags(struct bpf_mem_alloc *ma, gfp_t flags) > return !ret ? NULL : ret + LLIST_NODE_SZ; > } > > -/* Most of the logic is taken from setup_kmalloc_cache_index_table() */ > +/* The alignment of dynamic per-cpu area is 8 and c->unit_size and the > + * actual size of dynamic per-cpu area will always be matched, so there is > + * no need to adjust size_index for per-cpu allocation. However for the > + * simplicity of the implementation, use an unified size_index for both > + * kmalloc and per-cpu allocation. > + * > + * Most of the logic is taken from setup_kmalloc_cache_index_table(). Since this logic is removed in bpf tree you probably need to wait for bpf tree to get merged into bpf-next before respinning to avoid conflicts.