Received: by 2002:a05:6358:111d:b0:dc:6189:e246 with SMTP id f29csp2258577rwi; Thu, 3 Nov 2022 14:53:00 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7wzxkxEaLNCmBZWD0ATk10Og9mLGYa4PrZj+0OVQRKnHTGf/dwhNIEnbvn/vFIqm4bGS4E X-Received: by 2002:a17:907:1c04:b0:7ad:8318:99aa with SMTP id nc4-20020a1709071c0400b007ad831899aamr30439624ejc.574.1667512379872; Thu, 03 Nov 2022 14:52:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667512379; cv=none; d=google.com; s=arc-20160816; b=PIaaSH2TB0g9SAMWYn5B8cr44kA6HUfZueRzA2yIRrOQABLD8HZSRE7iRFyG+Pcg43 iJAPVMmDYFvToBcX5DWXUZotdG4n/hUx5hjn6tbHniZya5RJ39Jz7+6dMcYvPIRKuEqY kPK99Eg+4KJv4riEiALfLkuRs9VTX3mzWa/BDoNDwFTMFnjBqlW0StVHLQvDtziXeKtu NKTyRQt+LOhAceuBDdsvO9p/FMb7HF7Xdl1fsPWApwZTXe0AzQULtqoJbd93a56qgIaF PhNH5UmS6ZUXtMxne9YuLy3iT6M0ReN41DPxO222K2n3SLsgM8XrA/c9mnlBFOlepCx6 8L1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=bBsqxBywSuBVv5QBWri2mwGFxljwigTm6fKWjCa4M8U=; b=FsCUaj+qS0VAXHmAB8IHJ9o3PCHdBglp19AIhtq/SDcPoWEMXoudBGlpsA7eSXjTba M2QfAcTgKu3Sfw813tPiNKhMjxKbsnZrkNAz/cNO9ba+eOf11KKypr8T10CW913Napih RX4YTRqxwqS+67WQSRUnKdIFQJYOhDy4rMIZNmF8KgFhTGxwZKgSztvpeEmZYySYWl7m 6eCYbLyDvPNsJq0Liai3tEEx1qkW9EEtV5ziFIBD8KAvziasA3g6lM0cGPbo9oxejMFY KRhhR4mdu4ifHu7Gb21lz7X1ldX6O/uzgFBPyd+jG3JWo2I7rA4fyFFBc1MvYhvsh9L2 Xb6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=P5EgxMeu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hv9-20020a17090760c900b007877eb5687csi3077266ejc.249.2022.11.03.14.52.35; Thu, 03 Nov 2022 14:52:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=P5EgxMeu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231540AbiKCVgA (ORCPT + 99 others); Thu, 3 Nov 2022 17:36:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50086 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231185AbiKCVf5 (ORCPT ); Thu, 3 Nov 2022 17:35:57 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0748205C2; Thu, 3 Nov 2022 14:35:55 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 911F9B829FD; Thu, 3 Nov 2022 21:35:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B741EC433D6; Thu, 3 Nov 2022 21:35:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1667511353; bh=Ye7uiUhhSoKe2Mbv2vReU5Mf0bR28buafzRYMzEpkAs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=P5EgxMeuDjDj0YPijG9FZaJqLoojK157SzP+7+pcltxwXw2Izgd7y9njhp5iQp+tJ 7K199QsJg0GTYNy3UfaBBfEdRAnUn/8MD2KPPz3R8YX3eEtMhnfA1Pnaefiby15OeP JAs5YTEhGuoJP6fEACpYkeR5rjhZ0NoEdiqEtA2CVDVtzgfJRiSwsRGGTALmXF+wUe 41tMStGKLlXKyHWcLVQ9kiu2emX7+5iHuj1ceQzrOL+fgYe2t50+INhyqEaFHvyBAo aZ1ggkzszlNMXmopqpLArslZRwkz8uYcspqAyMIC+HgoEL/uvOccVm1kDFyeiyFIim jpsGhXvn4gnBA== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id D0DD74034E; Thu, 3 Nov 2022 18:35:49 -0300 (-03) Date: Thu, 3 Nov 2022 18:35:49 -0300 From: Arnaldo Carvalho de Melo To: Ian Rogers Cc: Leo Yan , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Stephane Eranian Subject: Re: [PATCH v1 6/7] perf trace: 5sec fix libbpf 1.0+ compatibility Message-ID: References: <20221103045437.163510-1-irogers@google.com> <20221103045437.163510-7-irogers@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Url: http://acmel.wordpress.com X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org With this: diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index d3d3c13a9f25b55c..067a6e56eeacc9fc 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config @@ -1239,7 +1239,7 @@ includedir = $(abspath $(prefix)/$(includedir_relative)) mandir = share/man infodir = share/info perfexecdir = libexec/perf-core -perf_include_dir = lib/perf/include +perf_include_dir = /usr/include perf_examples_dir = lib/perf/examples sharedir = $(prefix)/share template_dir = share/perf-core/templates diff --git a/tools/perf/examples/bpf/augmented_raw_syscalls.c b/tools/perf/examples/bpf/augmented_raw_syscalls.c index 13c72fd602c307e4..98a2731c011339ba 100644 --- a/tools/perf/examples/bpf/augmented_raw_syscalls.c +++ b/tools/perf/examples/bpf/augmented_raw_syscalls.c @@ -17,8 +17,9 @@ #include #include #include -#include -#include + +typedef char bool; +typedef int pid_t; /* bpf-output associated map */ struct __augmented_syscalls__ { @@ -94,6 +95,30 @@ struct pids_filtered { __uint(max_entries, 64); } pids_filtered SEC(".maps"); +/* + * Desired design of maximum size and alignment (see RFC2553) + */ +#define _K_SS_MAXSIZE 128 /* Implementation specific max size */ + +typedef unsigned short sa_family_t; + +/* + * The definition uses anonymous union and struct in order to control the + * default alignment. + */ +struct sockaddr_storage { + union { + struct { + sa_family_t ss_family; /* address family */ + /* Following field(s) are implementation specific */ + char __data[_K_SS_MAXSIZE - sizeof(unsigned short)]; + /* space to achieve desired size, */ + /* _SS_MAXSIZE value minus size of ss_family */ + }; + void *__align; /* implementation specific desired alignment */ + }; +}; + struct augmented_args_payload { struct syscall_enter_args args; union { diff --git a/tools/perf/examples/bpf/empty.c b/tools/perf/examples/bpf/empty.c index 3e296c0c53d7d8e2..e4872c48a484f218 100644 --- a/tools/perf/examples/bpf/empty.c +++ b/tools/perf/examples/bpf/empty.c @@ -7,6 +7,6 @@ struct syscall_enter_args; SEC("raw_syscalls:sys_enter") int sys_enter(struct syscall_enter_args *args) { - return 0; + return 1; } char _license[] SEC("license") = "GPL"; diff --git a/tools/perf/util/llvm-utils.c b/tools/perf/util/llvm-utils.c index 2dc7970074196ca8..a5cac85783d8711f 100644 --- a/tools/perf/util/llvm-utils.c +++ b/tools/perf/util/llvm-utils.c @@ -495,7 +495,7 @@ int llvm__compile_bpf(const char *path, void **p_obj_buf, snprintf(linux_version_code_str, sizeof(linux_version_code_str), "0x%x", kernel_version); - if (asprintf(&perf_bpf_include_opts, "-I%s/bpf", perf_include_dir) < 0) + if (asprintf(&perf_bpf_include_opts, "-I%s/", perf_include_dir) < 0) goto errout; force_set_env("NR_CPUS", nr_cpus_avail_str); force_set_env("LINUX_VERSION_CODE", linux_version_code_str); The connect calls gets served, tomorrow, if you don't beat me I'll apply the series after adding these minimal changes so that we have this working with libbpf 1.0 and then we can move from there, with a switch to a BPF skel, simplest things first, then deal with faults at pointer payload copy, which is another avenue, AFAIK with solutions already. Thanks, - Arnaldo [root@quaco perf]# perf trace -e /home/acme/git/perf/tools/perf/examples/bpf/augmented_raw_syscalls.c,connect* --max-events 10 0.000 ( 0.074 ms): fetchmail/175578 connect(fd: 3, uservaddr: { .family: LOCAL, path: /run/systemd/resolve/io.systemd.Resolve }, addrlen: 42) = 0 0.397 ( 0.011 ms): systemd-resolv/973 connect(fd: 23, uservaddr: { .family: INET, port: 53, addr: 127.0.0.1 }, addrlen: 16) = 0 0.532 ( 0.006 ms): systemd-resolv/973 connect(fd: 24, uservaddr: { .family: INET, port: 53, addr: 127.0.0.1 }, addrlen: 16) = 0 0.910 ( 0.007 ms): systemd-resolv/973 connect(fd: 23, uservaddr: { .family: INET, port: 53, addr: 127.0.0.1 }, addrlen: 16) = 0 0.962 ( 0.003 ms): systemd-resolv/973 connect(fd: 24, uservaddr: { .family: INET, port: 53, addr: 127.0.0.1 }, addrlen: 16) = 0 1.337 ( 0.007 ms): fetchmail/175578 connect(fd: 3, uservaddr: { .family: INET, port: 0, addr: 67.195.176.151 }, addrlen: 16) = 0 1.348 ( 0.014 ms): fetchmail/175578 connect(fd: 3, uservaddr: { .family: UNSPEC }, addrlen: 16) = 0 1.363 ( 0.003 ms): fetchmail/175578 connect(fd: 3, uservaddr: { .family: INET, port: 0, addr: 76.13.33.33 }, addrlen: 16) = 0 1.527 ( 0.014 ms): fetchmail/175578 connect(fd: 3, uservaddr: { .family: LOCAL, path: /run/systemd/resolve/io.systemd.Resolve }, addrlen: 42) = 0 1.726 ( 0.008 ms): systemd-resolv/973 connect(fd: 23, uservaddr: { .family: INET, port: 53, addr: 127.0.0.1 }, addrlen: 16) = 0 [root@quaco perf]#