From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59EBFC6FD1D for ; Fri, 17 Mar 2023 03:51:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229617AbjCQDv2 (ORCPT ); Thu, 16 Mar 2023 23:51:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59046 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229611AbjCQDv1 (ORCPT ); Thu, 16 Mar 2023 23:51:27 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A17C376070; Thu, 16 Mar 2023 20:51:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=6e5vgV9Lhq/FUovigpv1aQ+kfiWhjBTgyYSzrwszW/M=; b=RkgV/CLM0H4tbM+sMx80KLuyZI dhlobK9j/Zpdl37/xfWN7sk8uzdEF1sMSNimFevN1BOWVS4+VnFHCRMPFNviV6jgqSKr/R2usMGVa RyLURFWSuNiUJOzucNIF0hAkeYzU9Mv2Re4vYNb7wEdkB+7c785k79P1Y2oSmegvz39Apa6v29/kp INL7HuskgHrZmd8pWt7+VcOEHVAcxYKBIdzqIw/z4Pp4Wd1rwUte1cGugOTh9sSNhSfZCfH0ap6wM I/ybbA6jm7zMzvCbNc7/lzIWdoJEP/lWSrKGnDyxaBrNDukTEYb5N6c+blBV4fKli/754t71UzsAT Y6R05JGQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pd17b-00FTM7-BU; Fri, 17 Mar 2023 03:51:15 +0000 Date: Fri, 17 Mar 2023 03:51:15 +0000 From: Matthew Wilcox To: Andrii Nakryiko Cc: Ian Rogers , Jiri Olsa , Alexei Starovoitov , Andrii Nakryiko , Hao Luo , Andrew Morton , Alexander Viro , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , bpf@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-perf-users@vger.kernel.org, Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Daniel Borkmann , Namhyung Kim , Dave Chinner Subject: Re: [PATCHv3 bpf-next 0/9] mm/bpf/perf: Store build id in file object Message-ID: References: <20230316170149.4106586-1-jolsa@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org On Thu, Mar 16, 2023 at 02:51:52PM -0700, Andrii Nakryiko wrote: > Yep, Meta is also capturing stack traces with build ID as well, if > possible. Build IDs help with profiling short-lived processes which > exit before the profiling session is done and user-space tooling is > able to collect /proc//maps contents (which is what Ian is > referring to here). But also build ID allows to offload more of the > expensive stack symbolization process (converting raw memory addresses > into human readable function+offset+file path+line numbers > information) to dedicated remote servers, by allowing to cache and > reuse preprocessed DWARF/ELF information based on build ID. > > I believe perf tool is also using build ID, so any tool relying on > perf capturing full and complete profiling data for system-wide > performance analysis would benefit as well. > > Generally speaking, there is a whole ecosystem built on top of > assumption that binaries have build ID and profiling tooling is able > to provide more value if those build IDs are more reliably collected. > Which ultimately benefits the entire open-source ecosystem by allowing > people to spot issues (not necessarily just performance, it could be > correctness issues as well) more reliably, fix them, and benefit every > user. But build IDs are _generally_ available. The only problem (AIUI) is when you're trying to examine the contents of one container from another container. And to solve that problem, you're imposing a cost on everybody else with (so far) pretty vague justifications. I really don't like to see you growing struct file for this (nor struct inode, nor struct vm_area_struct). It's all quite unsatisfactory and I don't have a good suggestion.