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=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT 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 00352C433E0 for ; Tue, 2 Feb 2021 16:43:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B6A3564F7F for ; Tue, 2 Feb 2021 16:43:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236592AbhBBQnc (ORCPT ); Tue, 2 Feb 2021 11:43:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236759AbhBBQkI (ORCPT ); Tue, 2 Feb 2021 11:40:08 -0500 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7398C0617AA for ; Tue, 2 Feb 2021 08:39:27 -0800 (PST) Received: by mail-pj1-x102a.google.com with SMTP id g15so2733014pjd.2 for ; Tue, 02 Feb 2021 08:39:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AW8CUVNikpRcfCmlQlkKe+p5l74C17GQZxwOIyIje8c=; b=sMKh1VDH4XQ4uNnZpqULVrGrFKyOK1UHUpKnfFvXTOF3DOv9YSlI9v6+EmTG0URk+l rgGFfFLLVSaG+OEpsBqycNJbn8F9JqbeqMjqGb0rmumIlH8fyKWbRJyDIDELigIpcO4w 5cREhHhVvKMluIKxx42crdk0aK9EZboWm0iPJf3UXxHwYXaE5xn56CweqY2pgCNXtl+X Vxx8cyYOBSMFpXmaV8El/CuAxnbm1URG1gZqjYplOQ9ZfJM2h7WZNc09u6Cx/l8NRGuj wyZ9KmWRn1CkaL1OHazf6SXbaf305m92NECrvoj8fiJtk9pC3vSAv2oD+XOUCbRCXvYV oRug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AW8CUVNikpRcfCmlQlkKe+p5l74C17GQZxwOIyIje8c=; b=sefm/l0z8WksNHd81I47Tab5LGT1dkCLrFOo97oT4gsz8nW6Nw8CC5bNAOn7mt6w8g t1D6gUwxkIJxJ5Pg3gLrtnKe0DEZVBXgK7JFnaEe6iiVdmAvZIw2zFsn66QgZvipQW5K I4jaqM/eHj/7XAemkZFLahQgytMExkEntOnF1sH6OeLm5IwdSpdDB4Xgs07e9fmsR9nL loKRwnZRwM9Am5vcvs2qWGzZEf4pKm81FJILn4Jgp7to9b5F4Qipmb21BpUDcbrKWj2a ZZsN227+ShEEqyerif5QU9g+u5TGI8is9LHv1TO9EkZDNuGEhk38XcDPXofDzdm/chgu Bigw== X-Gm-Message-State: AOAM530mBUeKsFvL91rgHORWPhvXkr0oF7h1GoE70f+aMlL8DoPaX6TE zQ1pn3bJ12vz3G9nv9akk2dDNQ== X-Google-Smtp-Source: ABdhPJxiAKNBNJDKgM6MXUFZjUxFiAN8UPHm4njx5CDHH1RDm+7QarExdpmAQyLvyYB9j3cl7Xcduw== X-Received: by 2002:a17:90b:1a8b:: with SMTP id ng11mr5468385pjb.160.1612283967292; Tue, 02 Feb 2021 08:39:27 -0800 (PST) Received: from localhost ([45.137.216.202]) by smtp.gmail.com with ESMTPSA id x3sm23344320pfp.98.2021.02.02.08.39.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Feb 2021 08:39:26 -0800 (PST) From: Leo Yan To: Arnaldo Carvalho de Melo , Mathieu Poirier , Suzuki K Poulose , Mike Leach , Jonathan Corbet , Alexander Shishkin , John Garry , Will Deacon , Peter Zijlstra , Ingo Molnar , Mark Rutland , Jiri Olsa , Namhyung Kim , Daniel Kiss , Denis Nikitin , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Al Grant , Leo Yan Subject: [PATCH v2 6/7] perf cs-etm: Detect pid in VMID for kernel running at EL2 Date: Wed, 3 Feb 2021 00:38:41 +0800 Message-Id: <20210202163842.134734-7-leo.yan@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210202163842.134734-1-leo.yan@linaro.org> References: <20210202163842.134734-1-leo.yan@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Suzuki K Poulose The PID of the task could be traced as VMID when the kernel is running at EL2. Teach the decoder to look for VMID when the CONTEXTIDR (Arm32) or CONTEXTIDR_EL1 (Arm64) is invalid but we have a valid VMID. Cc: Mike Leach Cc: Mathieu Poirier Cc: Al Grant Co-developed-by: Leo Yan Signed-off-by: Suzuki K Poulose Signed-off-by: Leo Yan --- .../perf/util/cs-etm-decoder/cs-etm-decoder.c | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c index 3f4bc4050477..fb2a163ff74e 100644 --- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c +++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c @@ -6,6 +6,7 @@ * Author: Mathieu Poirier */ +#include #include #include #include @@ -491,13 +492,36 @@ cs_etm_decoder__set_tid(struct cs_etm_queue *etmq, const ocsd_generic_trace_elem *elem, const uint8_t trace_chan_id) { - pid_t tid; + pid_t tid = -1; + u64 pid_fmt; + int ret; - /* Ignore PE_CONTEXT packets that don't have a valid contextID */ - if (!elem->context.ctxt_id_valid) + ret = cs_etm__get_pid_fmt(trace_chan_id, &pid_fmt); + if (ret) + return OCSD_RESP_FATAL_SYS_ERR; + + /* + * Process the PE_CONTEXT packets if we have a valid contextID or VMID. + * If the kernel is running at EL2, the PID is traced in CONTEXTIDR_EL2 + * as VMID, Bit ETM_OPT_CTXTID2 is set in this case. + */ + switch (pid_fmt) { + case BIT(ETM_OPT_CTXTID): + if (elem->context.ctxt_id_valid) + tid = elem->context.context_id; + break; + case BIT(ETM_OPT_CTXTID2) | BIT(ETM_OPT_CTXTID): + case BIT(ETM_OPT_CTXTID2): + if (elem->context.vmid_valid) + tid = elem->context.vmid; + break; + default: + break; + } + + if (tid == -1) return OCSD_RESP_CONT; - tid = elem->context.context_id; if (cs_etm__etmq_set_tid(etmq, tid, trace_chan_id)) return OCSD_RESP_FATAL_SYS_ERR; -- 2.25.1