From patchwork Fri May 13 06:37:58 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zi Shen Lim X-Patchwork-Id: 621862 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3r5gCj6QFtz9t5W for ; Fri, 13 May 2016 16:38:09 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=0jLlLtPM; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751479AbcEMGiG (ORCPT ); Fri, 13 May 2016 02:38:06 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:33761 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750961AbcEMGiD (ORCPT ); Fri, 13 May 2016 02:38:03 -0400 Received: by mail-pf0-f193.google.com with SMTP id y7so8585332pfb.0 for ; Thu, 12 May 2016 23:38:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=ZY2XxEW3ixlPUSfUjhm2BHKkZeLJ/sKVz6iqqMsnp80=; b=0jLlLtPM82PmhKyS67NngEn3Gp3PSW1XMIu6lO0bYMwjY5FQHOOHeJ05s611gZ/z3o CKX3/40+ju+9ropKy9SBu1atJOMtwciVbtsYal4NA3nA8jSl/dXeS/W5fvN8dDh8IHGM yxOSQQJGOGy/p5T35eoWIEAa9s+HfYQMHvqXCQslTrp9zZ823LVuksZbwHW/oMf34RIk 16N+W98NA0m/6bO78Ok9nW7tF0fUzMbmC5lo2/AuTYVLbmLOuL9M9eKry/7VWBV2sGu2 lWGxZqc3dGoGGbVh+FTRaIVBLAwFh6S2fVkMx+8JKSZBNZuImcY0rOEeDrkj93f4Nv7f fC+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ZY2XxEW3ixlPUSfUjhm2BHKkZeLJ/sKVz6iqqMsnp80=; b=AO/0c5UJL8PDfqzS3csCrVzW7ZmXqtUNmclIzQjhxZH3ea6Enp8Oaq7bSEICvTHrdd phR7d0FyWqG2+oWh2CUVl1E8LT/hkds95FbQ9uopz9ZPq8JiHTLXHcmHz+5ZH3kRBKt6 mIwlQJiYL+TI1J1PMeAknwKL1q9KcS3ZH91U8ves4JNH/SxV4DmXexW8/YirHkRKaAGA ZaQgvyVxQO/7p5bR/NH3i0DN31waaA8D9jqJQfg4wAcohILulNMYEauDrz1qvD70eRGG fiTvg3CuoCHojtXMPJ08oaI/RXzj0UBTnoW/KJ4v/qCyvHvgD5BvHq1buCVenkqrkfPf PE9Q== X-Gm-Message-State: AOPr4FWILZdhoAInf2abfjpXYBj1knePS5ifG5vnNDYOYP7H/mI9TB0+lKuxgpSoRu1yUg== X-Received: by 10.98.69.213 with SMTP id n82mr20403177pfi.48.1463121483100; Thu, 12 May 2016 23:38:03 -0700 (PDT) Received: from localhost.localdomain (c-73-223-118-172.hsd1.ca.comcast.net. [73.223.118.172]) by smtp.gmail.com with ESMTPSA id 194sm24424424pfv.8.2016.05.12.23.38.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 12 May 2016 23:38:02 -0700 (PDT) From: Zi Shen Lim To: Alexei Starovoitov , "David S. Miller" , Will Deacon , Catalin Marinas Cc: Zi Shen Lim , Daniel Borkmann , Yang Shi , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH] arm64: bpf: jit JMP_JSET_{X,K} Date: Thu, 12 May 2016 23:37:58 -0700 Message-Id: <1463121478-18484-1-git-send-email-zlim.lnx@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Original implementation commit e54bcde3d69d ("arm64: eBPF JIT compiler") had the relevant code paths, but due to an oversight always fail jiting. As a result, we had been falling back to BPF interpreter whenever a BPF program has JMP_JSET_{X,K} instructions. With this fix, we confirm that the corresponding tests in lib/test_bpf continue to pass, and also jited. ... [ 2.784553] test_bpf: #30 JSET jited:1 188 192 197 PASS [ 2.791373] test_bpf: #31 tcpdump port 22 jited:1 325 677 625 PASS [ 2.808800] test_bpf: #32 tcpdump complex jited:1 323 731 991 PASS ... [ 3.190759] test_bpf: #237 JMP_JSET_K: if (0x3 & 0x2) return 1 jited:1 110 PASS [ 3.192524] test_bpf: #238 JMP_JSET_K: if (0x3 & 0xffffffff) return 1 jited:1 98 PASS [ 3.211014] test_bpf: #249 JMP_JSET_X: if (0x3 & 0x2) return 1 jited:1 120 PASS [ 3.212973] test_bpf: #250 JMP_JSET_X: if (0x3 & 0xffffffff) return 1 jited:1 89 PASS ... Fixes: e54bcde3d69d ("arm64: eBPF JIT compiler") Signed-off-by: Zi Shen Lim Acked-by: Will Deacon Acked-by: Yang Shi --- arch/arm64/net/bpf_jit_comp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c index 031ed08..d0d5190 100644 --- a/arch/arm64/net/bpf_jit_comp.c +++ b/arch/arm64/net/bpf_jit_comp.c @@ -478,6 +478,7 @@ emit_cond_jmp: case BPF_JGE: jmp_cond = A64_COND_CS; break; + case BPF_JSET: case BPF_JNE: jmp_cond = A64_COND_NE; break;