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 CEFF6C4829E for ; Tue, 13 Feb 2024 00:45:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 340B76B007E; Mon, 12 Feb 2024 19:45:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2EFF06B0085; Mon, 12 Feb 2024 19:45:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1B7CF6B0087; Mon, 12 Feb 2024 19:45:15 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 0CDBA6B007E for ; Mon, 12 Feb 2024 19:45:15 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id CFAFC1A0284 for ; Tue, 13 Feb 2024 00:45:14 +0000 (UTC) X-FDA: 81784936548.21.E8AC911 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by imf27.hostedemail.com (Postfix) with ESMTP id 0753D40009 for ; Tue, 13 Feb 2024 00:45:12 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=NyKZf5Or; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.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=1707785113; 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=uD96BWjfWvHgSMWnXXTL7kIKqCF77WFRauw+Qxj0jA4=; b=OS0SNppGIHYUBMQ19jeRlq3wb+l7vkl6c6+wbx+lVfxAHAxKXg22VZ1l8eJoaXD6VYtjfN Z9XhrlP9k2Gov49wHK3l6v4YpGi1lPlgDUlNkm7sD+/WASIK/aa4jiaOH0BbDJuydZ9umi bfGsgU2+kE0rEVp0ACCkw8dV6B7cwc0= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=NyKZf5Or; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.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=1707785113; a=rsa-sha256; cv=none; b=qpyPvPRBTGyidtPkvasoSl4Acgc0E103Ldmn+UWgEOuVvQnBHdCkAcO+5Y0ehrhgpvvgtc fe+9oU4SoXmugru8IlcUKs/mYn1cfFYLV91npkEjVbah6YYYFx9EYe6ihkwSSzP9RhH93/ ImZmzD91XeBnxuHhJdTjl9jivpqVOSg= Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-410deab9c56so9746015e9.0 for ; Mon, 12 Feb 2024 16:45:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707785111; x=1708389911; 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=uD96BWjfWvHgSMWnXXTL7kIKqCF77WFRauw+Qxj0jA4=; b=NyKZf5OrlMZ6atZZdDvPb9m7oWRfABl5oHeiAszjFlGB+x8n4MdS/yokjSIyjEHOVj OTJG3JJMlBtLTTqxU/aRRj/pn2hSOAuNFY7qBiKKFuUR3R8LahDGm/nmbjx7YWRXmwgk vbPjbe7mbEHO2HcIlLVffxNYMOAnrbfrKYo84oUtXle/Ji/vyKj6OogX9an4s+ximJcH hsmDiY69Ha3SQ63QCAENNCbtSIwYbuOsDw0fZXxjOu7Q+xu5Yg4AM4n+0FkjvFPWx8Jq b1UJjK7BE8NcRQ0gu65dT6XYpCiNR0yRFGZbb71gQJFRHU5LyBYVlBFk8Lq2kVrPwfV0 6C/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707785111; x=1708389911; 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=uD96BWjfWvHgSMWnXXTL7kIKqCF77WFRauw+Qxj0jA4=; b=e9vhmRTpyR/WVNnOu84nnQoSUoEV5OIcUDd/BgWlI8I8xf7jsk0vw1PAcnD6H2UiNX cGJv630/NK3XjbFTMH2LMIqyazeZjCUSemmnVUWNnfbj6xBvawxPDB/MR00gsVkHfrxD Q6PH6lc55BSgrn6U8RoB07GrKf+E6X8YO2/fZ8b87ZfvFpvnG+yhFq+G9JVH5BZ4UsbJ bh2QmrqmGb2E/LPVcttRaxtHlu/6VJz72mYKJzLUq6WTwjM9E2Ct1X1DI/KXspRpmlzg e+cujTtJi9Gc523Q7pnkq/XqDlOXsowM8KKIcbizHs44CKByzC5MfsIsDHEpPi2ZcKdZ jhzQ== X-Forwarded-Encrypted: i=1; AJvYcCXuYEeoWliELxFduj/aayMHX6w52pJ1MH/iQzDZYxDyfOg1YHypbRbNwQXxpuAk4TbE2WELP4+S8a/myhCKggLOuag= X-Gm-Message-State: AOJu0YxpofZ566EVm8MJ5RTy+zSUCfrufH/lqRW12AYOZYkNfKZqxmH9 0bHbw9tV0C2CQrSqMvSWVkHuOhYEsSNnnl+IHU9fhkaxcLCR/0Y3AmLELolTswlYWZEW/9QIBMr Y+oUkbbqfzi92/RrpHvbAEWgVSs4= X-Google-Smtp-Source: AGHT+IFQXs/sIvqmfsvQjhZCAIdpqZewcOOEM+r0JKEBYRkjLfnAvLNvjQ+FCxsh0SYKEm2/9mxVVKGS+enAhJ3ge+0= X-Received: by 2002:a5d:5101:0:b0:33b:7655:824 with SMTP id s1-20020a5d5101000000b0033b76550824mr4906024wrt.2.1707785111342; Mon, 12 Feb 2024 16:45:11 -0800 (PST) MIME-Version: 1.0 References: <20240209040608.98927-1-alexei.starovoitov@gmail.com> <20240209040608.98927-15-alexei.starovoitov@gmail.com> In-Reply-To: From: Alexei Starovoitov Date: Mon, 12 Feb 2024 16:44:59 -0800 Message-ID: Subject: Re: [PATCH v2 bpf-next 14/20] libbpf: Recognize __arena global varaibles. To: Eduard Zingerman Cc: bpf , Daniel Borkmann , Andrii Nakryiko , Kumar Kartikeya Dwivedi , 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-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 0753D40009 X-Stat-Signature: j8ypg3x84ruthehre3xb7isuptac8eak X-HE-Tag: 1707785112-794134 X-HE-Meta: U2FsdGVkX197wQqKF3rq40Y/SBnW2zv81ltVAKCOqj6Shif+O/LmkkIEwp+Tgpg6tGD7nHmCl9RzsSz9U/ylwmkpsmLMl/8kPCR3hZPDbjQuIqWg9AZifsn3NMIKbbFqjhuRrHQ7I/bV02TvS64ENwIsDU/jbetxwDY4Txo8HEPI7ZLX1RAfBMA19Ixj/QillGrCln7G+bY076KI/xJXG+IuRkTdnrACx/d4Gc2enIMB3tFLK2MAGzKGFnd56Px6+OnwmCcts6ZOd0bn+fjCA04n+bDuBhVo//eev+rF/M8JQxAPDMXjURZZkf4tAstTn0yyAERB/4ce245FTkaw+L6zv/yIJOP2feUBmPzG94Qbp3qoe6wzjsaq0ilrYkyjM46xrVOTfjZ3eHp+B5sS48KOiyFPLM82JrxEg0nIGDXA1NXtAuY6LWezvnQ91XNqU4siFmFgEm9wo7T6POfDqr+Cl1o3JIrP/nvjFDFE6JHDGMdH7MA0ZnJhUAdX3LBOGM5oCrlKKwMg39qVyl/Uu0YODnH2YAAVlXlh2XZXd5SquuVLus+8E992jCJFyh04pse4qzuYA4oS3Nx2VxA7S8+/Na6bHych84fAnbYcAvIBJft2AIOh6HONhN/YdQmBfQuaCTK+zca1SgZhsiUHLhI5EZw59YTfx8GZzzeDV12xpLKRtaUCqEPBNJz8Hb3qUO0RGqNjKdvpC2hizKRkiigZVM9Ib5IVl+t/YkqricNs1ZGoEoavxQ7AVbbu/QwWGfkUssh/bpPmzvNDAAVY2yhpvmOn3oHsLod5XIzxeUiZpokZkBfxOmCAjBaJPZWyjGDLaMBiB4Devn1T9fA1B2A4EHN9ZFHC3OT9MP8vcJ6jlOqezB6zmdvyGH6bR/Cj1dEQo1PSSYClhcHiefXa4hmz7VA7fW1SO5bv3sFGjipFLEgPh+to0LoPApenGG+I3RDunMSJKrivlPRiB5O VTemh6Dq 2Tjj1CEv7sZASOV0P2nMp9vSNv4ZJCcSm8bB8kYyFCW/FOf034qKVv2ENrei9RUBImfdKcPWu6YesU3/Oeucl7TxPnLZV6m743Btk8k+JatT5VUfJlwcgp/RZH8CSOPZ6GqVgS36UO+X30F8iO3pNaIcuS6Tmski+NWADGPtyAXdsMuLpPIM/VvbL+CU2yEX8qLVJcCfIq3EdgbS2YwB4tyjfzYLl4iKFGb2gcqtWpdS/Gx1bkRoa49xj/b7kaITbhResRk+T867Yx/+q8mnJDqgdraZMX96uQrKret9yKdMgsb5vdaihKAd6ufJoy5SwdDp60ADUXhAlCoo6ywA7e0GlsGp748keIYjqEPwQqq3Ldo2Gk6KNfVXSv/1bJjMtlksJR0TLiWwungFq5Hvd9G5p4Mkts/rRk6QxHlqHMBJ2WUM/00I1ZtqRaLVibpJntzdSlNGs9ioUFbFRfiZ6n/5c2MfYWAzlyD9NbSKnkZXMvyMijrL+RKjCbhxt7UGGJv1q X-Bogosity: Ham, tests=bogofilter, spamicity=0.000021, 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 Mon, Feb 12, 2024 at 4:34=E2=80=AFPM Eduard Zingerman wrote: > > On Thu, 2024-02-08 at 20:06 -0800, Alexei Starovoitov wrote: > > From: Alexei Starovoitov > > > > LLVM automatically places __arena variables into ".arena.1" ELF section= . > > When libbpf sees such section it creates internal 'struct bpf_map' LIBB= PF_MAP_ARENA > > that is connected to actual BPF_MAP_TYPE_ARENA 'struct bpf_map'. > > They share the same kernel's side bpf map and single map_fd. > > Both are emitted into skeleton. Real arena with the name given by bpf p= rogram > > in SEC(".maps") and another with "__arena_internal" name. > > All global variables from ".arena.1" section are accessible from user s= pace > > via skel->arena->name_of_var. > > [...] > > I hit a strange bug when playing with patch. Consider a simple example [0= ]. > When the following BPF global variable: > > int __arena * __arena bar; > > - is commented -- the test passes; > - is uncommented -- in the test fails because global variable 'shared' is= NULL. Right. That's expected, because __uint(max_entries, 1); The test creates an area on 1 page and it's consumed by int __arena * __arena bar; variable. Of course, one variable doesn't take the whole page. There could have been many arena global vars. But that page is not available anymore to bpf_arena_alloc_pages, so it returns NULL.