Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp4166058pxu; Mon, 30 Nov 2020 20:14:21 -0800 (PST) X-Google-Smtp-Source: ABdhPJxgHTm0EBPjZcGCP+xOgKU9PNUTAhpl9SOEyYcAvAFmh5kksId9akrNycDKqYuNSYTmQUp3 X-Received: by 2002:a17:906:608:: with SMTP id s8mr1162460ejb.371.1606796061353; Mon, 30 Nov 2020 20:14:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606796061; cv=none; d=google.com; s=arc-20160816; b=j3UwWDAE4wzQ30GqYcvq2A8Yi+KdJXcyf/Mj4fLbdOTXnya4b4yiZYOgQN28s2nolx 6dwxhKDGhbPUN++FJWl71VpjVwnjg7Y+AJQrWpGmdjuA0+A5ggdEiCD8l7yVnU3gA9im pRWzFpoY4HkiqEkvAYND/QOSn8hNYdhyn4uhUrKD3mmgdwwxwKwDAGQ16gSbc5NFtiCK qi7wDo+kBzqsbXguXBsfdqTnoce80qd/RTZThb6M6wSt97i4hp2+JX5oxVqykscTH66b w/31tGfsp7jV/0CPoSBgBlGu+nv1McsFgu8PwqA8O7fzcaRZbld/5sRm1Nw+IcDsDjIH VFJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=4gTVyUsOmP5LeMG5o202bTzO+J5xznjW1zTL9+SjzpM=; b=VyyOdVO6PajkxGZqaNYJ9I8AXA6otANUjQTI0W04HudPaZxtetS9DEq4oeBmzd0e/d e1IWPCiAxZGoutcYwBJWeZdtNiTHmvWCOryjQt479CsXiPXyWodv0xUSNsZY7aBSfInH TF8OsQ5I00V4fnyInOrGTUD73BmocI/FIDq6gGmQ+SHSHxKf8GR7quV4gi+Q+6M/3p7D lmTRCrOPyz0xE0UMXzjcaxlWQJ4ktVREKePc2/bjlQ4qVWrjNANx2GmDmmlPZhIsCPJq WqiiDuxCpEw9CY/tsFog8oGOg0zMSlkaddnI1kzDf2wj5MJbmCMIWIR+K77PdYpCtOH5 XSCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ccKTRsIL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n20si367292edw.72.2020.11.30.20.13.59; Mon, 30 Nov 2020 20:14:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ccKTRsIL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728137AbgLAELc (ORCPT + 99 others); Mon, 30 Nov 2020 23:11:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727892AbgLAELc (ORCPT ); Mon, 30 Nov 2020 23:11:32 -0500 Received: from mail-pl1-x643.google.com (mail-pl1-x643.google.com [IPv6:2607:f8b0:4864:20::643]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 35825C0613CF for ; Mon, 30 Nov 2020 20:10:46 -0800 (PST) Received: by mail-pl1-x643.google.com with SMTP id p6so379056plr.7 for ; Mon, 30 Nov 2020 20:10:46 -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=tA3GGAfZvO7Qs/hTkZcJV4mip0Yfn31pHnxE1syQQEZ1/gMNE5qFfygsloGzvRpyhu IHQGDb5Tlo7e1T9JqVsr75qwNKL765tdoiN73kQFaU+FFLLeYdxl0E0Yo7yJCaiZuXeJ CSLDpMtLtgfI3SLy7evq/P10zzg8iB0F8frkIlxZv8yIq3NvkN73gUomQ5SMsWhg+WLr 2Y0fqFYsGm+G92ROfSxxdrr++0xUQj2i2bFwRcq/ZPKHeKbvsq/rsFzxC88zDDqpbMjo fQfbyOMbPa65cd4llojoItCLAiUGP7QUL8TvsdLwLJDxbZEDaTSlYahTsvd0Hos97Yzr y+0A== X-Gm-Message-State: AOAM530opSCQo42vHQ9HhyRE32D10M+MpSErkctHZTjt2AeEcMuDK4gw Hd8Zc4DuP9P06MHMhiEglGG+mlkHKnslwfr9 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 Cc: James Clark , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Mark Rutland , Al Grant , John Garry , Suzuki K Poulose 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-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20201130164650.GA25187@willie-the-truck> User-Agent: Mutt/1.9.4 (2018-02-28) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.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