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 F03FDC48260 for ; Fri, 16 Feb 2024 05:00:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 696AC8D0006; Fri, 16 Feb 2024 00:00:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 647258D0001; Fri, 16 Feb 2024 00:00:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4E7438D0006; Fri, 16 Feb 2024 00:00:06 -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 3F6178D0001 for ; Fri, 16 Feb 2024 00:00:06 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 6B1671A4DCC for ; Fri, 16 Feb 2024 02:45:37 +0000 (UTC) X-FDA: 81796126314.11.5E1C06B Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by imf04.hostedemail.com (Postfix) with ESMTP id 951A640034 for ; Fri, 16 Feb 2024 02:45:35 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dxnRA7mr; 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=1708051535; 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=/Jq1I98c0HFEH8i89FSBMCINNN8shwU76Ufbohm2ZQ4=; b=rwXgK0SfGXejFKMLH0yix9c/GKkMA/gwGS8aEdsorGnJd5HJtG8A41z2HO40yq5k+pdoyN VyRw9XFEmf27Uey1+CQFPfmy560MvG27F27RYfMnZ+rAuC38KAcmnaR4IX63cC8uk2F3Re v9NPuUarhsy0gnp1XwImpHfO9mYfEdw= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dxnRA7mr; 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=1708051535; a=rsa-sha256; cv=none; b=5BDkivUI6/EMcRuV8wiAnHziBWUTSFxURVozI/dg09tgbTsEhiyqdPNd+8dIRmpWuub17Y qYUTOHQ4UbZFpNZYti8jY6Pudc8ms7X+Ta3pCWn+XhpnBIZ66+14HyseVHFWpK0UuP4clV KSGL3E2daLoHsaKrM1J4oT2jF9p7m3E= Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4124907f6fcso428345e9.1 for ; Thu, 15 Feb 2024 18:45:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708051534; x=1708656334; 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=/Jq1I98c0HFEH8i89FSBMCINNN8shwU76Ufbohm2ZQ4=; b=dxnRA7mr0AYv55zrmWLlJOvbEtkuglooE4SlQDfSBKi2aVxlQuT2MDJKzcogovOISU rbOlGBSgGqsApoZCHiVAruPurHTjhbXj7LM4lMcP12t0tOaih21Fy0oaBkW24ALhjARN ZYbh/mR2uz+tOniw7PJlO65rjvowD/PjB5UD5MtLWcxdFos+7xAgw0zZd9uy+MHaTkQ/ J89fOjJS2+y2kC3uQVwTldAK4pMoFsPX83mAPNZNzpJB4N5Ja05K4xeIDJjVzGCKwcfv PcgBHxVD/pfVcBgdjzgOzlndEJuFbXmT8OpILrDVj775c10dIt0dKuGlFJNIrVULqdrR 4N2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708051534; x=1708656334; 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=/Jq1I98c0HFEH8i89FSBMCINNN8shwU76Ufbohm2ZQ4=; b=abklFXVD3SwFHpFY+VhicAPrUFNCX4+lDXDc3JzVnxq/wXiUqxpsPszRVh5KpxSYDv Kf80rQwiLSVajn3t8chyaEQ/oRxE0aBjxfZsLmH+Bf0+zgjsEDhUyrat85AMECwfVMgm WsoJ+rOWa4EaKWGl8TeZPdjtmwlUNtqMHVYfzF1O3ibWCWjbFZiA6+LXd449xMCiis3d 78nn9ryzhZTdmOU25kOsq+wi3UTENxjb2fflP88HwjEfPekjsqZ+jKNeH7bRGIzuhZdP Aw4dn/n9KrwF6w+H2/QLqY6sO4pXi9gOKBrLkUQAgoWCM0Oe7U6sH2+T5FL1I3GOYRKn /qgA== X-Forwarded-Encrypted: i=1; AJvYcCX4eitVNm7m+KwMz/kwM8DZfrNaR5KOzpum0cLqn71R38u2u9UzS7RSMN/vl50u7eN/8pvIwCrsH0RFvdX06qF8PGs= X-Gm-Message-State: AOJu0YweoimWD84RBTZYYGyRXrClzXkCqbK5GbUFagZfQnaoEnpCHcPB A04fhhwRqNvJbRoU+LNUUfebsvSWMdif8M3auIhnhsiedTjCNzJP9ECUOfVwV9dQWV/7gRghsao GErLgcW+1gw49xF4q8LTK1oW3j4Y= X-Google-Smtp-Source: AGHT+IHLIG8k7oqYj6t7NSLoTK5FY10olYtQd8yoVEmQ3abgDYU+6cjqmx1R16JPuz6Mv0m7QLEUxZyD3EtureIDKDY= X-Received: by 2002:adf:e7cb:0:b0:33b:6773:1481 with SMTP id e11-20020adfe7cb000000b0033b67731481mr2611769wrn.56.1708051533878; Thu, 15 Feb 2024 18:45:33 -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: Alexei Starovoitov Date: Thu, 15 Feb 2024 18:45:22 -0800 Message-ID: Subject: Re: [PATCH v2 bpf-next 14/20] libbpf: Recognize __arena global varaibles. To: Andrii Nakryiko 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: gbba8ng6goqomp369cxpf49b3ynx7pzw X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 951A640034 X-HE-Tag: 1708051535-503590 X-HE-Meta: U2FsdGVkX1+jsVvae7eIkSgH8YWx/cF/OIHHrIqPjXkSOXZmdfp5W0a7R+qBdEnsDtCKmQVTJwV+HHKeo3mcSuu/CdFFH7FCPEyZ5N7+hafLY6qXy46RZIqo9vIQooqa/pPUPVqzRbP/hj7rHTk3fRZ7Pmwox7TIOaALyrZyqX+Id4rUxzgr5EM1HXlbVFDXXZG0B/77WsuQZvxaQtHyU8hIgVikT+WTY7xE8ip5OM8Mt5HjMK9DAimbbuhzZ1hdW0KZetifOETKerZfxclhdyk7ald0sxPJMB2SfPnLGjT7IQLYdlcrDs3xrQxAhJF+OAd4Ao+L/tIuYh9pj2SxhnI6yDToXAqFvmmc86XXuytnLSKBUihFtDqRVxjDP4DtnCJEMATzg4AZOAzT4v7j6w7UPUcpNuJwc01BqcHS5jkmI3R5WFGzxaOZDG0hVgW+MguNgsvWrp+M5/oDXoSWJ6P7euZbisRKrOJ5YoVVefjRgn/EN1hEZuXIGJGbTWbhyzoYWcmgmkU8apIcq3NNFL46pBh2QhQRzMhSOrJYxXPkvm50Lf0sewh0n4ZMSf9p8ZTKceKQAdRpdFv8g+eecbHBc7RQa/O+7nsXOxhq0DuldOjZgFF+A1goPpimn9JBHGTzdHqNkcoaCmBJAsvrJbP3jMfd8R5n1PPadk23Su9hYnKWuWYzKiAuk8YBpipOaS1aWAdYFQsD41dwGFsQGNKWvPv5wAAOWeeYgwjtMxwuvygEs+5gOh6kfG+WmrA6YtNU5nTRRRkKl3Aosq/juZgmp2dRXO+yBj5nBBpBGnsQtrh080b53+rcsS4tQVy8LdZ9fd0L17675nxToNROTvjId2n8c0/xR4i5BBmCDZfDCiorBd4tHYePKRcjBr0h2Vqc5Op8Q0r+874z6c+fIcY2zbPeifRCzJiPSMYDhm4dprrcFvUj47ZW/YngmZvmZZZbl3B4889RMYpmfLe T1LqxaQC gTtpdwtG5NGS/5hsDSJADwvZ/4h3wavPegSlAhs01ek3ebwCPJA6iIlooUeRFjURAhPrEVjG0rE8QWKstK6jCFTWZpu89L6FQtCq1fflWEdQ+Nuvl1UfvkvIsaj0VuTqOkKdxfWt3JvSzpfp8CGUy4+L6tH4FVSyuRfvYor/FAJ2vWYxWYIzo865JdgYITLZFjtMFIpIVasRzj2YfXVIflUf+GpXx++P2B5ekKDaxoEoOnexcoYE9KFiYgNuXyZ7CPeNYDkIqnZ5zlUXQlvsLpnBwMXmHcmRHQEOQFz4GH4P6xUtDuBnW8VUkYACv2hJ3LaD/akC4NIC0jRRS+GW/hkqNvXXy86Cu3nzRFsInTyySaaG8yXi5V+KGpLYZV3ggd6HBbM1Oq3elVSES4fKx4y0XMULa14eCxQwlUqX6hgh029PnRYiZxsH5xx9mHdXDnZEpYjgsI1nXO5yo7N7QloDoHFt8f8uNo6iZF33UrsJ/jg4NF+kAQu3X2EbsUq4GtDnVBEMM4AFtJ6k= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, 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 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_objec= t *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. 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. How do you want me to squash the patches? Keep "rename is_internal_mmapable_map into is_mmapable_map" patch as-is and then squash mine and your 2nd and 3rd?