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 X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CB27AC38A2A for ; Fri, 8 May 2020 18:16:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A5735208CA for ; Fri, 8 May 2020 18:16:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=cs.washington.edu header.i=@cs.washington.edu header.b="OUaIAWfx" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726797AbgEHSQA (ORCPT ); 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-Google-Smtp-Source: APiQypJi63IfRpNFJ9QMnCB3d7uQo9kOMqYx5rt13VDzmIabXyqW/KZU/7OgFnhyxpXQwSQA+CUfQg== 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