From patchwork Sun Sep 3 18:25:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 809349 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="plqrfSyf"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xlhKB3p5rz9sDB for ; Mon, 4 Sep 2017 04:27:09 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752495AbdICS0F (ORCPT ); Sun, 3 Sep 2017 14:26:05 -0400 Received: from mail-pg0-f52.google.com ([74.125.83.52]:34801 "EHLO mail-pg0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751389AbdICS0E (ORCPT ); Sun, 3 Sep 2017 14:26:04 -0400 Received: by mail-pg0-f52.google.com with SMTP id t193so13181126pgc.1 for ; Sun, 03 Sep 2017 11:26:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Ddxd8StC/jzjd/s58gRiu3+70h4vJEQ/WCuDTX0qtiw=; b=plqrfSyfmU0fBbIITSJzTJy56+J6WWa9IsvuGCCMkYAC+fuf5Cy87HyXUJHsrdiRfq 0bT8/hhKF8Y5SJjqqrrNOUOreprc5sEkSylAi9+XypY60b10Btb+uJKZGpVkVNTcmj2v hp8GOjQK30ld6id/W30agqiX9W+11u9mIcRfSCaQljP7piRtghro0SgUGzldr0PC9pOP ofoPaOkMmAohOJzxsb9Nrd2WFPJtYDcWK5QC2KOEOylxjsX2p+3CkUFsET5bnaLzlJLc nGQr36KlW6iK6AreU0SEKGzv/UOvzwqOAn+MSEUsSCcdbCZIjkHMbCr1g2uPhHmB3k97 KM5w== 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=Ddxd8StC/jzjd/s58gRiu3+70h4vJEQ/WCuDTX0qtiw=; b=HvnRbaNrv0bDGahcIVzLMk5rf9QkjW28XqBny0QI9EaKG5WcRDyn2tOjc03tb5GY67 6S4l6NVektIkTkXz1PL2IHlF2WCaig8FR/Tv8C6t4J1EhXk3tBZUPoNeBJuPwRTMXg8H AClgz5qN/v+N0GuXQB2jkAz/b8XxRKy9UtVk1i8NlbcTEOBZ6kdhyiTbUVKm06u0usXe hNsBcis5Dosy0BmHOpw9ZWJab/BMFt6i3Er5Z2hJmnV9MId7YBaNmjP6/OL/jz9jHcbG LZfAK+Acygjn95987of0NzpbY+j4iOv1ruW5fsT1JPGefwKl/RpzoEM9ACEPJ7eSoLDR 7oiA== X-Gm-Message-State: AHPjjUi/hqj3U2oyt/R2BB45Rj8cJmkjI93ah8yJr09RpGHOQt1w/AJz aBxMLlAYcqI9ph1x X-Google-Smtp-Source: ADKCNb69cO99iFne62NzKZMe4tLel1MfFMSeYIpUuoxgGK6bTL1rwNtX8Y+Oxq/jvd6iPkPXrBh4Sg== X-Received: by 10.99.3.79 with SMTP id 76mr9709021pgd.211.1504463163387; Sun, 03 Sep 2017 11:26:03 -0700 (PDT) Received: from joelaf-glaptop0.roam.corp.google.com (74.sub-70-213-6.myvzw.com. [70.213.6.74]) by smtp.gmail.com with ESMTPSA id p64sm7627440pfi.168.2017.09.03.11.26.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 03 Sep 2017 11:26:02 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: kernel-team@android.com, Juri Lelli , Alison Chaiken , Chenbo Feng , Joel Fernandes , Alexei Starovoitov , Daniel Borkmann , David Miller Subject: [PATCH RFC v3 1/4] samples/bpf: Use getppid instead of getpgrp for array map stress Date: Sun, 3 Sep 2017 11:25:46 -0700 Message-Id: <20170903182549.30866-1-joelaf@google.com> X-Mailer: git-send-email 2.14.1.581.gf28d330327-goog Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When cross-compiling the bpf sample map_perf_test for aarch64, I find that __NR_getpgrp is undefined. This causes build errors. This syscall is deprecated and requires defining __ARCH_WANT_SYSCALL_DEPRECATED. To avoid having to define that, just use a different syscall (getppid) for the array map stress test. CC: Alexei Starovoitov CC: Daniel Borkmann Cc: David Miller Signed-off-by: Joel Fernandes --- samples/bpf/map_perf_test_kern.c | 2 +- samples/bpf/map_perf_test_user.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/bpf/map_perf_test_kern.c b/samples/bpf/map_perf_test_kern.c index 098c857f1eda..2b2ffb97018b 100644 --- a/samples/bpf/map_perf_test_kern.c +++ b/samples/bpf/map_perf_test_kern.c @@ -266,7 +266,7 @@ int stress_hash_map_lookup(struct pt_regs *ctx) return 0; } -SEC("kprobe/sys_getpgrp") +SEC("kprobe/sys_getppid") int stress_array_map_lookup(struct pt_regs *ctx) { u32 key = 1, i; diff --git a/samples/bpf/map_perf_test_user.c b/samples/bpf/map_perf_test_user.c index f388254896f6..a0310fc70057 100644 --- a/samples/bpf/map_perf_test_user.c +++ b/samples/bpf/map_perf_test_user.c @@ -282,7 +282,7 @@ static void test_array_lookup(int cpu) start_time = time_get_ns(); for (i = 0; i < max_cnt; i++) - syscall(__NR_getpgrp, 0); + syscall(__NR_getppid, 0); printf("%d:array_lookup %lld lookups per sec\n", cpu, max_cnt * 1000000000ll * 64 / (time_get_ns() - start_time)); } From patchwork Sun Sep 3 18:25:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 809347 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="eOd/2SkN"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xlhJb2Z1Qz9sDB for ; Mon, 4 Sep 2017 04:26:39 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752803AbdICS0I (ORCPT ); Sun, 3 Sep 2017 14:26:08 -0400 Received: from mail-pg0-f45.google.com ([74.125.83.45]:37426 "EHLO mail-pg0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752604AbdICS0G (ORCPT ); Sun, 3 Sep 2017 14:26:06 -0400 Received: by mail-pg0-f45.google.com with SMTP id 83so13054124pgb.4 for ; Sun, 03 Sep 2017 11:26:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=6LA6iB402DqWY3wSPsbxSjZ553wPZxkUBM0nrdMv4B0=; b=eOd/2SkNICbJZR5zSzvaWJGz+uY0yBpiR+5BVbvd7iFTkPLmY7bVGlaqvTEOS1D3OQ tZo+7fY+WsZKP5oVxfLF9pR+ozyKO/va0RQrGRmre/kd9uvZcSmZ7C9geLtzbJ67MtLt pGUWZOlnGAJ14/oXD0BzvxRxjPBX+raFxYSKUyaDsW7BB3mV2w4n1ZXNBgVkKehwx2Gt flY1e2sdfY0yEcRPjvv3ujj4dyoHZdf0zFnGqLJ6n7Iq7uG7JWyu7y+a4z8uv7DVUBvt FxZEsPdBQIraIjYUN1YKSTnwDqTFmLsYhl5ozf/3T96VKkX7devP7Z3h+yRp+FuKclsu GVng== 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:in-reply-to :references; bh=6LA6iB402DqWY3wSPsbxSjZ553wPZxkUBM0nrdMv4B0=; b=pvc5sj8a8Y1j+g6UlUBJnl/uefxPZifdMfm2vrroSZbjmADAZrQze1ZO6HkeLyTRuH P522HJ9d+u363XX6oUV922CuMaxrVYJst/T4X/va4/p+uDXbr6zLv3FcRyddAwW62uEz Y2/lGT8y5eEg7Hcj+faEbv2rN7LK4RsLnWPPDHEfeZxgiy088JwVyjJfK82uoJuPw1T2 ZjPj5znq4SyCNNh1GeeeMx46LVpuX7QM2MWZX+j5XkUGu2gs9kXFMNgDDn2MShF0XBeW kOwJ2+26aExRH6D40rNtOZYg6po3ueUfjHzHgi57B0oJfmPi099cem6kiaSV6EYiN4tr NhsQ== X-Gm-Message-State: AHPjjUgYIm/UNX9xkT/e1rkjld92Cs9NxiAbQJl1fymMif5BFKaK8+qJ EMcc5DRZm4jMZb/Y X-Google-Smtp-Source: ADKCNb6U3yhnPgNKmGknbV3AXPQ2U2TMkyLTYzxeJO/Lh8K0ghSCwBZ406evNogB7okkGFpIMedOTg== X-Received: by 10.98.193.1 with SMTP id i1mr2132779pfg.155.1504463165590; Sun, 03 Sep 2017 11:26:05 -0700 (PDT) Received: from joelaf-glaptop0.roam.corp.google.com (74.sub-70-213-6.myvzw.com. [70.213.6.74]) by smtp.gmail.com with ESMTPSA id p64sm7627440pfi.168.2017.09.03.11.26.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 03 Sep 2017 11:26:05 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: kernel-team@android.com, Juri Lelli , Alison Chaiken , Chenbo Feng , Joel Fernandes , Alexei Starovoitov , Daniel Borkmann , David Miller Subject: [PATCH RFC v3 2/4] samples/bpf: Enable cross compiler support Date: Sun, 3 Sep 2017 11:25:47 -0700 Message-Id: <20170903182549.30866-2-joelaf@google.com> X-Mailer: git-send-email 2.14.1.581.gf28d330327-goog In-Reply-To: <20170903182549.30866-1-joelaf@google.com> References: <20170903182549.30866-1-joelaf@google.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When cross compiling, bpf samples use HOSTCC for compiling the non-BPF part of the sample, however what we really want is to use the cross compiler to build for the cross target since that is what will load and run the BPF sample. Detect this and compile samples correctly. CC: Alexei Starovoitov CC: Daniel Borkmann Cc: David Miller Signed-off-by: Joel Fernandes --- samples/bpf/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile index cf17c7932a6e..13f74b67ca44 100644 --- a/samples/bpf/Makefile +++ b/samples/bpf/Makefile @@ -177,6 +177,11 @@ HOSTLOADLIBES_syscall_tp += -lelf LLC ?= llc CLANG ?= clang +# Detect that we're cross compiling and use the cross compiler +ifdef CROSS_COMPILE +HOSTCC = $(CROSS_COMPILE)gcc +endif + # Trick to allow make to be run from this directory all: $(MAKE) -C ../../ $(CURDIR)/ From patchwork Sun Sep 3 18:25:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 809348 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="lEW9UKcS"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xlhJs61nDz9sDB for ; Mon, 4 Sep 2017 04:26:53 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752945AbdICS0i (ORCPT ); Sun, 3 Sep 2017 14:26:38 -0400 Received: from mail-pg0-f44.google.com ([74.125.83.44]:34806 "EHLO mail-pg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752629AbdICS0I (ORCPT ); Sun, 3 Sep 2017 14:26:08 -0400 Received: by mail-pg0-f44.google.com with SMTP id t193so13181324pgc.1 for ; Sun, 03 Sep 2017 11:26:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=eHfjwX5w/EXC/FwMFQ4dwJii41udQ+7ZPd1paVvhvzg=; b=lEW9UKcSkrvCU9pmRq24A6JWR814XYaqXrYGv5PNdSxMQ27gF+6QRkCAwKnmfI/ceR 86UfumldwvJ31yyolU37mA0wUPNjOd5PGL8S3jAXsja2MkyMwcTl0gN6ZckDOxJNE8Vm HJ4ozeMe2Ly1w1L2F1tfQxhe8hy+ieNIpJT7pOuS019ojSangulFX/FQf0I9VCHdaLNp TEMHWYyXYIVfwgeAe/nbEhwI6/Io5hdeXcHFUoE8dcWR21OQ+SvuZOLM4Zw7cjeGnNpF 3sdfyv1t2nVaBy6+/+YCsbgRHpswFGM/V8903uy4bcsbQrGAHlI/RdHWLM7hU5N/CQc9 OfSg== 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:in-reply-to :references; bh=eHfjwX5w/EXC/FwMFQ4dwJii41udQ+7ZPd1paVvhvzg=; b=DeYDIu+izaFQgbLeF7IE+UM/8h7qNORTgZ/VadFGAflU8b27Yt7Tst+Kuyq276tk94 JwQIraQqiGMqlkFxph40XoxAlvGknY//lErCxtNNAWmcHF+FrDsJ3ixyZpbnbwO+Oc7a uKELWz6tDWxHZNYL/ooPywBBYkPit2d6K9vH+T3+39gBFF3oOC9dL9zXEm92sZuR6vVf u7eCnQvpcj94yR5nVLneL8+P76uRQKhsHHbEAklNAww6WY+WoQ1xmePnWwspvfoCCNin PtTjPUacTDks1mB/jn7zJN/Y9gmWgc4eyhOj3H48rx2jOukDRcFTivM/Z3nprkZsAZvP GFcA== X-Gm-Message-State: AHPjjUjYXnV7cuyZ+qeys1k4QZz3QSR1pyPzFm6fSSHwA2zcokP1dcD1 kXDu7UN/VK1inlin X-Google-Smtp-Source: ADKCNb4ywmauyzZqCOs0Wj5w1pzqjInBzOlx4aV2kUh3P/+SdaZWVgyyE9acBDFnE6m/z3OU0rq7EA== X-Received: by 10.98.194.193 with SMTP id w62mr1579946pfk.246.1504463167492; Sun, 03 Sep 2017 11:26:07 -0700 (PDT) Received: from joelaf-glaptop0.roam.corp.google.com (74.sub-70-213-6.myvzw.com. [70.213.6.74]) by smtp.gmail.com with ESMTPSA id p64sm7627440pfi.168.2017.09.03.11.26.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 03 Sep 2017 11:26:07 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: kernel-team@android.com, Juri Lelli , Alison Chaiken , Chenbo Feng , Joel Fernandes , Alexei Starovoitov , Daniel Borkmann , David Miller Subject: [PATCH RFC v3 3/4] samples/bpf: Fix pt_regs issues when cross-compiling Date: Sun, 3 Sep 2017 11:25:48 -0700 Message-Id: <20170903182549.30866-3-joelaf@google.com> X-Mailer: git-send-email 2.14.1.581.gf28d330327-goog In-Reply-To: <20170903182549.30866-1-joelaf@google.com> References: <20170903182549.30866-1-joelaf@google.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org BPF samples fail to build when cross-compiling for ARM64 because of incorrect pt_regs param selection. This is because clang defines __x86_64__ and bpf_headers thinks we're building for x86. Since clang is building for the BPF target, it shouldn't make assumptions about what target the BPF program is going to run on. To fix this, lets pass ARCH so the header knows which target the BPF program is being compiled for and can use the correct pt_regs code. CC: Alexei Starovoitov CC: Daniel Borkmann Cc: David Miller Signed-off-by: Joel Fernandes --- samples/bpf/Makefile | 2 +- tools/testing/selftests/bpf/bpf_helpers.h | 56 +++++++++++++++++++++++++++---- 2 files changed, 50 insertions(+), 8 deletions(-) diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile index 13f74b67ca44..ebc2ad69b62c 100644 --- a/samples/bpf/Makefile +++ b/samples/bpf/Makefile @@ -230,7 +230,7 @@ $(obj)/%.o: $(src)/%.c $(CLANG) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(EXTRA_CFLAGS) -I$(obj) \ -I$(srctree)/tools/testing/selftests/bpf/ \ -D__KERNEL__ -D__ASM_SYSREG_H -Wno-unused-value -Wno-pointer-sign \ - -Wno-compare-distinct-pointer-types \ + -D__TARGET_ARCH_$(ARCH) -Wno-compare-distinct-pointer-types \ -Wno-gnu-variable-sized-type-not-at-end \ -Wno-address-of-packed-member -Wno-tautological-compare \ -Wno-unknown-warning-option \ diff --git a/tools/testing/selftests/bpf/bpf_helpers.h b/tools/testing/selftests/bpf/bpf_helpers.h index 36fb9161b34a..4875395b0b52 100644 --- a/tools/testing/selftests/bpf/bpf_helpers.h +++ b/tools/testing/selftests/bpf/bpf_helpers.h @@ -109,7 +109,47 @@ static int (*bpf_skb_under_cgroup)(void *ctx, void *map, int index) = static int (*bpf_skb_change_head)(void *, int len, int flags) = (void *) BPF_FUNC_skb_change_head; +/* Scan the ARCH passed in from ARCH env variable (see Makefile) */ +#if defined(__TARGET_ARCH_x86) + #define bpf_target_x86 + #define bpf_target_defined +#elif defined(__TARGET_ARCH_s930x) + #define bpf_target_s930x + #define bpf_target_defined +#elif defined(__TARGET_ARCH_arm64) + #define bpf_target_arm64 + #define bpf_target_defined +#elif defined(__TARGET_ARCH_mips) + #define bpf_target_mips + #define bpf_target_defined +#elif defined(__TARGET_ARCH_powerpc) + #define bpf_target_powerpc + #define bpf_target_defined +#elif defined(__TARGET_ARCH_sparc) + #define bpf_target_sparc + #define bpf_target_defined +#else + #undef bpf_target_defined +#endif + +/* Fall back to what the compiler says */ +#ifndef bpf_target_defined #if defined(__x86_64__) + #define bpf_target_x86 +#elif defined(__s390x__) + #define bpf_target_s930x +#elif defined(__aarch64__) + #define bpf_target_arm64 +#elif defined(__mips__) + #define bpf_target_mips +#elif defined(__powerpc__) + #define bpf_target_powerpc +#elif defined(__sparc__) + #define bpf_target_sparc +#endif +#endif + +#if defined(bpf_target_x86) #define PT_REGS_PARM1(x) ((x)->di) #define PT_REGS_PARM2(x) ((x)->si) @@ -122,7 +162,7 @@ static int (*bpf_skb_change_head)(void *, int len, int flags) = #define PT_REGS_SP(x) ((x)->sp) #define PT_REGS_IP(x) ((x)->ip) -#elif defined(__s390x__) +#elif defined(bpf_target_s390x) #define PT_REGS_PARM1(x) ((x)->gprs[2]) #define PT_REGS_PARM2(x) ((x)->gprs[3]) @@ -135,7 +175,7 @@ static int (*bpf_skb_change_head)(void *, int len, int flags) = #define PT_REGS_SP(x) ((x)->gprs[15]) #define PT_REGS_IP(x) ((x)->psw.addr) -#elif defined(__aarch64__) +#elif defined(bpf_target_arm64) #define PT_REGS_PARM1(x) ((x)->regs[0]) #define PT_REGS_PARM2(x) ((x)->regs[1]) @@ -148,7 +188,7 @@ static int (*bpf_skb_change_head)(void *, int len, int flags) = #define PT_REGS_SP(x) ((x)->sp) #define PT_REGS_IP(x) ((x)->pc) -#elif defined(__mips__) +#elif defined(bpf_target_mips) #define PT_REGS_PARM1(x) ((x)->regs[4]) #define PT_REGS_PARM2(x) ((x)->regs[5]) @@ -161,7 +201,7 @@ static int (*bpf_skb_change_head)(void *, int len, int flags) = #define PT_REGS_SP(x) ((x)->regs[29]) #define PT_REGS_IP(x) ((x)->cp0_epc) -#elif defined(__powerpc__) +#elif defined(bpf_target_powerpc) #define PT_REGS_PARM1(x) ((x)->gpr[3]) #define PT_REGS_PARM2(x) ((x)->gpr[4]) @@ -172,7 +212,7 @@ static int (*bpf_skb_change_head)(void *, int len, int flags) = #define PT_REGS_SP(x) ((x)->sp) #define PT_REGS_IP(x) ((x)->nip) -#elif defined(__sparc__) +#elif defined(bpf_target_sparc) #define PT_REGS_PARM1(x) ((x)->u_regs[UREG_I0]) #define PT_REGS_PARM2(x) ((x)->u_regs[UREG_I1]) @@ -182,6 +222,8 @@ static int (*bpf_skb_change_head)(void *, int len, int flags) = #define PT_REGS_RET(x) ((x)->u_regs[UREG_I7]) #define PT_REGS_RC(x) ((x)->u_regs[UREG_I0]) #define PT_REGS_SP(x) ((x)->u_regs[UREG_FP]) + +/* Should this also be a bpf_target check for the sparc case? */ #if defined(__arch64__) #define PT_REGS_IP(x) ((x)->tpc) #else @@ -190,10 +232,10 @@ static int (*bpf_skb_change_head)(void *, int len, int flags) = #endif -#ifdef __powerpc__ +#ifdef bpf_target_powerpc #define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ (ip) = (ctx)->link; }) #define BPF_KRETPROBE_READ_RET_IP BPF_KPROBE_READ_RET_IP -#elif defined(__sparc__) +#elif bpf_target_sparc #define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ (ip) = PT_REGS_RET(ctx); }) #define BPF_KRETPROBE_READ_RET_IP BPF_KPROBE_READ_RET_IP #else From patchwork Sun Sep 3 18:25:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 809346 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="h7OOTJ34"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xlhJN1Hvfz9sDB for ; Mon, 4 Sep 2017 04:26:28 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752879AbdICS0N (ORCPT ); Sun, 3 Sep 2017 14:26:13 -0400 Received: from mail-pg0-f53.google.com ([74.125.83.53]:35882 "EHLO mail-pg0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752613AbdICS0K (ORCPT ); Sun, 3 Sep 2017 14:26:10 -0400 Received: by mail-pg0-f53.google.com with SMTP id r133so13087041pgr.3 for ; Sun, 03 Sep 2017 11:26:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Bh22PkrDdXvH3tuYetlMNT0bvm48TT3gelrmZ1426dM=; b=h7OOTJ34FDEwDZbtHj9YcDoyYISePEXEX1V68kOkCvVK6Gw7Q3zkFIAe9P+grMAz/b tD2zAYdwdzQy6VIIbTKRXRj3wH28g1D1xJSyc0Q8p5G5pXYvRJE4oN4TyclhfU1xCNVt g8I+9KikNtUtf2ee+4H9/HfUqanMMb0fT0MZpWG7OUafrw6moz2YUCohGrNcdJJF5W3D RIfQVEuLG/WFyLtSonOlNkiyJMpPSJ7q+qmldk48cYmGCkNkt/eP1WQl1lTvnxZ9/uAC 8x+PQn2pYrJon3wq5thl54E5V9AtDveRqOqZPDo2qXfTg6pDLKW8Ol2t5y8E+v4o9hzw 2AoQ== 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:in-reply-to :references; bh=Bh22PkrDdXvH3tuYetlMNT0bvm48TT3gelrmZ1426dM=; b=eo7Una5l1fcoG1/lX8LCNxDKIipij+/sLw1xYp+SsZ5HnXeur50evoDGf8dp8o4MUV oMQ7O9M+wyYlf/XDZ3795LH83DIkkpQUGqyCtbF39JZxS6TGhicDycQFble3efj2AjAN Q/79osWRl80tttjuEDyntHKlVr5ceUZdJnkcU7i3iesyT/g3oAhdZo2tzln4soWYgCsx TsfGoqLEQe+bcxQHTOEOz7fh4mJIo1SSzeCkZe0X0lObALVeaNZDXSvTbZr54i0JH8Ts tFYIQkcrt9cHq9BSCtsoZtahQIXXohPBFbrQq85AlhyPQyT7uP0Cv5o3wpdotAS61UQF nZbA== X-Gm-Message-State: AHPjjUgOzymvaBlY5OqO78jx9DgtfJFWNyDHOD+AZblVdPpRjSnJuL9S 5TxZav/68adxw0wE9Po0Lw== X-Google-Smtp-Source: ADKCNb41FxGNR7xbAvYCr6QFNfrtyzK8Ua3OB6oFKevtbVx2kEidm8qYgPm62YV5/TZiJU6xo2vinQ== X-Received: by 10.98.212.87 with SMTP id u23mr4934775pfl.95.1504463169346; Sun, 03 Sep 2017 11:26:09 -0700 (PDT) Received: from joelaf-glaptop0.roam.corp.google.com (74.sub-70-213-6.myvzw.com. [70.213.6.74]) by smtp.gmail.com with ESMTPSA id p64sm7627440pfi.168.2017.09.03.11.26.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 03 Sep 2017 11:26:08 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: kernel-team@android.com, Juri Lelli , Alison Chaiken , Chenbo Feng , Joel Fernandes , Alexei Starovoitov , Daniel Borkmann , David Miller Subject: [PATCH RFC v3 4/4] samples/bpf: Add documentation on cross compilation Date: Sun, 3 Sep 2017 11:25:49 -0700 Message-Id: <20170903182549.30866-4-joelaf@google.com> X-Mailer: git-send-email 2.14.1.581.gf28d330327-goog In-Reply-To: <20170903182549.30866-1-joelaf@google.com> References: <20170903182549.30866-1-joelaf@google.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org CC: Alexei Starovoitov CC: Daniel Borkmann CC: David Miller Signed-off-by: Joel Fernandes --- samples/bpf/README.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst index 79f9a58f1872..2b906127ef54 100644 --- a/samples/bpf/README.rst +++ b/samples/bpf/README.rst @@ -64,3 +64,13 @@ It is also possible to point make to the newly compiled 'llc' or 'clang' command via redefining LLC or CLANG on the make command line:: make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang + +Cross compiling samples +----------------------- +Inorder to cross-compile, say for arm64 targets, export CROSS_COMPILE and ARCH +environment variables before calling make. This will direct make to build +samples for the cross target. + +export ARCH=arm64 +export CROSS_COMPILE="aarch64-linux-gnu-" +make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang