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 275B3C48260 for ; Wed, 14 Feb 2024 01:38:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 691338D0011; Tue, 13 Feb 2024 20:38:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6419A8D000E; Tue, 13 Feb 2024 20:38:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 509378D0011; Tue, 13 Feb 2024 20:38:09 -0500 (EST) 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 3F98E8D000E for ; Tue, 13 Feb 2024 20:38:09 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id B62541C165B for ; Wed, 14 Feb 2024 01:38:08 +0000 (UTC) X-FDA: 81788698656.18.9E11774 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by imf15.hostedemail.com (Postfix) with ESMTP id DFE22A000C for ; Wed, 14 Feb 2024 01:38:06 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aB4HExmg; spf=pass (imf15.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.48 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707874687; 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=kHcof7QCIfZmj7AKADRqlVBUmWlRCk5QuZwqBYLbwMc=; b=bgOGMSh2s+46IKI5mB6vrXe3rot8XLv6IE8eSYFVKIjBg8sj2KxPjoeYZkEzueFgrH96HN d3PZD2jByJGGYFXQursjRPRUhDnfnOIwf8TZ0F+PoW3p5cFcBPY2sMiLTz9Pcw5V9IupQ5 6Vunpn9VYzqkmXGyKVtXj+A+z7JyKEU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707874687; a=rsa-sha256; cv=none; b=6O7rc/JUpELcbUsSqwkDSC7pRfT/2Lb0BHwOsnBx7xw2hHyq0Wn5lczvTJm7Uwz8HikY4X jarM6EsifFFFrNKqZXZbjirUvXMiZA3yCGMwtn/w7buhd7ucj72rVP61mf9BtP86fOndtQ WWdJI+zUcIab6/gyVQxDgFpuW2JyTyE= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aB4HExmg; spf=pass (imf15.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.48 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-33aea66a31cso2912182f8f.1 for ; Tue, 13 Feb 2024 17:38:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707874685; x=1708479485; 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=kHcof7QCIfZmj7AKADRqlVBUmWlRCk5QuZwqBYLbwMc=; b=aB4HExmgQekoX0ZHE/HeFTITu1eAYFDrjW8RE4nk+DB7W11O04t7EffAqQ2I2ETYul JieimW8RvurcIbNUVMrxBD/tBJPKHQdEC5+yMaBX/ce+DPZLHaXg4Xhk339c8vnDL6SU Rd545y1dZ6pP1Sr+R+RhF08DxppFQ8+Ko6qcTw9vmz0aSyIGyRc1rlWJE+0pIt9RfE7D uUFOwGQRApaXnlokoABkjr9SmAKUYNuAMjiq4GIWEf4GzHtOj6YxLzQsEsUPQnDpps+q 0wljffqMllOJ6oS0wT5ceXBMKSpP1IucYPFLCshOKqb/0xbXqNKniTuEXKERexbiUgj2 adEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707874685; x=1708479485; 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=kHcof7QCIfZmj7AKADRqlVBUmWlRCk5QuZwqBYLbwMc=; b=uK92TjY3W8y7gu4bJlsXNI+xLKwVo2idl796Op3II9G7EXiIYFGHYXYqzxQgiZyJeS xUkZVHV8aJhIa8XzZ3jVADBO5F353gDNIRv/CPMsZCyT/a0qWvKnQRMMdS/q5kFklljV iGsa2cyozFhZJ4lHGsQmacAUrWDi191L4BNsqeDwIQ+f8ufhM3qO6haM4I2z/fmd/afm SIDOfIN6lsMCxZytvj3lsyx1lpz8Be+6BTBIldACXmVtAl1tEy80CGWtQ/ILTnclikOR jT6CuQMvhpyyp4VtCVAaEXdKtAA377Q+NqWF5d/KP6ZfpkRu4maMzP/9X6vMUP9yJ8jW h91w== X-Forwarded-Encrypted: i=1; AJvYcCUaVh6AGaehkEfZ+8vPbSa2YQr3AiBph9mg9cFSaztbYcQPZNrtd+nNiRK1v0uzqZh1If/fMEAm9iUsxc4736McZEY= X-Gm-Message-State: AOJu0Ywe1BA3hV+T1izEvErWWEse0OvaGpQAW51hNYzDUDEaxghcCuSS G0LYTg3LZKBRZhy80mCfTHeqa3AIWEzYCbtBbSh/A92tgliDAJzdst7RA0U/udyuO0cXoWWvodL Ud5iKQ2fn1ThbdBaUDZ2lDVSA8OM= X-Google-Smtp-Source: AGHT+IGsfWlyBERzY3gGgEv5j2eEm1NzU37D024cAj+C7Lh60FGBjWx5oiLl1XbawoegwGkkRd3PPksH6bjr/UXnzzk= X-Received: by 2002:a05:6000:1003:b0:33b:2ca6:5a4 with SMTP id a3-20020a056000100300b0033b2ca605a4mr639937wrx.4.1707874685288; Tue, 13 Feb 2024 17:38:05 -0800 (PST) MIME-Version: 1.0 References: <20240209040608.98927-1-alexei.starovoitov@gmail.com> <20240209040608.98927-21-alexei.starovoitov@gmail.com> In-Reply-To: From: Alexei Starovoitov Date: Tue, 13 Feb 2024 17:37:54 -0800 Message-ID: Subject: Re: [PATCH v2 bpf-next 20/20] selftests/bpf: Convert simple page_frag allocator to per-cpu. To: Kumar Kartikeya Dwivedi Cc: bpf , Daniel Borkmann , Andrii Nakryiko , Eddy Z , Tejun Heo , Barret Rhoden , Johannes Weiner , Lorenzo Stoakes , Andrew Morton , Uladzislau Rezki , Christoph Hellwig , linux-mm , Kernel Team Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: DFE22A000C X-Rspam-User: X-Stat-Signature: ncz9kza9bx6h4bkm8tu1dzqnsrekkw43 X-Rspamd-Server: rspam03 X-HE-Tag: 1707874686-496463 X-HE-Meta: U2FsdGVkX1/+wJxAXlSMtVLK4xifKG/mfifVrw4VImIROOxs9PVDxkwps/xGk/i2yhSDamoUfCkEpuAgFEneT8cRldwVv0pZh2iJ1qUD1JZzbf+OWVwJNY1PP8Yy5qiP6ZjzXJEaNutTtH3lPe6zT7SYQnNyH9wQjM1vjKbpTIPR5U8sa0FNyqSMouRJl7HTTZqVMkIbylE9/rTckwkkV89t+TeE0CTY38HhuRGKLvHKKMtRnZvs+wpePtYGdM6nrL0Ej7WBQprdxU99p20+9QyMWdpXVrdFPD3Iq5Gfd/a59LrFsrZMET00N6SOeCTRxbSHXmhyX+ayNqIzyIBpKAcfkG+BdqId+5Rk16jVnsqDyycN+H/yoHustacKbDzS8RaOoEI5jXtD3eilBh2KbEbYNElW688vNutcFKX2LzBYljCwoZu++bvV0G6OHPcdESq8Z3LuWnQBjYlYqz+YS52Q7eQyBT0LAyXF4/B588lahl6+iqoX1U8QrlDyQVrAhgKFXVmCZIu89rcSEXEFVgJGFY2CTB1W7oUR8hq6COdc7IIduW+HpAeEbh72fh7xBUYKqpP15YH0+f8YndSZB2PZFDBXe7Z+VaYR0R4/BC2JR7Zkd8zH51xaMb6CXKHUmx/6Qz9wtOM1dfz2PcGIBOei41pWTfmL3qw3uR6iJl1myWYdcPNCb7haBXex0X6rJaBA3f+buK3P4lj60slYxQ9aSkyvbiBqOYu+jkkVr/zP84xAlmOFj0ufXTkdbwR0q0bhpZ5Ngwq8KgO+hS37KATq1CD8XDcEPNmhzEOuF9ob4vwM5pKQUizBHkY2lyRmzGtt6feBKuV58TD6aacWrDXJq0kHEjhDoRNaasM8vB6ECG4DWeCOqh5n/k/VvRa8xUMYm/NiqeY+JZgPNVXN5+C35Bgp71qK44hhKnUwVruCVtPluYNaB+vEt0l1EOaapKkbTiBARdqWuu1M12J OGBDHENN d+SEoinBp4tqczzL9LdPI5UBesfC/IztaffdF518MgfuYQk3q+MMu50mn2/d6S5K610gRPIkwxPhyzgF27nrEuMO7f2aBuossBGlBGoYB5oD1XAQURrKK3XzL2N1m6RQRHJiwKwgRnFMGK32dmM1tBvNSSI34ONCpGk7D1+PnAo3OwfqZGMCg44zxRSt8+EE0kO1jZ606iXNceM1AmoHLjBEm5YJVtXNGUj4V8MepwsQ//DL0YziFcKSoXruHTQrF5ZJmEvRmGofHWw7VqxhF9dMlBia5+TBL+Ab6dc51DtB7j6MqS5gFX5KhM5eLmMmFWRYP6TjsevvzNNFamwtiOLWGAQe3j/7qWYA5syt+Dy3iZ/R8KhdPmFXGQ8Trrd/bV+GLcDqjpRn+5CAgqKY47jjN3Vrez3oRMxTHGhE+ygxcgHsB98DPVhSsi8L7qf9evK+dZ5WmgA2AdAJ7zKR2YPwsZQXqgjSuiK4ciYrtKTiFhJqSgExRKhBwgT9Ghcq/E/EUyHqEiYoC3+8= 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: List-Subscribe: List-Unsubscribe: On Fri, Feb 9, 2024 at 11:06=E2=80=AFPM Kumar Kartikeya Dwivedi wrote: > > On Fri, 9 Feb 2024 at 05:07, Alexei Starovoitov > wrote: > > > > From: Alexei Starovoitov > > > > Convert simple page_frag allocator to per-cpu page_frag to further stre= ss test > > a combination of __arena global and static variables and alloc/free fro= m arena. > > > > Signed-off-by: Alexei Starovoitov > > --- > > I know this organically grew from a toy implementation, but since > people will most likely be looking at selftests as usage examples, it > might be better to expose bpf_preempt_disable/enable and use it in the > case of per-CPU page_frag allocator? No need to block on this, can be > added on top later. > > The kfunc is useful on its own for writing safe per-CPU data > structures or other memory allocators like bpf_ma on top of arenas. > It is also necessary as a building block for writing spin locks > natively in BPF on top of the arena map which we may add later. > I have a patch lying around for this, verifier plumbing is mostly the > same as rcu_read_lock. > I can send it out with tests, or otherwise if you want to add it to > this series, you go ahead. Please send it. I think the verifier checks need to be more tight than rcu_read_lock. preempt_enable/disable should be as strict as bpf_spin_lock. The plan is to add bpf_arena_spin_lock() in the follow up and use it in this bpf page_frag allocator to make it work properly out of tracing context. I'm not sure yet whether bpf_preemp_disable() will be sufficient. And in the long run the idea is to convert all these bpf_arena* facilities into libc equivalent. Probably not part of libbpf, but some new package. name tbd.