Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp3108921rdb; Wed, 13 Sep 2023 02:10:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEDT5xJN43zUvkj4O62DD64GIJxS6Qg/0txJtLCr0kYrrcS+lot9a4utKvvAghJTALqbGwa X-Received: by 2002:a05:6a20:734d:b0:12e:4d86:c017 with SMTP id v13-20020a056a20734d00b0012e4d86c017mr1889184pzc.10.1694596252844; Wed, 13 Sep 2023 02:10:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694596252; cv=none; d=google.com; s=arc-20160816; b=j8eNXabRhFS9wsgEfzlpXGJOSYmTE18A72Q/a84EzkLE32paQucf9Wk5fviF2L0io1 9kQ5lPQ/vmXR6SnfBclW3g4uaD0TPvienTnAbdEXPFOresVmAsFopXN23ZG2rTARzUFa cDX6lEY8ukiHPRb4VbAH7Q6tf5rZztUhUwRHszs5S2aA0FnxaGtMTj9ajWRzDA4lyqZj 7QXGU9neipMu9gSiubsPeqnFwqDaK0nbFi0hp87U2i2xdElnyMRKgFtMCgL3oASUUdqh uxSGub0Yx0JRCnFFFfr+1cjnFKByoG3Jq+ahCFCn2TxETiA2X1meCq7qgKxamyhAqH9f jPyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=5maphRaiJtxCw6vGqmBPcygT14ffJWcXjb1lb6GupVY=; fh=hMBEqt/pVmrAPCFGyVmCH7huCf/AuQCDaKKyFO1Q7X0=; b=iJ8K7FW8jkL8KQE2myOPYLzSqhmt1sSHJ/RV4/CUbuytWqAXb8Xuxi0q8BsOxCxHP/ P/JCH65xaoICKw9pCJQWVldBbRWqIVWQaGo5d/0TcHAtL69Iehvy/Sk880ewhUrgLQd8 r4uAMYQMP0K3KElaXJduoA7SEVXWMsHRTY7XpYSq4QNGk8hcm3gF9Mso+QMm1M9PXcee Zr+xAyyc8b41Hu7wT3TbapNUQ74URkTeZZAFEo5hMFE9vAHNyWZQYSkBHA7g7VfT+oAb LEsCAp4cndV8rjKghznKJRCVRyXZwi8IFlhmo+8Q0cfcWhFmPsgYBsJZLoNNP9RaiSHg sS3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=bHBFpxYO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id m16-20020a170902db1000b001bbc61fedafsi10142224plx.422.2023.09.13.02.10.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Sep 2023 02:10:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=bHBFpxYO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 7C87A8233645; Tue, 12 Sep 2023 15:47:00 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237808AbjILWrC (ORCPT + 99 others); Tue, 12 Sep 2023 18:47:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237790AbjILWrB (ORCPT ); Tue, 12 Sep 2023 18:47:01 -0400 Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B77D710EF; Tue, 12 Sep 2023 15:46:57 -0700 (PDT) Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-401187f8071so2136825e9.0; Tue, 12 Sep 2023 15:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694558816; x=1695163616; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=5maphRaiJtxCw6vGqmBPcygT14ffJWcXjb1lb6GupVY=; b=bHBFpxYObCOAeTwyTuOAKTUJ/BJov0F1mEVMfUw3Lgicx5DLBY6N2hBJp/RVoWoY4t 4/W4yGQKj38C1e9OyIyPD+aXYOqY7Npi+EOIbN4eEAlbcftfKatpymhSrrbd5nWU2pGY QgHx9t/FVU2jZv+hr4YO0oN4GjNvGoq2+i1S2NkXfd2q56BShrnn2hM80PziugCiyiCz oP7dxauNEDgjuviAJdrd2FCUI8x7yGzBMdyt3XC7zJHXcMbAr9tgfqli8dFOzNCetX60 rXoai5tFj6TDQDdgCecEQ2oJ8UIPmvQ3yXfwmhe/jt1u69qOe8a2pP21AJtg3H+NpHaK hTCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694558816; x=1695163616; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5maphRaiJtxCw6vGqmBPcygT14ffJWcXjb1lb6GupVY=; b=iLxw3WWGdZE0ITAtrNDjzYWrpkg5XUD2iBAbqcjTlsr12WUkEj8+61h5W6o2odw/ST 2asDP3P2eQpc+49c9zZIvKKISqzXbjOQITckqks3h5CuMtYN+q+bGj2tRcEE5V42YQeT u1WhUmNN+W1WuSZzZ7LhodWfYvlyQGceVgWtKMs0ETd/DpSkXWOzCHean6V/AJ5VNhf0 +qn6hR2mjbh127WNUL673yoc+vEB2oOWcqLoCw63p7LOvaH/vEUMhHK0DuzjVXo3zWLJ fcaBFaM9qPtIgJlsgDHbBGKOsJLgIhBGIfJ5Hzspd3fyK9dsCQUbSESvsqucssvNiJ2Z cfvg== X-Gm-Message-State: AOJu0Yz0iy8Pki1PFPKBR/WeplojuRFGjJ7tEjXh9SVzYfs8JXWvoHyg sf0zL/WpRkT6pXkMNMOC4a/FF8SAKK5Dmkah6mXpIw== X-Received: by 2002:a05:600c:21cc:b0:401:c8b9:4b86 with SMTP id x12-20020a05600c21cc00b00401c8b94b86mr734598wmj.9.1694558815736; Tue, 12 Sep 2023 15:46:55 -0700 (PDT) Received: from ip-172-31-30-46.eu-west-1.compute.internal (ec2-34-242-166-189.eu-west-1.compute.amazonaws.com. [34.242.166.189]) by smtp.gmail.com with ESMTPSA id e15-20020a5d594f000000b00317df42e91dsm13921794wri.4.2023.09.12.15.46.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 15:46:55 -0700 (PDT) From: Puranjay Mohan To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Shubham Bansal , Russell King , "James E.J. Bottomley" , Helge Deller , "Naveen N. Rao" , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Luke Nelson , Xi Wang , Paul Walmsley , Palmer Dabbelt , Albert Ou , Wang YanQing , bpf@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, netdev@vger.kernel.org Cc: puranjay12@gmail.com Subject: [PATCH bpf-next 0/6] bpf: verifier: stop emitting zext for LDX Date: Tue, 12 Sep 2023 22:46:48 +0000 Message-Id: <20230912224654.6556-1-puranjay12@gmail.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 12 Sep 2023 15:47:00 -0700 (PDT) All 64-bit architectures that support the BPF JIT do LDX + zero extension with a single CPU instruction. Some 64-bit architectures like riscv64, s390, mips64, etc. have bpf_jit_needs_zext() -> true. This means although these architectures do LDX + zero extension with a single CPU instruction, the verifier emits extra zero extension instructions after LDX | B/H/W. After a discussion about this in [1], it was decided that the verifier should not emit zext instructions for LDX and all JITs that can't do a LDX + zero extension with a single instruction should emit two instructions by default for LDX. All 32 bit JITs checked for ctx->prog->aux->verifier_zext and did not do explicit zero extension after LDX if this is set by the verifier. This patch series changes all applicable 32-bit JITs to always do a zero extension after LDX without checking ctx->prog->aux->verifier_zext. The last patch modifies the verifier to always mark the destination of LDX as 64 bit which in turn stops the verifier from emitting zext after LDX. These changes have not been tested because I don't have the hardware to do so, I would request the JIT maintainers to help me test this. Especially, the powerpc32 JTI where amount of code change is more. [1] https://lore.kernel.org/all/CANk7y0j2f-gPgZwd+YfTL71-6wfvky+f=kBC_ccqsS0EHAysyA@mail.gmail.com/ Puranjay Mohan (6): bpf, riscv32: Always zero extend for LDX with B/W/H bpf, x86-32: Always zero extend for LDX with B/W/H bpf, parisc32: Always zero extend for LDX with B/W/H bpf, powerpc32: Always zero extend for LDX bpf, arm32: Always zero extend for LDX with B/H/W bpf, verifier: always mark destination of LDX as 64-bit arch/arm/net/bpf_jit_32.c | 9 +++------ arch/parisc/net/bpf_jit_comp32.c | 9 +++------ arch/powerpc/net/bpf_jit_comp32.c | 25 ++++++++----------------- arch/riscv/net/bpf_jit_comp32.c | 9 +++------ arch/x86/net/bpf_jit_comp32.c | 2 -- kernel/bpf/verifier.c | 4 +--- 6 files changed, 18 insertions(+), 40 deletions(-) -- 2.39.2