Received: by 2002:ab2:6c55:0:b0:1fd:c486:4f03 with SMTP id v21csp56853lqp; Tue, 11 Jun 2024 14:37:18 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWS6NP0ftgLUeLzne/obDZ2b6CzCC1z2e7pXikilPlSAIZmJ++iTWqCc7s0x4C/lfOg7ZulQ2IxI/FlTBrKfXiI0uqghrelIvDmVi00BQ== X-Google-Smtp-Source: AGHT+IHiO9jwTlBi70UDsj6cBhr5JbMHXyiMQ5RETMC25v6GvTehiPCWUpVDyaeXOBo7sLiPic+5 X-Received: by 2002:a05:6a21:6d95:b0:1b8:498e:4e29 with SMTP id adf61e73a8af0-1b8a9c87660mr179042637.52.1718141837895; Tue, 11 Jun 2024 14:37:17 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718141837; cv=pass; d=google.com; s=arc-20160816; b=pRfaoq+jhMVSX+V45/+cOM3ed9EbIxDBR7AExIn7vh4zghKpj7TLF+4Ns/KNsqkbFW 7kG2WFR34wepk9I3hv/H7gfXrx1VA3XcmKu+c7GEHJddIMId+ZQl8302Z4EXQTIIeVZf J3lr/gwq1auPkorTU+FMK5F3LXLFgyl34PoPGN3g6L05cHxmeFx4RLzhBEu08+hClI7x t7B0PRE0B+2+tymUEuHanxMA/3MQziYUdkL7eKAiPEbv/HhZm8POZYSm+l+NpbqNBxvP YLlBtVEAGAbLJB4JJXV8okF+DtxPeGdNKuV2/pl1jkyU631ORzQobJBRqGyIfUNoYmew nxzg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-disposition:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:message-id:subject:cc:to:from:date :dkim-signature; bh=QDJ4uhIJXfeN5pEd4+RdRsukrGsh/6wypIguclgbJ5Y=; fh=2ohUwNBILkm1hA4pFBQR7r7xkql8F1bVTH40Y7//auo=; b=XYaig6/eHlO9DKC8/Q//RnuWCR7MQNcqw0v5kfZT3YdcfRw+k8qJk8fRRdJGb12k8T oTTZFDlksM7//481dwCHyNeSrRkFNP2yScejeRZ8io60xsKX6/z/bz8VnNH+XUzQMahK J17BpGaJjVWUUCnFknc9vLUwpJ8KX5q3OERf/AlYu7+nnaqOajK5F/uRdG8FnQXho13w Sa/RyrRRWzl04n/E2BeYtzX3CsVBfCpXgArGUmDjt6XuLq5sOWFUwExpXVP22SbFdyar 4lAntgqiUSo/pZg5ESeaO1S3bXXnXYkrrRmn3PWsTyLRtNtArYUO5L78/ych/fxV0vuV PgDQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=dt37lus7; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-210612-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-210612-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id 41be03b00d2f7-6f67aa41dacsi1984420a12.204.2024.06.11.14.37.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jun 2024 14:37:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-210612-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=dt37lus7; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-210612-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-210612-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 94689283E44 for ; Tue, 11 Jun 2024 21:27:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 25D55153836; Tue, 11 Jun 2024 21:26:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dt37lus7" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42CC9BA34; Tue, 11 Jun 2024 21:26:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718141218; cv=none; b=HHzPaJ0mM57PqMHPgp97rmVYG0LCnllk0BlGINoiMj24Ao6Hza0rYTWJYDTMZXRlP7oqA/bxiNkxqdyaW7Qrb/HddKms6WtneFJ1RoHNu6ecTMO2PQaWkyD97wyeoZ/Hq9L0jxtK0alf9kPbifOFa2D3R/E+02FHfKqQM602QCU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718141218; c=relaxed/simple; bh=l/slOwUbIQjq2IvyCrFSxlG82jUdCK9N4vGo107GLYY=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=mKwBg000o1g6LNgmBCJPMnmBaQp6BRwsCcYZeK+QSfG3osHJpxYi8ry8vczOUimElCNHTmAjBku1PAxFUHtp4qPP+Gwo/f/kV91Fpw7LmCyyv7Pvdbg23zxcyHDu3hQ3NCS9sBIagUzkskzO0v3JbGeeoAFa0C6daPXiJoFww+M= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dt37lus7; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31733C2BD10; Tue, 11 Jun 2024 21:26:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1718141216; bh=l/slOwUbIQjq2IvyCrFSxlG82jUdCK9N4vGo107GLYY=; h=Date:From:To:Cc:Subject:From; b=dt37lus7snItxzKmWYgcdGBV42ZD/gGxHjIdjOx8ffwSExMY8uRmTB4dZc0uz7vGl HO5uPbatJv06//E91ULoMem1+EJxuL4yuAwn08gY+DOG1FCaKVjirKlI1sKULcXUJO me4452LoQSXYMfrQAREX6xF4sICrP4640QzXKTN9m+DtHSneE7Iu2OqcjSc3wYNSXC ZIslyrX1bewsd8oTTPtY4JTokLz++c8BvDES3dSVLjW+1jt+5xBe+CdmljumekzVVa elkXDNisXWslp/luWgx5q7MoCZyki898hdstg3DZxzExec8sXr1T4bIOA8NW5x1wKc MyFxmGbBj9klQ== Date: Tue, 11 Jun 2024 18:26:53 -0300 From: Arnaldo Carvalho de Melo To: dwarves@vger.kernel.org Cc: Linux Kernel Mailing List , bpf@vger.kernel.org, Alan Maguire , Jiri Olsa , Jan Engelhardt , Matthias Schwarzott , Viktor Malik , Eduard Zingerman , Jan Alexander Steffens , Domenico Andreoli , Dominique Leuenberger , Daniel Xu , Yonghong Song Subject: ANNOUNCE: pahole v1.27 (reproducible builds, BTF kfuncs) Message-ID: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Url: http://acmel.wordpress.com Hi, The v1.27 release of pahole and its friends is out, supporting parallel reproducible builds and encoding kernel kfuncs in BTF, allowing tools such as bpftrace to enumerate the available kfuncs and obtain its function signatures and return types. Main git repo: https://git.kernel.org/pub/scm/devel/pahole/pahole.git Mirror git repo: https://github.com/acmel/dwarves.git tarball + gpg signature: https://fedorapeople.org/~acme/dwarves/dwarves-1.27.tar.xz https://fedorapeople.org/~acme/dwarves/dwarves-1.27.tar.bz2 https://fedorapeople.org/~acme/dwarves/dwarves-1.27.tar.sign Thanks a lot to all the contributors and distro packagers, you're on the CC list, I appreciate a lot the work you put into these tools, Best Regards, - Arnaldo BTF encoder: - Inject kfunc decl tags into BTF from the BTF IDs ELF section in the Linux kernel vmlinux file. This allows tools such as bpftools and pfunct to enumerate the available kfuncs and to gets its function signature, the type of its return and of its arguments. See the example in the BTF loader changes description, below. - Support parallel reproducible builds, where it doesn't matter how many threads are used, the end BTF encoding result is the same. - Sanitize unsupported DWARF int type with greater-than-16 byte, as BTF doesn't support it. BTF loader: - Initial support for BTF_KIND_DECL_TAG: $ pfunct --prototypes -F btf vmlinux.btf.decl_tag,decl_tag_kfuncs | grep ^bpf_kfunc | head bpf_kfunc void cubictcp_init(struct sock * sk); bpf_kfunc void cubictcp_cwnd_event(struct sock * sk, enum tcp_ca_event event); bpf_kfunc void cubictcp_cong_avoid(struct sock * sk, u32 ack, u32 acked); bpf_kfunc u32 cubictcp_recalc_ssthresh(struct sock * sk); bpf_kfunc void cubictcp_state(struct sock * sk, u8 new_state); bpf_kfunc void cubictcp_acked(struct sock * sk, const struct ack_sample * sample); bpf_kfunc int bpf_iter_css_new(struct bpf_iter_css * it, struct cgroup_subsys_state * start, unsigned int flags); bpf_kfunc struct cgroup_subsys_state * bpf_iter_css_next(struct bpf_iter_css * it); bpf_kfunc void bpf_iter_css_destroy(struct bpf_iter_css * it); bpf_kfunc s64 bpf_map_sum_elem_count(const struct bpf_map * map); $ pfunct --prototypes -F btf vmlinux.btf.decl_tag,decl_tag_kfuncs | grep ^bpf_kfunc | wc -l 116 $ pretty printing: - Fix hole discovery with inheritance in C++.