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 A80A2C48260 for ; Fri, 16 Feb 2024 06:06:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 371108D000E; Fri, 16 Feb 2024 01:06:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 320AE8D0006; Fri, 16 Feb 2024 01:06:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1EAAF8D000E; Fri, 16 Feb 2024 01:06:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0AE2A8D0006 for ; Fri, 16 Feb 2024 01:06:04 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 761361228F1 for ; Fri, 16 Feb 2024 04:51:20 +0000 (UTC) X-FDA: 81796443120.24.B21EB5A Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by imf06.hostedemail.com (Postfix) with ESMTP id 96AB518001C for ; Fri, 16 Feb 2024 04:51:18 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Q5OtLEuk; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.51 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708059078; 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=i6/VJ0JfXKC1lOJsbcyV+No0q+mraHhGZvW0Oa6VLFc=; b=kgHGJYIpjBYXtrissulOA5HDEIM4EskvCHlkZ4h54Q5YfMazRp/4CK3n9caE4XZn1iC2ju bOM8xIe8J9RNJfljLr0da7H4yb9vlJXP2WBBdtr2vsAtCJksC7xrWhhV+wqltoBQrEUE+h fix0AJThvMd/h2gvZMYwPzc5ch6TJcU= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Q5OtLEuk; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.51 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708059078; a=rsa-sha256; cv=none; b=LMobdnxth7eY3EAu7jtqTR5F3G/FjVqM/weudNbMaDfVubaB07xu9qq093j4DpeGML+GQH 1bMmOIx5eEvY+hBIiSOMsXG+kkNMtocc6aqUnf+ZzWmYvXVYkBdh8pMYocAZEG+SHr7Son rRqWWKBZaXFMbof7YSlq8YuNms3ciqo= Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-296d26db6aaso1160115a91.1 for ; Thu, 15 Feb 2024 20:51:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708059077; x=1708663877; 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=i6/VJ0JfXKC1lOJsbcyV+No0q+mraHhGZvW0Oa6VLFc=; b=Q5OtLEukykfGLLdCIb53FFCTv4Yi+Tje24jRRztWFlog8LPID9NyK4L3p62XsHNI0n XloZPMY3b5Y3RiNLQyx1hwgQL4O8c7kIFEn3Nv7HGx4Kfik1iDw92y0XRAe70ebQJjnq YTzn2tmco1qWBEzBebRPvWsnY7VBySQmp4OZTApliAhOOGhtLztpXExlKANE2wzLbVkz jQSHF9h2ZobPzkWqhRBEekZ059j6V8BVn3k5XhZxuzljZH2zVQ0Yt0TqNTxpWI8SNR2C MAAcVkGV1YM6wWyq2uBsAHG9tucH8pF4BgMavPWAlYD9+2J1ce9q7a8ql+CHDgGU6WmX mWSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708059077; x=1708663877; 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=i6/VJ0JfXKC1lOJsbcyV+No0q+mraHhGZvW0Oa6VLFc=; b=PEu0NpI8WThtFwv2ebkmp2TLO1TIz3XcTLp/Q6mGL3IBlMfIhuFr9nXkeSzWaSrjLO M/eLd/01jR/GAymfFNhFb7NH+XCGh4+eclSteDRYx3rnZGMNl/hoSBiliUp08F8Jutxa 5AkOrnlOY+J+TjxMBf/YG7dJ4fT0ly0Xr2PNvNSAPZa/4tvDTKapyrhuOIWw0eo8rHuE WLZ1BPNx1q/sGWT8cbVnAyPyimcGCLnyXYMj550ZAvH40pN5SAvK2UDHgyAZLz0Jyz2Q 4w0VpEuv/FZI4Um7rJzuHhfPsIf1A6VCTMMO2n/Pt3BMEL1apoxvst60Yjw7t2gAignc OtBw== X-Forwarded-Encrypted: i=1; AJvYcCVIK2ym3M98ZdSel2LsqNQujWsQSBAKRoa4MM58mXvZHcgWdFok5CDapJ6acLl+7gTsGCFLSvDm+8/qDjENJZIepwQ= X-Gm-Message-State: AOJu0YzpYjmNoiLctELUtVSkBkthmJPLdDup8G/2PGFP++wzbl6h0g/u 8l9G3kfdFn6kg/LXM581PhdI8IktHjPH/FPU87+n6YtRDPTIl9cKxXxHFkNGVZVzdR7FbrGZkiu z9FmIru7ETbO2QhfflrrX//5AZis= X-Google-Smtp-Source: AGHT+IHNYBImYYUc1t4TDkDT16OADsr/q5qavH8/DXizlPeWEyL5RdPBIcCQUxqloBxJE8qGLdpCuj0axkF4vdQZPFA= X-Received: by 2002:a17:90b:fd6:b0:299:c65:db3a with SMTP id gd22-20020a17090b0fd600b002990c65db3amr3026120pjb.46.1708059077320; Thu, 15 Feb 2024 20:51:17 -0800 (PST) MIME-Version: 1.0 References: <20240209040608.98927-1-alexei.starovoitov@gmail.com> <20240209040608.98927-15-alexei.starovoitov@gmail.com> <7af0d2e0cc168eb8f57be0fe185d7fa9caf87824.camel@gmail.com> In-Reply-To: From: Andrii Nakryiko Date: Thu, 15 Feb 2024 20:51:05 -0800 Message-ID: Subject: Re: [PATCH v2 bpf-next 14/20] libbpf: Recognize __arena global varaibles. To: Alexei Starovoitov Cc: Eduard Zingerman , 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-Stat-Signature: szgpxbp4ouzm8hn6bbfzgobef7ra7o78 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 96AB518001C X-HE-Tag: 1708059078-88668 X-HE-Meta: U2FsdGVkX186Pd2G/q61cgupEC73wqFTFZLNtfMmHHvDCZU/tWk+vqcJEZAfB/yY9O6q8JWqfXMLobPTpsIWxzmoIlSivZWLJlWcTeWb12E0Ui/NevH8Be9/eMuWPimUQxRrhw1l7MK4vFrqtffAUrhF78groxvQBWvtAXGLlqGWLCEkmItES3K6vuY60u1sEezHOvvm35HkjKxMUmtPFqwwmzXna0YOeeqyPNfjHljuyDZNnu2EkJnTdGEgSrMLrVJVfJltlDZ9oxn5PM2Se6nwPZZBxNVHfls2Eh+LCI+QXwlrdFrs7kiHDsftLywU1k3guGAITOcxQ9NM/Hynv8QccKHZiFZlimCVip0xiHMwjPsfHH7gEeGKSLzK6rx6iHNUKnsiyWB4tE70ylptDFAIgJTydtz+U4VV9to8hnjGONIBARdXJjrtPRSus7k2UT/l220b5M/wWJLEtnSEymxRpfNVSvqckN/N7nruUbxrZsf7kJ6cuCaoouHLQ4gLZHb2pdGmh6CxMnMkAuFlL85upmxXY+ugIcbQSXBKHcqd5FhWuXFEWlu4jQKulY/UpIg0vJyvaXng7Wht1lc0sdlYg/XJ1Q1+jr474sqn7rOhwIDFxhX264qyD/huCDJOELQwVhcJIW9NM+JGZHpP4RMM3fhvxouJN4KjXp0ZzwR0ZD/KXGUowV5ELHpCx4cq/POySli6D3Y/kwJF++RvIcT79jlhgVbSh3M3KMADBgo/aY96G1Wa/qMNf+VRcc6cFJWmz2f6zte2gLp/nIx8yQIzVTVEV7Q+gwffXqewv1d763aaaloe085FXD4aalxRvkS1WMdrt/BY1KNz4OtqaeKUwOuNuidUwDwS14cFf1Lu4P6EjxOmKZPIs6kDEIggnVLhlgldgiUtP7JwCdlM51I7AnD7fOosAkaDs6FI9QVfRxnMYS16PWAxoBmi8ixC8XeCRloNX2GKz5Etczo //K7PT5r 6/G6QD7TtMZUsmKxhIouJgC7b0AWE68V+AiJdH5rKoGQAm4TEQBcPkl/ei1CwxhzGJJkiMs4sYdqMwbNb0U24xvNS9sHyVwX9pC7DZnhMkxEOZAzAs8UC0s1rFY5cMnY6XyLSr2NJAMKHjAGbdNncvSagWTRWLoUdBwZQ/8bpWn1nuOS47Tfa8QKmKnJBgt+80EE6J8Z9ik8OXBBYOjorDOAdNgw/lf7HDA0PqoKG6gPBzm6QKYXDBOwawUvTEjRrechNwWnq53vJb5qZrOOjPYbWHDE6aEsVizYEFpBc9Hojuw1p8OJ57xQqWs/dHjMiDDzqtU8GZtA0NiGHhoG12dng6k1j6OAd2ve0k7AwnWjH2xgMXSiy7CA3A1O0KjVqYxNk0NZ83omJGA5w9KsFvVWlswCx1tQjoABMpBdhfFqVraGybHQoSWAEV881bQ3HJE3V2Ar8WH8xjWgsUPwdK4luo8ux2kegwgSaoRPd9tjyfgC1N2V5HK8PuWg0mYrZWi1eH+EL33SGSJ8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000036, 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 Thu, Feb 15, 2024 at 6:45=E2=80=AFPM Alexei Starovoitov wrote: > > On Thu, Feb 15, 2024 at 3:22=E2=80=AFPM Andrii Nakryiko > wrote: > > > > { > > @@ -2835,6 +2819,33 @@ static int > > bpf_object__init_user_btf_maps(struct bpf_object *obj, bool strict, > > return err; > > } > > > > + for (i =3D 0; i < obj->nr_maps; i++) { > > + struct bpf_map *map =3D &obj->maps[i]; > > + > > + if (map->def.type !=3D BPF_MAP_TYPE_ARENA) > > + continue; > > + > > + if (obj->arena_map) { > > + pr_warn("map '%s': only single ARENA map is supported > > (map '%s' is also ARENA)\n", > > + map->name, obj->arena_map->name); > > + return -EINVAL; > > + } > > + obj->arena_map =3D map; > > + > > + if (obj->efile.arena_data) { > > + err =3D init_arena_map_data(obj, map, ARENA_SEC, > > obj->efile.arena_data_shndx, > > + obj->efile.arena_data->d_buf, > > + obj->efile.arena_data->d_size); > > + if (err) > > + return err; > > + } > > + } > > + if (obj->efile.arena_data && !obj->arena_map) { > > + pr_warn("elf: sec '%s': to use global __arena variables the > > ARENA map should be explicitly declared in SEC(\".maps\")\n", > > + ARENA_SEC); > > + return -ENOENT; > > + } > > + > > return 0; > > } > > > > @@ -3699,9 +3710,8 @@ static int bpf_object__elf_collect(struct bpf_obj= ect *obj) > > obj->efile.st_ops_link_data =3D data; > > obj->efile.st_ops_link_shndx =3D idx; > > } else if (strcmp(name, ARENA_SEC) =3D=3D 0) { > > - sec_desc->sec_type =3D SEC_ARENA; > > - sec_desc->shdr =3D sh; > > - sec_desc->data =3D data; > > + obj->efile.arena_data =3D data; > > + obj->efile.arena_data_shndx =3D idx; > > I see. So these two are sort-of main tricks. > Special case ARENA_SEC like ".maps" and then look for this > obj level map in the right spots. yep > The special case around bpf_map__[set_]initial_value kind break > the layering with: > if (map->def.type =3D=3D BPF_MAP_TYPE_ARENA) > actual_sz =3D map->obj->arena_data_sz; > but no big deal. > true, and struct_ops will be another special case, so we might want to think about generalizing that a bit, but that's a separate thing we can handle later on > How do you want me to squash the patches? > Keep "rename is_internal_mmapable_map into is_mmapable_map" patch as-is yep > and then squash mine and your 2nd and 3rd? I think `libbpf: move post-creation steps for ARENA map` should be squashed into your `libbpf: Add support for bpf_arena.` which introduces ARENA map by itself. And then `libbpf: Recognize __arena global varaibles.` and `libbpf: remove fake __arena_internal map` can be squashed together as well.