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 C1BFFC4829F for ; Tue, 13 Feb 2024 22:35:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 51AFC6B00B8; Tue, 13 Feb 2024 17:35:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4C8756B00B9; Tue, 13 Feb 2024 17:35:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 369FC6B00BA; Tue, 13 Feb 2024 17:35:30 -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 218556B00B8 for ; Tue, 13 Feb 2024 17:35:30 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id DDF74C0D2F for ; Tue, 13 Feb 2024 22:35:29 +0000 (UTC) X-FDA: 81788238378.22.097F25F Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) by imf19.hostedemail.com (Postfix) with ESMTP id 108521A0016 for ; Tue, 13 Feb 2024 22:35:27 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=devptEsI; spf=pass (imf19.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.53 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=1707863728; 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=yjNzhd9BjF/A7WT66iBo/o7puvx0LOZDmYl8Q58mrFQ=; b=Srm7PbkzSjVQIJdvveoTgRdGsF492vUYhWr5rEUBF9r/wI0Pbn0FCQq3taCcDfJP+Ob5MW 4dF8ye+96kj5SZdZWMf4qXzngt3RKFYxsFyPeTOPn2sZzwLTScIpsLYLzNQqwvgUmp2jQO d3MHWK8Tj+6naP9AqYJs+mMWl4b1fr0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707863728; a=rsa-sha256; cv=none; b=ucoOrUq5CwNDVtNTYHkvxHmbMzRwF7lo0omTAR4JrYfb4f3aAHclHftEuao3r6uRol+966 +n1V13WOwbuSrgAyM5vn4VyydtD5gvIO2LrpblNiQhZ9Q98uaEquGcH7/gOdm6/32V4lpT XXb0KUan3vSBHs9h8bCGVNj6ZpHW0OE= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=devptEsI; spf=pass (imf19.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.53 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-3392b045e0aso3305045f8f.2 for ; Tue, 13 Feb 2024 14:35:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707863726; x=1708468526; 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=yjNzhd9BjF/A7WT66iBo/o7puvx0LOZDmYl8Q58mrFQ=; b=devptEsIeSFgPpHh6hipktu9p9azLWaobp4ngJJ86UJI4+837y2xtPIDF59SOEqdsE q1P9xKgWpwzPTKS54ZhXW5nztBAMBB3ihN2Vihjj57RQfUWa/38kYGA3FVpGZeYHZhc7 KIwl13lCXUOvlov94ADF75udT3qXXxLAXQSAhKQDw0WHtE0Hp1MwJxUcNq83YdmT+OVI aRDFoxJJwtTvq8VReIQPP4AdNppHbJaw9oPSgXuPsV+yIoaOugnaSMa32w93RVEHkCLu CSIIKlMlx7FzU/GcHBY+BoAzxOmcFuC+ZjinEWZtSYs/E5r5Wkih0y6RgXY85Z58Xuma teug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707863726; x=1708468526; 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=yjNzhd9BjF/A7WT66iBo/o7puvx0LOZDmYl8Q58mrFQ=; b=GpYrUeyLKnbhg2Itweya+stILuK/R5EJPBQDSaZ0BayGnkUQ5ygQpeUbL41LSKaptP I9KUJzsb3o+d7HmcwOjsZvrROV2u4iL5lwds/Cbe7XKkYQN8CAE2Eh+7MK8uy4jx03s9 QGl/Erh1ny1JMtSZMCThLgCWmwa+ohYKKp1UEky5zGcShyLptwJd2bporVXkcUBQb8Lj I0CKco2zmZP/LCUsW3BpAVdJ8CHmm94v1sxHkglde4j2i7+v55bsgUZAbdqmsu3dRu2Y yYDS0tuviSy7k5NzHx5Dddz6sjh5dzV8YTq+qBIimSX6HHglIWsDXV0ltPE22rbZIV3l MQoA== X-Forwarded-Encrypted: i=1; AJvYcCWZ8gIYIgLrOnTSqw+kfiR494k7a8AlC0OXMt3Nv1grr9mVVuLbA/J02JZBDR6UoIA8leepNbf6L7qcEyP8/tekiUA= X-Gm-Message-State: AOJu0YwCQ7j8UEPYpcAaGHYUsEERJ7TxxFs9h4ExykIpW8XmEjDF85mO ZAO78eCi74PAmYQjCaJHhhqxMHez73vr//I9IPSEIE4b5VJWPcWI/h+V264mG4O1ps/j2al4P4H 9c45NEG5arcLPaWriaiJYyo031lc= X-Google-Smtp-Source: AGHT+IFOePiOZj5eAAYPwau50wg17njgKiZ7Ym7FPDIGrQZlNeg2NJ/2uAj/LMAGT8ZTKloQZnXFtpYqyH/2CyK5OfI= X-Received: by 2002:a5d:50ce:0:b0:33b:66a0:4a85 with SMTP id f14-20020a5d50ce000000b0033b66a04a85mr424194wrt.64.1707863726493; Tue, 13 Feb 2024 14:35:26 -0800 (PST) MIME-Version: 1.0 References: <20240209040608.98927-1-alexei.starovoitov@gmail.com> <20240209040608.98927-17-alexei.starovoitov@gmail.com> In-Reply-To: From: Alexei Starovoitov Date: Tue, 13 Feb 2024 14:35:15 -0800 Message-ID: Subject: Re: [PATCH v2 bpf-next 16/20] bpf: Add helper macro bpf_arena_cast() 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: 108521A0016 X-Rspam-User: X-Stat-Signature: shhbrccbetmp7iaumzfdwt4d5d53rcby X-Rspamd-Server: rspam03 X-HE-Tag: 1707863727-62916 X-HE-Meta: U2FsdGVkX1+E1seqdJ+zGUb+UMjS+s/lNu0vnyeFmlmMOQjZ0AILjWWjHWBv3ks60TS1scHtVMoxH6QlxWEgyLKRfSTASJfYcCiV1uBCZstx8rOKD+68baBFZoGvQJg/IyHy/9ELvogpyx/d/TJJjx5C8twE4DSqx4CnNumsJRUnLjPavtXFuOld3xgDtmJgB7fNomRXvX3uGJGQdZ3kM7lTiqkd/j2aTwn6gRhNJ7V7Req5d8s4njZuDX4WkYqc+aI9nd4encnnGaoj0umGUtTFbGaBIU6cfUHFR0o/NeUT+b7UERJ+RCTgVgsW7S1oLgpDOR0QAZoxDeZ6R4YpFK6AAuaFiq/fbcBlM+GDHD3il4Rr2+MbdZriflCHYOq1n+6dqgWf9WGuI4j5iVcLx/4n7C0eQOnzufuM36q/N+iUe2GOQi0MWthxVhW17F/toGgHnpLM/equow2969KbNTvgKP82UVRu2tR/VrnXrUKDjrAh8d4O1BGQs981IQp+co8za3CMETinT5pa8TcsxnX1HinvKs3TmpTaAubxCEC5wgT0ANfVGr4pvkh39furLLURSvs2W/CxE+yTVK3BwQNeHWRuZb4Zktls9tmm2WcwI9aXUwq9f4M1DUs/EklE/QiUG6UdBtjkz7fFHOqnR1B+7jKmxXylyeYmkbzRWBz+Qw0e3VnVYbGpA8lLhuAs5ucCaS8Nmu2O82Pu/r1YF6cbZ8BFzakRHxXLT3u0bX+EPCL+O3xlGMWZ85LnH3s3RWiSo5o5c4BoxDFDVmZEEIJ3+m/MCE5ySb9z+zT7soG5Fxm3BvAkLPP3+9bYc/15ZwsfdvpFxStJc2z/V2FtFwzZ5LrXCjszWrBzZOLPN3qLmUf/6AA4lpD5PIpIcwN+nvkfUBGsK3iVe1GzfRbber9tc9uo3HdeIGYzmZl5dz9vUT/AZVZgSGYVN7ri1smRSK8jxndRe0ee9xTydTf dtLpClt1 isoCBY82olAuVxE9hbtoIYIzsFxiv68p7vvVf0sLC41+g+UxxAbGInzr1pwhcMuXyMFFf6d1fKjb7EtPxoC6DB+k7RF6alyYoOcTnTG1AD8VZt74FxmxdCn4rxV0fgvRNgB7GPV5moWoUsgpDkuWbxAfkRkUjF2mYzCKfyO1CW5lZNApnu3FGzfxG+cHJfB4tfSbB5os7Re1IaRlPbOIitwt5IzS3ikW1uNjsyJs7RohXYYjVh9pJbbvtwQ2GTWFEcxIW1wYlmSbtnnuK4dTOHy8P18CkNsIaTuhV/bMNkPQKhbDxOF1kv3aZ8LdcuqByB/Yr9Er4H+FXSQkQ8HSpaAnP8kRS34wQcdL2Gn2ZYsYmR+ilqWyPRe3ByOT4EtKPWJDX7mFp8oWdHOaPp5jfVNvHGq43JzJeDvYW4GSBitL1et6yWeli3muqCI5I0ZWIhDZDYE6+lvVhXCcJXJuUg+CVyFs+xvQCSxmkMYEGJDQOtFw0yXgbn/IHy8/5s0Pq5bDY 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 Sat, Feb 10, 2024 at 12:54=E2=80=AFAM Kumar Kartikeya Dwivedi wrote: > > On Fri, 9 Feb 2024 at 05:07, Alexei Starovoitov > wrote: > > > > From: Alexei Starovoitov > > > > Introduce helper macro bpf_arena_cast() that emits: > > rX =3D rX > > instruction with off =3D BPF_ARENA_CAST_KERN or off =3D BPF_ARENA_CAST_= USER > > and encodes address_space into imm32. > > > > It's useful with older LLVM that doesn't emit this insn automatically. > > > > Signed-off-by: Alexei Starovoitov > > --- > > Acked-by: Kumar Kartikeya Dwivedi > > But could this simply be added to libbpf along with bpf_cast_user and > bpf_cast_kern? I believe since LLVM and the verifier support the new > cast instructions, they are unlikely to disappear any time soon. It > would probably also make it easier to use elsewhere (e.g. sched-ext) > without having to copy them. This arena bpf_arena_cast() macro probably will be removed once llvm 19 is released and we upgrade bpf CI to it. It's here for selftests only. It's quite tricky and fragile to use in practice. Notice it does: "r"(__var) which is not quite correct, since llvm won't recognize it as output that changes __var and will use a copy of __var in a different register later. But if the macro changes to "=3Dr" or "+r" then llvm allocates a register and that screws up codegen even more. The __var;}) also doesn't always work. So this macro is not suited for all to use. > I plan on doing the same eventually with assert macros too. I think it's too early to move them.