Received: by 2002:a25:23cc:0:0:0:0:0 with SMTP id j195csp266526ybj; Fri, 8 May 2020 11:17:48 -0700 (PDT) X-Google-Smtp-Source: APiQypJBklDyGdwduE5rBADLnyka09N4frHzgKq4XWtpxHwws7LkbFe2stA2FzroPgpcnNDw9Iga X-Received: by 2002:a50:c60c:: with SMTP id k12mr3240307edg.111.1588961868750; Fri, 08 May 2020 11:17:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588961868; cv=none; d=google.com; s=arc-20160816; b=QdVRK/3a3BVifTmo5LeVYcRVSCYMDJwJaKSSiX15PFzMNVtCPqHNyNBWdz1zOOCrtn OC5vh5WcOla7aLdpyzOMalC0ZzdIqXj/70XUp4nnoFEm19c7qCSyOerVyaJYH8lcgXPB FPKT+iGR3Ih3Tv8os9emj7ndhOJIsmzRpetVOuJJIMrQijMs46bTravpm3YIv+uOA4m5 5EpCxcKhFOeU9+z3AfH1l0nQQCPdG/JrCZEmdlhKLoI4Dtd5B/kQm5Tpw1J1ohDczQ6t +r7Drqh1fGToIlzfzl3bCoLwM4VLV27abwwYUE0lgp+YC35JULOiki9ufVWS3gHKtMOn MYXQ== 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=SpXTpjywTMwNg9TSFFzsjIj59xv1CBVoV4EOvzTnkkE=; b=ZYYP8iXy5HpI5rps6VL7Jgv6VlA6bprgZb3lY4OhHg1GV3Nga1/Ehdqia4Z96DyO// He5VBk5/5Ij0d/YGSXaxPYPEIdW7rVRkLxL/SDA7+CWusgCY+mYmhs2rbwPU0U/CkuPu qQ0R78I+r+x6H+SjL+VHNp7fP8Lexsf0dxs1UGxoZ7Wz8MeG5tKiBLJeWbVVyj3ydjpG YelOhxfNSDtgyZnM4x4OAHZVw1HDI+gVEDOcNNWkLCFa7NMzOZGOfM2KcVaKJ9vnymf6 GXwD7IhfqPYCCgOJK7lTSSVT+Fc5kOVxMJBGLKwbFrD8KL4pVmPruHKslz5kpAQOebWP v3YA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cs.washington.edu header.s=goo201206 header.b=OUaIAWfx; 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 j2si1458123edd.36.2020.05.08.11.17.25; Fri, 08 May 2020 11:17:48 -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=OUaIAWfx; 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 S1726807AbgEHSQA (ORCPT + 99 others); Fri, 8 May 2020 14:16:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726756AbgEHSP7 (ORCPT ); Fri, 8 May 2020 14:15:59 -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 4CC30C061A0C for ; Fri, 8 May 2020 11:15:59 -0700 (PDT) Received: by mail-pl1-x642.google.com with SMTP id s20so1088863plp.6 for ; Fri, 08 May 2020 11:15:59 -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=SpXTpjywTMwNg9TSFFzsjIj59xv1CBVoV4EOvzTnkkE=; b=OUaIAWfx/D+534tHqEjPc5LhTV0i1FVt0Kt5hR3t1Yp7olGvCqp/H+sefJAIfUfMTo lsTfQ0r47jEml60qGikpE/Q4n5MWvrp5ySbMDcj83f4zkSJNh3q1ELFkn5xeYt41li+N Pg4VgAJ9/SlQaHUatqfDxchdOtITEwVOUOSPI= 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=SpXTpjywTMwNg9TSFFzsjIj59xv1CBVoV4EOvzTnkkE=; b=ircRdSH2nD8aY+1lty9j1noYsWW1cGlFwLq7RGcORfXlAAhFM9eJyIeO2TQs5i3yPp cat+6eMRXJIWtrpQmz0w7EP00ovcO42HM+Hhg33I7rSFwrqPoUIIJN4Ff5Kv66p7RcdJ k19x0VDha8OtB8Qlvg0EmEp5Us/4CthnBinS40Frx7BSa4IrudECe8x3fQli0vgUZiUh O+4N3frsWW71aDf56XBRzkVn0NTaQTN1ZNbo0WrQvnkFt5uvTB43Dhs/TDhnqR38I8Ia 48ZlvZ3tz/HxpTc7c2HOV23nDq51GFiT7WnWw7YeFvrI/8sOPOSQ8apwugyNTGC/11Z+ JkRQ== X-Gm-Message-State: AGi0PuY+xNoXMnf7xFjKxi6jonqD4xz5AVVBv43fXER24FUVTP2/f3Hk j9AEX4CqGlyRAqWTCpNJLkh/6w== X-Received: by 2002:a17:902:9a43:: with SMTP id x3mr3623548plv.332.1588961758604; Fri, 08 May 2020 11:15:58 -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 e11sm2349463pfl.85.2020.05.08.11.15.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 May 2020 11:15:57 -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 , Alexios Zavras , Marc Zyngier , Ard Biesheuvel , Thomas Gleixner , Christoffer Dall , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, clang-built-linux@googlegroups.com Subject: [PATCH bpf-next v2 0/3] arm64 BPF JIT Optimizations Date: Fri, 8 May 2020 11:15:43 -0700 Message-Id: <20200508181547.24783-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. v2: - Cleaned up patch to insn.c. (Marc Zyngier, Will Deacon) 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 | 14 +++---- arch/arm64/net/bpf_jit.h | 22 +++++++++++ arch/arm64/net/bpf_jit_comp.c | 73 ++++++++++++++++++++++++++++------- 3 files changed, 88 insertions(+), 21 deletions(-) Cc: Xi Wang -- 2.17.1