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 X-Spam-Level: X-Spam-Status: No, score=-21.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8A352C64E7A for ; Tue, 1 Dec 2020 04:12:34 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F196520725 for ; Tue, 1 Dec 2020 04:12:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="BxTWuAr2"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ccKTRsIL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F196520725 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=/0q/GZvNLkxK5x+lX8q/ORTJtcVS4KCsJPXVqkqwRbo=; b=BxTWuAr2pf3tt0IFV3Q9P1iJT VhUSIziMFUUsr+avwAFjqCtmKkvA5n01yceKg1ipm2C7G5pQ88AkJ1RgxHfUgNE7PSpfsUn1UnOll etWdBPqFjRHWD5TVv7toKlT30/PxFYBTC5eZIUD0ovYq7hZh9BC3wNuzToxuWsydLqZAoRr7rEN+f thOMD755LsN8oYrjt+8E9KNsA6q/ptR9mIgCxohXcHpyqYwbWSSmxZZvUQiuRvs97XuZydXli8dwf nIA8lEvy12wcT7rTpLpW9JVbSzoaM2C/XhpDQK9nzvHGVx0GTM/Kwi32ZUFIdc1mv2CpoU9sJ0Uys VuZrZq6vA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjx09-00082m-8d; Tue, 01 Dec 2020 04:10:53 +0000 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjx05-00082L-Uk for linux-arm-kernel@lists.infradead.org; Tue, 01 Dec 2020 04:10:51 +0000 Received: by mail-pl1-x641.google.com with SMTP id l11so409867plt.1 for ; Mon, 30 Nov 2020 20:10:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=4gTVyUsOmP5LeMG5o202bTzO+J5xznjW1zTL9+SjzpM=; b=ccKTRsILPyGIyRAmLgvYi1tTd1l55bnvNt4V/z+IWYvqj3BF9ZW53bIWQu1aodcoht 6m7aWm+AryLh4ygB9IFLU60mIPyXEiGoHijllyLUvPmYugLWE0W58fjLUiHeV1X8jOLx jTfNK9N59dVWw3aUavZnz/0OsXGFpJhhf3QH+JrNwavLqh4j0oCQ1shTxEFplZp+xuGG UuhLG7m81hAx6RxNKKdAm21hF+rQHztEB0Ube4E+a3aOh+sSykDlV1RtjQr7x8+6VvZH TtJuG7A0nZ/IKMdiLut6b+3g0SaFYUBggGOOJaojrq+7lOlGVNb5IzHPIWOMZJcqAkiz JYag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=4gTVyUsOmP5LeMG5o202bTzO+J5xznjW1zTL9+SjzpM=; b=SFr+pGGcP1tc7mQ1grCz9gAJYTwkDjetN0MuG2+rcOERP48ap02tsGpAFLa8LbLSUH ndVM5BIn7elAsJq0da6y/maG2mGnVBasPr33GcQZAirJ/o1zP0QZrq94D4YnzqlydKP6 UVIlcWO//m+np034VXJgJq/ONINz7sgUr/cARU1yKwcqRwGeq0+vYPZpN76OLIbqD1sW qF3be836mROdeh+si0hTMjIhKzv0FxjGKIDtlhgeFJPMRaSrSxgYwsarSXLvoZUeWrJ0 mQJebLOBFs9E+DlfM2cA4ijXi8BYmAcUhjunJe3sOF4wpfXhWS8QOD++3xjRZgaUbdb7 NlTQ== X-Gm-Message-State: AOAM530XgM0s+m6PO3lw6Ueoa7h0K9QzoKUFWB3+aKpbE9UO4ERjBh8+ lmUfbxHdcSvN5sdLkiuWGuMCsQ== X-Google-Smtp-Source: ABdhPJw+uQD2NPrArQVbwZL3xgyXl6S9NlkZouuzcjINWAa5igSSxyf7Ys7PRaEPwemWK91B8QPNPQ== X-Received: by 2002:a17:902:a3c9:b029:d9:ec83:1e57 with SMTP id q9-20020a170902a3c9b02900d9ec831e57mr1211336plb.76.1606795845429; Mon, 30 Nov 2020 20:10:45 -0800 (PST) Received: from leoy-ThinkPad-X240s ([103.127.239.100]) by smtp.gmail.com with ESMTPSA id e1sm585443pfi.158.2020.11.30.20.10.42 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 30 Nov 2020 20:10:44 -0800 (PST) Date: Tue, 1 Dec 2020 12:10:40 +0800 From: Leo Yan To: Will Deacon Subject: Re: [PATCH] drivers/perf: Enable PID_IN_CONTEXTIDR with SPE Message-ID: <20201201041040.GC28939@leoy-ThinkPad-X240s> References: <20201130162454.28255-1-james.clark@arm.com> <20201130164650.GA25187@willie-the-truck> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20201130164650.GA25187@willie-the-truck> User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201130_231050_299636_40466630 X-CRM114-Status: GOOD ( 28.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Al Grant , Suzuki K Poulose , John Garry , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, James Clark , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Will, On Mon, Nov 30, 2020 at 04:46:51PM +0000, Will Deacon wrote: > On Mon, Nov 30, 2020 at 06:24:54PM +0200, James Clark wrote: > > Enable PID_IN_CONTEXTIDR by default when Arm SPE is enabled. > > This flag is required to get PID data in the SPE trace. Without > > it the perf tool will report 0 for PID which isn't very useful, > > especially when doing system wide profiling or profiling > > applications that fork. > > Can perf not figure out the pid some other way? (e.g. by tracing context > switches and correlating that with the SPE data?). For perf 'per-thread' mode, we can use context switch trace event as assisted info to select thread context. But for "system wide" mode and "snapshot" mode in perf tool, since the trace data is continuous, I think we cannot use context switch trace event to correlate the SPE trace data. > Also, how does this work with pid namespaces? Here we are studying the implemetation of Intel-PT and Arm CoreSight. The context ID is stored into the hardware trace data when record; afterwards when perf tool decodes the trace data and detects the packet for context ID, it will select the machine's thread context in perf [1]. Since the perf tool gathers all the threads infomation in perf data file, based on the context ID, it can find the corresponding thread pointer with function machine__find_thread() [2]. Since your question is for "pid namespace", to be honest, I don't know how perf tool to handle any confliction for differrent processes share the same PID, and I am not sure if you are asking CGroup related stuff or not. If this cannot answer your question, please let me know. Thanks, Leo [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c#n510 [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/util/cs-etm.c#n1076 > > > There is a small performance overhead when enabling > > PID_IN_CONTEXTIDR, but SPE itself is optional and not enabled by > > default so the impact is minimised. > > > > Cc: Will Deacon > > Cc: Mark Rutland > > Cc: Al Grant > > Cc: Leo Yan > > Cc: John Garry > > Cc: Suzuki K Poulose > > Signed-off-by: James Clark > > --- > > drivers/perf/Kconfig | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/perf/Kconfig b/drivers/perf/Kconfig > > index 130327ff0b0e..47ede46c3d57 100644 > > --- a/drivers/perf/Kconfig > > +++ b/drivers/perf/Kconfig > > @@ -125,6 +125,7 @@ config XGENE_PMU > > config ARM_SPE_PMU > > tristate "Enable support for the ARMv8.2 Statistical Profiling Extension" > > depends on ARM64 > > + select PID_IN_CONTEXTIDR > > Probably better to make PID_IN_CONTEXTIDR 'default y' if SPE is enabled, > rather than selecting it directly. That way, at least people can turn it > off if they don't want it. > > Will _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel