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 E048BC48297 for ; Fri, 9 Feb 2024 19:19:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 44C9F6B0078; Fri, 9 Feb 2024 14:19:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3FCE76B0080; Fri, 9 Feb 2024 14:19:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2C3FB6B0082; Fri, 9 Feb 2024 14:19:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 1C8A76B0078 for ; Fri, 9 Feb 2024 14:19:00 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E6805A28A7 for ; Fri, 9 Feb 2024 19:18:59 +0000 (UTC) X-FDA: 81773227998.06.779E846 Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) by imf11.hostedemail.com (Postfix) with ESMTP id 1C0C740013 for ; Fri, 9 Feb 2024 19:18:57 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=none; spf=pass (imf11.hostedemail.com: domain of dcvernet@gmail.com designates 209.85.167.180 as permitted sender) smtp.mailfrom=dcvernet@gmail.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707506338; 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; bh=H0Lg4hIuTbmJf42UCxxjgfdNcSyEDGORuuL/wrZRi90=; b=eT+d8tYvmQiUg57TqyVZZM3h5IqDCyYiOuXzVSAa63+wOlD0NEbqloRMHu1+1v00aKnZGH +8vFVsVSdo8NqN+fxqH1YASSyRr+i8Rt5F7atDfFzLQ1NV9RsbhmJ0E4qYKaB2tgRdXjdi 0rdD61xh35dR9d1ZkWNUfsKavo+ljy4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707506338; a=rsa-sha256; cv=none; b=e71bvYCjMJklcqoTWJS4uiigxiZskuH90S8eohxiDQkRl/iT9L9mqhMriDTGKk6w5kswy4 78PhVbGiSmXBbkRTexAvOXoaE8cDzIQ/jCEVscynoFpajDUfWdPkDjXFtfny15sw3s8+Bv /XbYYc/gpFGP06IeIugqq6j2R16lbXA= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=none; spf=pass (imf11.hostedemail.com: domain of dcvernet@gmail.com designates 209.85.167.180 as permitted sender) smtp.mailfrom=dcvernet@gmail.com; dmarc=none Received: by mail-oi1-f180.google.com with SMTP id 5614622812f47-3bda4bd14e2so918557b6e.2 for ; Fri, 09 Feb 2024 11:18:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707506337; x=1708111137; h=user-agent: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=H0Lg4hIuTbmJf42UCxxjgfdNcSyEDGORuuL/wrZRi90=; b=PN3AWCARpn4i+QS0Id6QUWcUy+Z81Diwb3rrAp0S9bTDIZphfplwfrW6L13qbW5sEK UZM/KCR51vT4UJeNyHuzouJOXPo+g0hswbe7b3bSUr2dJmA2BMZ5PQXK1y5Wn+veTyTZ xht3Y+F7ngBQ6t8csfB694n8zuW5L66o4RFsU+ESWi2adnocDZ3HOt7Js48fI7VwsTHg 7Zjyt+6AuXDIy0n1RHSdZGKD8V3iN+t9I3BRV+l7z+0R38so0G/uzKwej2r07EHbh8DW baLnZNYy9tBhBC/1tule0PwB1ONozka0O29n3+LDLO49UoCTucUXL5GLGpkmB/3oysU4 /bVQ== X-Gm-Message-State: AOJu0Yyb6AmqLBgHq/JNysYOa54C5H1vvFviarVq45MZWTEobWLhwIlc fJZEkquvmvDbiZvnscDeBL0PoazpRBHV49SotJ/VnScoigO/w46m X-Google-Smtp-Source: AGHT+IEITslpViHruqeNFCWQCUrkMqR+s6Bmg1OedYVQ72X0oRii+P2hXKgcLoSQ8gwz/ZkSGDCd/Q== X-Received: by 2002:a05:6808:38c8:b0:3bf:e035:db58 with SMTP id el8-20020a05680838c800b003bfe035db58mr4046482oib.21.1707506337170; Fri, 09 Feb 2024 11:18:57 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCV8YJGRZEXq9zYQEVoQ0BhRgUoiA2r1YDspJcz0L8OxSBqJgr9UfjXeEj+t4uILppIQPBbSOx/c+PMiG2Tkrqg3a7SPhnsKQCUHNSKifX77zgh7M3+0iLXcJquFuq8xVs8c9Gx65rh4E7w5ewa94Ief+LcXFJFa8mCyrGYveUxw0vojUYrq9jjGhwyta2ghthjBGXzxoZYUSDiIlhvMIJt3wly9aJ0sjL4DCdpplarhjPfS7V2T/feweHDonsqSiJpCaZ+wvHmS1pD1+FS7RRgK2nv9xR4uyYMqYbRWDnfrwtjXrjRMbj5KB2/Qk6rXAA== Received: from maniforge.lan (c-24-1-27-177.hsd1.il.comcast.net. [24.1.27.177]) by smtp.gmail.com with ESMTPSA id v16-20020a05620a091000b007859800f8e3sm27504qkv.2.2024.02.09.11.18.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Feb 2024 11:18:56 -0800 (PST) Date: Fri, 9 Feb 2024 13:18:54 -0600 From: David Vernet To: Alexei Starovoitov Cc: bpf , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Eddy Z , Tejun Heo , Barret Rhoden , Johannes Weiner , linux-mm , Kernel Team Subject: Re: [PATCH bpf-next 02/16] bpf: Recognize '__map' suffix in kfunc arguments Message-ID: <20240209191854.GB3645892@maniforge.lan> References: <20240206220441.38311-1-alexei.starovoitov@gmail.com> <20240206220441.38311-3-alexei.starovoitov@gmail.com> <20240209165745.GB975217@maniforge.lan> <20240209181136.GD975217@maniforge.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="OTPhCgEK1xrWltHI" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.2.12 (2023-09-09) X-Stat-Signature: q97rcq61zpgzc1fneuihrq3jyrytydrn X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 1C0C740013 X-Rspam-User: X-HE-Tag: 1707506337-44259 X-HE-Meta: U2FsdGVkX1/326/v0BmhEoJZoLoFO29RyVmjSu2P6zCtKYXw3xkh8Bgkefnkql0Lc8cps/qtBsUEg9+eMv0IDiMQXKBhAfxrGGZcrwe4EhG8A9/ZYcxv54ezAhmFYIZjYlCjJOuKkNgRARzIfwNGwl3SMQVogNfAzkZPe6URj3IjcVnG5yS47N+iHwT3uD4keOq4wj8pWHlH4ogr5MZKimPg/hgX3mNVX3VIymtaCVGIvp9X1P3Kuod+1lkR0gweh19/kWR+nHLPcRJ2r0YEWKXp8L5pevLzjKGCrPMPbYAdCMPzcv0M91oeUo6acnlVsqhz/p2QTjzABZGm8Uc0QLk0FDcQdC5OeKrpuAwoxAyRNG4+7XMNXsAkOy1JVJ186OB/03BQHBF25x2Cf8ure8xndw5HpCPUvEmfBIlqjPKES0s+zgeSyQtrgnJ5dwGW7/pD6WJkFZNGra6dLMRjMoGe7zz3HGuuEvfkv3FaQuZZygEqgCngdytgbwpmicC+kOTJiwXK7YxNuB+/yxkSH/pTEgbQ3x6mO/+I+dWszcGhd2FjvdRLcmrnbqX5vgIBVLST8JN0SzXn+9cpmbMvCeAISq6px00SnOUAhbfV3tHPBNDg1vAI0yLtxnkH7nNHhCVQpS6lXvw2qcikaKevV0Xmiu3ppD7fouVqlbHi3epMoAaSTbIdqhE4wGL5og4s/bRVmfYw7/APfTf/kH8mUn8pdxYs0BBOWRtQteEa4ZbAZ1AyEMANEgQxXuJPZuPd7q6GmjjdxpNRo3HNKqinqrVLBqhjDS+/ksJqVYwLgnqbT3Hpwbmtehir7wciSiKgWyXRHwD1gtRLUOsd5vreVtKMitrsdQcZv2FHKtWWoeq4z4qlTgUdrJupTGCbNn0YYB+NQ2HfKo0K+Lk1jp67OYk4qyVRFHXUmeptindoBY1gVK4HQXg3sDkblBBEyhxBKAj9928jfvcoV8tzEoM 7dJ2sICO OrZjF9tuQcube0MtmaaXJ9MmB0d0QSX4y2BqZ7PbOd9FQB37BtvIBjvAi9yugbR3NZugUiD7PwkjO1lAFog4SYHg9q2euTPsCTvIEMpBZoa4pSYdNqqiU6zTLhPTBV2I+T01z/hHqnPTyFDRZ0si0Bx7yTIqbpkQTkW4e4nwiOtRrQ3Xwr6VPNkTVFJgWCUK6YeXsrCDx+uzHWqqzYtEwUBGuz1XbczBTgEvdk9bQhbJNZPyz+H0hWq6jWMZLmMR4zwO7Av24LFUoVFAKDUKL5cTelYEpdBr2EjpvLCE8ZVONQkoUqDBBR16jTN1HgdnJ0rFcKU0hLs1XYmdUFKa5bQqbzy4U3jsKEpH+laOkETWy7U3tNsnBZgy7TQwfuCKMzWwqVQMu/O+KShkjbXNYv/268NqMejDb5VMaA8Jo8Xi6pDrr1pzWGcoGpslCjenOuIovULna3o1wn/O6K8ejv4JWaAD41m2NzQfqa8f916ftfHvqLC7EcXemToEr6eV9Qa9I6itELBpvoJuO74nQ7/0GV8axEP1iVTa5ROCLv1z84uHjVIUUT2HYKgSt7Q9U+1xGd9C1cACTmuhcmiUDIFAy7KzyST30Lj365R3oUpVEWSdG7N9L78vXPA== 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: --OTPhCgEK1xrWltHI Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Feb 09, 2024 at 10:59:57AM -0800, Alexei Starovoitov wrote: > On Fri, Feb 9, 2024 at 10:11=E2=80=AFAM David Vernet = wrote: > > > > > > Makes sense, but then should I add the following on top: > > > > > > diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c > > > index e970d9fd7f32..b524dc168023 100644 > > > --- a/kernel/bpf/verifier.c > > > +++ b/kernel/bpf/verifier.c > > > @@ -11088,13 +11088,16 @@ get_kfunc_ptr_arg_type(struct bpf_verifier_= env *env, > > > if (is_kfunc_arg_const_str(meta->btf, &args[argno])) > > > return KF_ARG_PTR_TO_CONST_STR; > > > > > > + if (is_kfunc_arg_map(meta->btf, &args[argno])) > > > + return KF_ARG_PTR_TO_MAP; > > > + > > > > Yeah, it's probably cleaner to pull it out of that block, which is > > already a bit of a mess. > > > > Only thing is that it doesn't make sense to invoke is_kfunc_arg_map() on > > something that doesn't have base_type(reg->type) =3D=3D CONST_PTR_TO_MAP > > right? We sort of had that covered in the below block beacuse of the > > reg2btf_ids[base_type(reg->type)] check, but even then it was kind of > > sketchy because we could have base_type(reg->type) =3D=3D PTR_TO_BTF_ID= or > > some other base_type with a nonzero btf ID and still treat it as a > > KF_ARG_PTR_TO_MAP depending on how the kfunc was named. So maybe > > something like this would be yet another improvement on top of both > > proposals that would avoid any weird edge cases or confusion on the part > > of the kfunc author? > > > > + if (is_kfunc_arg_map(meta->btf, &args[argno])) { > > + if (base_type(reg->type) !=3D CONST_PTR_TO_MAP) { > > + verbose(env, "kernel function %s map arg#%d %s reg wa= s not type %s\n", > > + meta->func_name, argno, ref_name, reg_type_st= r(env, CONST_PTR_TO_MAP)); > > + return -EINVAL; > > + } >=20 > This would be an unnecessary restriction. > We should allow this to work: >=20 > +SEC("iter.s/bpf_map") > +__success __log_level(2) > +int iter_maps(struct bpf_iter__bpf_map *ctx) > +{ > + struct bpf_map *map =3D ctx->map; > + > + if (!map) > + return 0; > + bpf_arena_alloc_pages(map, NULL, map->max_entries, NUMA_NO_NODE, = 0); > + return 0; > +} Ah, I see, so this would be a PTR_TO_BTF_ID then. Fair enough, we can leave that restriction off and rely on the check in process_kf_arg_ptr_to_btf_id(). --OTPhCgEK1xrWltHI Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRBxU1So5MTLwphjdFZ5LhpZcTzZAUCZcZ6ngAKCRBZ5LhpZcTz ZN9GAQCje7ooc97DoJ9MvM12JQDUMudgn6GSD6WCIoqHuRxIlgEApjgHVtPsRx71 xs8hqMfqGUYgQHwU1yjbVBZ6Icf8pw4= =HtPM -----END PGP SIGNATURE----- --OTPhCgEK1xrWltHI--