From patchwork Wed Sep 20 16:11:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 816337 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="EIZ05XXP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xy4Xr5CDQz9s7c for ; Thu, 21 Sep 2017 02:13:16 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751902AbdITQMN (ORCPT ); Wed, 20 Sep 2017 12:12:13 -0400 Received: from mail-pg0-f50.google.com ([74.125.83.50]:49543 "EHLO mail-pg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751858AbdITQMM (ORCPT ); Wed, 20 Sep 2017 12:12:12 -0400 Received: by mail-pg0-f50.google.com with SMTP id m30so1934993pgn.6 for ; Wed, 20 Sep 2017 09:12:11 -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=qul5PsmRgWLTfCC0ZEtP2dfrzE3wiv+yVs0WI8rTZ04=; b=EIZ05XXPCMhkXwKLhe5+k6Q5gcnBNayL2Ye1H+eWEox3rwKvSwcNW8iaglP5CAemDc vaXQtVR7AVmwZkfXlWjtF7c0B7QP/2dp/TZP09xIhXonCEUflaY2zHYCwke8OBtkdH0i k29qOhGpgGJa/UdbIgwKRU5o5MN5OWKtpaRDS39Zw2B+17DtaFCX7fRBOABQBdt0nvr/ 7jKvib/hOiZa2XFtFAtCYENq5BAG/3Nn/sMvOsBo+0cgwkT2I5RzLSeIca86/tkoyf8W XCfsvrIRO/hJc1e2JgaxuZAwInUPCb9hX3J6FfxVHzuOW0HrYGQNGcFetG9HF5pnuAUI 8ytQ== 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=qul5PsmRgWLTfCC0ZEtP2dfrzE3wiv+yVs0WI8rTZ04=; b=hHUZl5QbwHFXahyVVfmUDgrWs9RiJ/eDGncSZPnOKPUsHhMLn2QET5oC3tHd0SfXW1 qCkz7koBHhQhjaZ7XlmZVhaTF+vUn/6Cp1jxjaKdGZ/GGBi6sRgyvvPAG12EgnRHJ5tK tGxImb4XO9IOFWuJ/57I+gc1hyC+kzSvoiYMEiVKfQzsIEJb4VUZNNHWFCeWgo2YDSa2 ei3u5WjMyg/fR0XnZH/A+WXh+Cll+vOIhrPUvkrmgvhfqPkhNIuiZ39PI4PDy0a7ewy5 kI/svp9u4e2yVrj3xHGZVsQvFkCr75UFnb/h1nLeGSuh4jCtdILdaeEe9t/1nOrnz1Kp SUWA== X-Gm-Message-State: AHPjjUg9Ov5gM1wX4pPV5qMdQeu51SoZWYJLWsGiG7BxnBRGYkB6n83k CMEQ4oKwbK/njD3/IYLpSkN9Hg== X-Google-Smtp-Source: AOwi7QCzDoMYVGOFk/tLoQUFucudYLe29jFRPWEtqCbXp7DArKndxy5uiEoOVcAKjfDv2XA1AZxXgw== X-Received: by 10.99.151.2 with SMTP id n2mr2784297pge.315.1505923931246; Wed, 20 Sep 2017 09:12:11 -0700 (PDT) Received: from joelaf-glaptop0.roam.corp.google.com ([73.93.152.222]) by smtp.gmail.com with ESMTPSA id x9sm8767200pfk.40.2017.09.20.09.12.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 20 Sep 2017 09:12:10 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: netdev@vger.kernel.org, alison@she-devel.com, juri.lelli@arm.com, fengc@google.com, daniel@iogearbox.net, davem@davemloft.net, ast@kernel.org, kernel-team@android.com, Joel Fernandes Subject: [PATCH v4 1/4] samples/bpf: Use getppid instead of getpgrp for array map stress Date: Wed, 20 Sep 2017 09:11:56 -0700 Message-Id: <20170920161159.25747-1-joelaf@google.com> X-Mailer: git-send-email 2.14.1.821.g8fa685d3b7-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. Acked-by: Alexei Starovoitov Signed-off-by: Joel Fernandes Acked-by: Daniel Borkmann --- 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 Wed Sep 20 16:11:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 816336 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="PG3oc3yr"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xy4Xl49sxz9s7c for ; Thu, 21 Sep 2017 02:13:11 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751798AbdITQNJ (ORCPT ); Wed, 20 Sep 2017 12:13:09 -0400 Received: from mail-pf0-f180.google.com ([209.85.192.180]:47641 "EHLO mail-pf0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751897AbdITQMN (ORCPT ); Wed, 20 Sep 2017 12:12:13 -0400 Received: by mail-pf0-f180.google.com with SMTP id u12so1763088pfl.4 for ; Wed, 20 Sep 2017 09:12:13 -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=rulQ4wZPI8gVFEadlD132HmE0jbw7SRDcmzOKpuGIpM=; b=PG3oc3yrm89xmNekEBRzK/85eEaED4Oe+wT6JLO5ped2pqWtgqF7y3DP53Puoj9526 fgcHwX4QAg8KIukmB9r66A0Ag+Edcy2KFSMXGBSCN2NZ2d5B15H8rRE1IrzEcIXbnXqr 78/H1P/jN14FcqUPtlCqS7UcrFOQE2SPGIh4+hdU/HYV4XhN80wsiy783eImAEdHjRPq fvUx+OIIfzRaJTboqdw0jDY9vR102zd3MCd4/G1NTYQQ0SdpabdMXSwqSb1LnGlwHt/7 aAh9ZHy+ehMzyqUqFtCzOyc7f1BfGIVDNco8R6kOcZZzsY6D2VPbFXZnCjuoK2VALgGE OMDw== 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=rulQ4wZPI8gVFEadlD132HmE0jbw7SRDcmzOKpuGIpM=; b=IEykjgT33oEtFDr4VfaEfhCdf6MqG1h0fEiR4gcg5s2lRhhSn9PTFAxWZWxjhMOOqi /pbMsG+x046QXjswIivquPEnHZKZMysZOZLI+MikBzB5pl3UFspS0b28ugY5cmRF90RP DgDT38ZLF9n+lQo3gcseRj7naI4IxQmr6jMUAzvTG1qhGIQJJVPyqek9CAgHXf+uvrai mJimN0ZGrK8+z6aOln/GVjERXdKUQyzLtKkM5r2iBk5JF0xYeCkIAsMhZZwb8BbZzI68 TpePdvann4BUWOW5ElZHcaRdi0EILCiYbFOl6w5II+Eo331LD5v31m90GXzoe/Ya/kPk dK9w== X-Gm-Message-State: AHPjjUj91qtDYJvwwDk6qwyzUTr7N7KOfu1aKwXJjwBEVBYN07fBmF0d e0QK7h5Ud1TdiVY+nfpIcxURKXZVfz8= X-Google-Smtp-Source: AOwi7QCBwZzgwvjL9ppgyQb6C4DTr8h/bOzzlMb56m9b8Xybo3iEateqVMcBm8E1jy6SGwc7d5/hrg== X-Received: by 10.101.66.70 with SMTP id d6mr2663769pgq.169.1505923932725; Wed, 20 Sep 2017 09:12:12 -0700 (PDT) Received: from joelaf-glaptop0.roam.corp.google.com ([73.93.152.222]) by smtp.gmail.com with ESMTPSA id x9sm8767200pfk.40.2017.09.20.09.12.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 20 Sep 2017 09:12:12 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: netdev@vger.kernel.org, alison@she-devel.com, juri.lelli@arm.com, fengc@google.com, daniel@iogearbox.net, davem@davemloft.net, ast@kernel.org, kernel-team@android.com, Joel Fernandes Subject: [PATCH v4 2/4] samples/bpf: Enable cross compiler support Date: Wed, 20 Sep 2017 09:11:57 -0700 Message-Id: <20170920161159.25747-2-joelaf@google.com> X-Mailer: git-send-email 2.14.1.821.g8fa685d3b7-goog In-Reply-To: <20170920161159.25747-1-joelaf@google.com> References: <20170920161159.25747-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. Acked-by: Alexei Starovoitov Signed-off-by: Joel Fernandes Acked-by: Daniel Borkmann --- 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 Wed Sep 20 16:11:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 816335 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="qKtzRM34"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xy4XV6V7Mz9s7c for ; Thu, 21 Sep 2017 02:12:58 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751933AbdITQMQ (ORCPT ); Wed, 20 Sep 2017 12:12:16 -0400 Received: from mail-pg0-f42.google.com ([74.125.83.42]:56350 "EHLO mail-pg0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751859AbdITQMP (ORCPT ); Wed, 20 Sep 2017 12:12:15 -0400 Received: by mail-pg0-f42.google.com with SMTP id 7so1925146pgd.13 for ; Wed, 20 Sep 2017 09:12:15 -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=f8Gb5NQJb2H0pK0s11avCvjQYDcuX4cvZFdAA6W4WLo=; b=qKtzRM34Arr2UNZOMg9k2kBVlix1GD5MwP1mbIVOB3i6ZN2qnRgUBnMIpCXScGfF56 UmwSWfVDat6r6ctSSWfPPzJ+NwD6og9pi3AgH6v8/op7twYPp6e3At6vkV9N+Iy/P3Au vfvbXT99lHFKSKRm3e26OPG88jnumOoTJVRoYzkolgBtfQrAJBAi1yYMQQa0srRXwd8w 8EIuR7jSnRYvxTYEt70/oN7Stw4Cfb1nwm8PXP3pzz1Y8wO5YyVrAACQ/HCLZxiRY1p7 tUStEW2HSlGhGtIB/2j14Eso3AC9UOEVgq14OL8qU6X+F/4+882+S022pfFDoyi0KcFY wnMQ== 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=f8Gb5NQJb2H0pK0s11avCvjQYDcuX4cvZFdAA6W4WLo=; b=QQe/eyP3egDbfyIwnqA0Z90k6p4gkbiW0SbJ+E3q5Tv1KAhlmezSgJ5gO7nHOU2QRN CIofza4ohbxAmkcddGPOjOxFpMQMpPEX1Jfuop65U09/z1T8hItub+EfJQ2i7BV1GTPy LsaWEZKyIZ4SgUGOtTrd7KF+S2+SkIPTSgcY/ONFplpp8x8A1zu6qq0A+PQGdBG7oOup M/1AcJxb31zeo7BtKTXqNISI6Dw8cWX1eQtDqr7GcECmKP5bAMNfEUpeh+KMVjJJiom5 qz/cvjx/sQCwioDQfBehh0cOYef2CXKhKvd5cMndURInFJpG/rn2TvmAadM4c6kQyDZP R8Tw== X-Gm-Message-State: AHPjjUjB7dQ7m2nEiWebiSIRSrS/jcrEUX8XhCDir5Z68QmeVLyDhbXo ZdkTaPwZn+vXlcOiT5Gwo73/Bw== X-Google-Smtp-Source: AOwi7QDsDU5MrrIk0THquQPu+COX5pBTE0XITqIC9chhF20/IaLQ4jpkpwADykeGTL6HQPnnVNXQFg== X-Received: by 10.99.142.196 with SMTP id k187mr2818906pge.14.1505923934388; Wed, 20 Sep 2017 09:12:14 -0700 (PDT) Received: from joelaf-glaptop0.roam.corp.google.com ([73.93.152.222]) by smtp.gmail.com with ESMTPSA id x9sm8767200pfk.40.2017.09.20.09.12.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 20 Sep 2017 09:12:13 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: netdev@vger.kernel.org, alison@she-devel.com, juri.lelli@arm.com, fengc@google.com, daniel@iogearbox.net, davem@davemloft.net, ast@kernel.org, kernel-team@android.com, Joel Fernandes Subject: [PATCH v4 3/4] samples/bpf: Fix pt_regs issues when cross-compiling Date: Wed, 20 Sep 2017 09:11:58 -0700 Message-Id: <20170920161159.25747-3-joelaf@google.com> X-Mailer: git-send-email 2.14.1.821.g8fa685d3b7-goog In-Reply-To: <20170920161159.25747-1-joelaf@google.com> References: <20170920161159.25747-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. Acked-by: Alexei Starovoitov Signed-off-by: Joel Fernandes Acked-by: Daniel Borkmann --- 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 Wed Sep 20 16:11:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 816334 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="WOL5Bz3I"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xy4XK5CGTz9s7c for ; Thu, 21 Sep 2017 02:12:49 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752001AbdITQMr (ORCPT ); Wed, 20 Sep 2017 12:12:47 -0400 Received: from mail-pf0-f174.google.com ([209.85.192.174]:44755 "EHLO mail-pf0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751937AbdITQMR (ORCPT ); Wed, 20 Sep 2017 12:12:17 -0400 Received: by mail-pf0-f174.google.com with SMTP id e1so1764736pfk.1 for ; Wed, 20 Sep 2017 09:12:16 -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=7lPdpAoEo+IjdpkoFj1bvRFQfcmY47Rc2nY6L1IoekU=; b=WOL5Bz3Ic9hRLExwtd6eGML5bHb/wIouqfBdf1m3wqr7O1pk4wV42rTagCA4AjaC5p g8WSNrOBGNCrvuBHiAIIuU/YHdeoo0H3//3CJN/xZO0a8dxUgsMDGjKTaMDEBfN01VBg 4o3JkZtdzh2XR2uNLgR+WD4B0wILyWNqBp87LB8ZAtd1GFBgJ8uUYa5H0c6lhtUucKHa O/dmE7woqHn+KSZKVbHVUnGaNlfUzaeHSqUJo9ZOvHiBoPCJQPhEXBsftSp2wpEwEQ+g y0u4FLF4PdSIoQqGaBIV3nTxzkTUVlW09G1Awq7dzCnHBA6k/mMv62IEjGD58JHTl6gg b4Ow== 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=7lPdpAoEo+IjdpkoFj1bvRFQfcmY47Rc2nY6L1IoekU=; b=K7FsfhCfftpMm/XGeowb14J7MlhqPr1wStGhXUwxCeX0P0efbOTMBCB6pU+oR7Ev2k irW2x0/mgUH1v4l1b/JxVQ/4J11AyUqljTtlKsm++Fhv/LkwVcCyc6uTopwZT7E5rqNF ypIX/dG1BHkvYR7OTR5pvaar+MxcCLcu4PF7zIcYWEmRqZ0a7clvAWioMAeojzqByoFB xAh6ccgHcNYLFViiftwpjrLn76ZIOfdJTHPuxhSJzuc/+AHePB446G3hSUnVgLo6a7aA 620ZpySxmlZNVhgKZfT7GSOKbDzepteyNG1B/f6vB884mxF/9qsA7xSqaLYd7jrOATlq SfOA== X-Gm-Message-State: AHPjjUh5Qj92jeph1KeJoCyLeBKS+pgTHZXL+n+rDgMHkIabznotTq8T pi0kyW9Dg8o9YRa7fIrycLnzR3Liw5c= X-Google-Smtp-Source: AOwi7QCLIXh6iGZmzMX/MafyErK7LRb+BgrlfxAKyJjG5C30V3Mno5mhJ1yZ33PJSnwK+XlkM/xBcA== X-Received: by 10.101.92.67 with SMTP id v3mr2676422pgr.409.1505923936049; Wed, 20 Sep 2017 09:12:16 -0700 (PDT) Received: from joelaf-glaptop0.roam.corp.google.com ([73.93.152.222]) by smtp.gmail.com with ESMTPSA id x9sm8767200pfk.40.2017.09.20.09.12.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 20 Sep 2017 09:12:15 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: netdev@vger.kernel.org, alison@she-devel.com, juri.lelli@arm.com, fengc@google.com, daniel@iogearbox.net, davem@davemloft.net, ast@kernel.org, kernel-team@android.com, Joel Fernandes Subject: [PATCH v4 4/4] samples/bpf: Add documentation on cross compilation Date: Wed, 20 Sep 2017 09:11:59 -0700 Message-Id: <20170920161159.25747-4-joelaf@google.com> X-Mailer: git-send-email 2.14.1.821.g8fa685d3b7-goog In-Reply-To: <20170920161159.25747-1-joelaf@google.com> References: <20170920161159.25747-1-joelaf@google.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Acked-by: Alexei Starovoitov Signed-off-by: Joel Fernandes Acked-by: Daniel Borkmann --- 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