Received: by 2002:a25:23cc:0:0:0:0:0 with SMTP id j195csp368345ybj; Wed, 6 May 2020 20:20:12 -0700 (PDT) X-Google-Smtp-Source: APiQypKZxk5zbPTtQ6IJUv7VRGPcj4aZ62vb0NCMrVMfm0IWs9PHARzoFIZgaJXSoPcaE3lcRpnK X-Received: by 2002:a05:6402:b4e:: with SMTP id bx14mr10056470edb.1.1588821612309; Wed, 06 May 2020 20:20:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588821612; cv=none; d=google.com; s=arc-20160816; b=iIY82hqcOpakfNknWeKZmF+tVxT3qxhnNIHDLMt55h/Jjdu5orf/M1PEWfE32woynD 0U+rPdyyr04yHCur8ImG+9ebJVWIGeDCpa393XXvybO2baJbMW0ZNHHSyd6fKjHol09n clg6cDfxqQLcWM82uBfi7FBvaY/UFORJQS7aphHLq8JINuMJuT++iZ+clGyP4LoqyoDF NErjie9tO3YxYRn3Cgp2bpcBJXQf3mMmqr1gPgqPzX8IkJDejzVpbDAIUhm+sPCPFkzi PqQVhRIO7fLl2m0WMEcVhJJjYLzhUiIwT2+c+EoSqdRlk/9Av/EKauTmCSZK7E6P0RMG /FyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=fDAxUkCWnLLNYKyqcom5jHpqbxcvX3Nwbyo0Ip8LuRk=; b=L9LX0LMrM/bSVrvaq6p+tAf86kwuDpYZd4CPOakSvV8hBYJJR4Z+y2UR8HEOFJfvg7 1GPsPuzFGqk05ErV2G5dE8As+rEr+LcCAW/IpsgMq51YqFiYVeHyuM/8jyS0toFNImDF +0Nl78LWZGPlm9v3xehFAhnRxn7aO/ryIwTlJYsg6Kyu9VMpxVIFYXE2gSWImoQa8id1 +1Jh/4vkubxkdmOFY1wLJD++6yIk9lYcnejMU35qx1e2vaXGmuKK4G5+RphHDQ0RaxQw Ac2L3V+CgGc/p0zghvyM7IxlvLYTyl0/ZwIIAg/QRkJjh04vHMSXuWjD2eGIOQXzaQqL qkcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cs.washington.edu header.s=goo201206 header.b=h3+IYroj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cs.washington.edu Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x6si2224764edj.56.2020.05.06.20.19.49; Wed, 06 May 2020 20:20:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@cs.washington.edu header.s=goo201206 header.b=h3+IYroj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cs.washington.edu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728395AbgEGBFM (ORCPT + 99 others); Wed, 6 May 2020 21:05:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36838 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728330AbgEGBFL (ORCPT ); Wed, 6 May 2020 21:05:11 -0400 Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com [IPv6:2607:f8b0:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4ED55C061A10 for ; Wed, 6 May 2020 18:05:11 -0700 (PDT) Received: by mail-pl1-x642.google.com with SMTP id s20so1366794plp.6 for ; Wed, 06 May 2020 18:05:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.washington.edu; s=goo201206; h=from:to:cc:subject:date:message-id; bh=fDAxUkCWnLLNYKyqcom5jHpqbxcvX3Nwbyo0Ip8LuRk=; b=h3+IYrojdj8XrOT2yXppvSlG8FlwZRoZQROyHHbykmQH5tWOadvP0qK0EZc5qCfLI6 IqjGPMkJRzQr+j+pWak8kvYgpGx4wUuuXT4NMxnU17wy8R779cxPMzCxmLH2fnU1Y8il x/zIrMjy3HjgIAu+PpqzTq5b3BIs9elVKsoUU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=fDAxUkCWnLLNYKyqcom5jHpqbxcvX3Nwbyo0Ip8LuRk=; b=q28t5bweruZQhJNmwOgF7Vs85foIykkQ+PhCy72TcjcL4nUHJ8lOoIByCmevO/ynAL dtSAWdbegNfat4BADieAdx2sZh+2tg+OFFqZ2Qazf/auE2ciKM1ltY5w+6vxRUixtQN1 1zl/Ce8jZ9SVeAenl87oNTPAa3N7FPTUcqI+y+jP4SLgE2zfuVw0KkeyqCYFNoGuIAhV B5c16bKeAFt8xgdYnO7fZhONZ0s4bP34HrL9Zh0a+16RFh5+ZBstLGvJyUntg9izi568 2p11vNPzl7AcQLjPb/udJ61eHCR+RngqdTbm526Rds6bc88ylyi8IOQB1YEKGwNc9G3a Emfw== X-Gm-Message-State: AGi0PubpiUTuoxnObwnPh4AGftWPuiUxDGwvqGurYjbjuoi/2ip/FBny Nk6n73LCVrMNMe4RszPzfEBKEA== X-Received: by 2002:a17:90a:d153:: with SMTP id t19mr13166154pjw.42.1588813510513; Wed, 06 May 2020 18:05:10 -0700 (PDT) Received: from localhost.localdomain (c-73-53-94-119.hsd1.wa.comcast.net. [73.53.94.119]) by smtp.gmail.com with ESMTPSA id ev5sm6165250pjb.1.2020.05.06.18.05.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 May 2020 18:05:09 -0700 (PDT) From: Luke Nelson X-Google-Original-From: Luke Nelson To: bpf@vger.kernel.org Cc: Luke Nelson , Xi Wang , Catalin Marinas , Will Deacon , Daniel Borkmann , Alexei Starovoitov , Zi Shen Lim , Martin KaFai Lau , Song Liu , Yonghong Song , Andrii Nakryiko , John Fastabend , KP Singh , Mark Rutland , Greg Kroah-Hartman , Allison Randal , Ard Biesheuvel , Thomas Gleixner , Marc Zyngier , Christoffer Dall , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, clang-built-linux@googlegroups.com Subject: [RFC PATCH bpf-next 0/3] arm64 BPF JIT Optimizations Date: Wed, 6 May 2020 18:05:00 -0700 Message-Id: <20200507010504.26352-1-luke.r.nels@gmail.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series introduces several optimizations to the arm64 BPF JIT. The optimizations make use of arm64 immediate instructions to avoid loading BPF immediates to temporary registers, when possible. In the process, we discovered two bugs in the logical immediate encoding function in arch/arm64/kernel/insn.c using Serval. The series also fixes the two bugs before introducing the optimizations. Tested on aarch64 QEMU virt machine using test_bpf and test_verifier. Luke Nelson (3): arm64: insn: Fix two bugs in encoding 32-bit logical immediates bpf, arm64: Optimize AND,OR,XOR,JSET BPF_K using arm64 logical immediates bpf, arm64: Optimize ADD,SUB,JMP BPF_K using arm64 add/sub immediates arch/arm64/kernel/insn.c | 6 ++- arch/arm64/net/bpf_jit.h | 22 +++++++++++ arch/arm64/net/bpf_jit_comp.c | 73 ++++++++++++++++++++++++++++------- 3 files changed, 85 insertions(+), 16 deletions(-) Cc: Xi Wang -- 2.17.1