Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp3406912rwb; Fri, 30 Sep 2022 03:11:27 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5VDyikSjDNt1FK/YaAta/LN5OW3dsQYlQfZ4m7Ivmp9bJ1dCQG8vks2vap8soTly9VFf0w X-Received: by 2002:a17:907:3e99:b0:782:2980:e1c9 with SMTP id hs25-20020a1709073e9900b007822980e1c9mr5854886ejc.91.1664532687580; Fri, 30 Sep 2022 03:11:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664532687; cv=none; d=google.com; s=arc-20160816; b=MABMs/+wSM9rp1KV/kTJP3ZWYC9jRrXInJx3PJDtSZqZdhRAmsCkaIjkGeIMe6j9Fa s4lmqCPf9TYKrY8I0kMgemGLZ2vN1C0KyaHvKnemqROqzjoVvyOxpZeHgqfhNaGjwKvW NZ/3zTsIDRN8fEqMBU6KJUGQEZPoRaATiTvgMRHwVLcQ1Nqh449cRTubJ1u4AQnHZVIo 6CPp3635OHT0p9U7XQ8BTgjE8bkV/xztqwnXJduyNpJNQpS1LQjbT9Q9JCMZUZ4zfyGn fl/X8heODsbhNWEauBxsQEtK+3hE58m6qOAm5MfYI6NYfI8kvUiTdRQFgvkxT4RdKBKw 5E0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:robot-unsubscribe :robot-id:message-id:mime-version:references:in-reply-to:cc:subject :to:reply-to:sender:from:dkim-signature:dkim-signature:date; bh=FlDFT3vqXSF0orFxZ3HHATNF9zZpR75GHFKi1/qAKm4=; b=gcg4YMuOjqnD0/pNc/+3IJAPvITd0/scsm8R4qdzwGXoBis4gl3GvOlo5p5FNsDxZY 3IKzrix9EDLvlvwJrZczlJnn109AYHU+QloDU0y3GxvBsaIedV1hJ/ZnZR29z22fsniN dmzRABqnwbDGWyYjnaYx3iCzZaWjKqoREmuVUfeYsPCbRYY9qWatklruEQHCV5TAhMfK v59UWiTJrTYtz6QEF0WDlcny+EGOeVP88s6rK/xovasGcAkXQUwaDSOTmuXSYSCpyw95 4U21KOOgFkfYggtR9Rg552hvQWqiqoiV56xCdjx1IhTsA7ue501Q3QzE+Pdt42JqDTMr HcAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=sJZ6i9LF; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id qw25-20020a1709066a1900b007827639faffsi1174903ejc.760.2022.09.30.03.11.01; Fri, 30 Sep 2022 03:11:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=sJZ6i9LF; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231434AbiI3Jbt (ORCPT + 99 others); Fri, 30 Sep 2022 05:31:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231437AbiI3JbX (ORCPT ); Fri, 30 Sep 2022 05:31:23 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D4C5CE6E2; Fri, 30 Sep 2022 02:31:10 -0700 (PDT) Date: Fri, 30 Sep 2022 09:31:06 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1664530268; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FlDFT3vqXSF0orFxZ3HHATNF9zZpR75GHFKi1/qAKm4=; b=sJZ6i9LFqkNZtpECpjRjmrFuYF81RBBxvf/BLswFwcUo+hF3+tWD2smKlEXBOBClve+3+B byS27rPitaM74P4UR1nrD0X6ZLRaVeSj6qbRIVTChCzjNMBcbt9cQMD2xhqHCMR1cpSysw jyEtVfFOCAAV+AYpXYi68aXsOZp5/v30kemkzpT6rBzHbZk6Ri2Z1PcS39r+E16vMhU1Rr n7HZMeFRsbFG2/lnVsmsNwJbHDUln2Z5i2oGdeipliksY+Y/1DTY/Bx05CSFIbNTZn0kbE mOmaEbpU6b1h+YkrnkoASg3LhoaKko/xKKomFdHC7lEqgccq8XIRHa34zcrtKw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1664530268; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FlDFT3vqXSF0orFxZ3HHATNF9zZpR75GHFKi1/qAKm4=; b=XqIBwNEV7tT9N6b0jewn+IRYpwqj5dBzX2RyI01FngRUr5YXqgGElxCke+tF7HzuOGu7Zp 635gTVyEjOyyfRBA== From: "tip-bot2 for Ravi Bangoria" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: perf/core] perf/x86/amd: Support PERF_SAMPLE_{WEIGHT|WEIGHT_STRUCT} Cc: Ravi Bangoria , "Peter Zijlstra (Intel)" , x86@kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20220928095805.596-5-ravi.bangoria@amd.com> References: <20220928095805.596-5-ravi.bangoria@amd.com> MIME-Version: 1.0 Message-ID: <166453026675.401.13716342823853063236.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following commit has been merged into the perf/core branch of tip: Commit-ID: 6b2ae4952ef8ac23b467bc10776404092b581143 Gitweb: https://git.kernel.org/tip/6b2ae4952ef8ac23b467bc10776404092b581143 Author: Ravi Bangoria AuthorDate: Wed, 28 Sep 2022 15:27:54 +05:30 Committer: Peter Zijlstra CommitterDate: Thu, 29 Sep 2022 12:20:55 +02:00 perf/x86/amd: Support PERF_SAMPLE_{WEIGHT|WEIGHT_STRUCT} IbsDcMissLat indicates the number of clock cycles from when a miss is detected in the data cache to when the data was delivered to the core. Similarly, IbsTagToRetCtr provides number of cycles from when the op was tagged to when the op was retired. Consider these fields for sample->weight. Signed-off-by: Ravi Bangoria Signed-off-by: Peter Zijlstra (Intel) Link: https://lkml.kernel.org/r/20220928095805.596-5-ravi.bangoria@amd.com --- arch/x86/events/amd/ibs.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/arch/x86/events/amd/ibs.c b/arch/x86/events/amd/ibs.c index e20caa5..d883694 100644 --- a/arch/x86/events/amd/ibs.c +++ b/arch/x86/events/amd/ibs.c @@ -955,6 +955,7 @@ static void perf_ibs_parse_ld_st_data(__u64 sample_type, { union ibs_op_data3 op_data3; union ibs_op_data2 op_data2; + union ibs_op_data op_data; data->data_src.val = PERF_MEM_NA; op_data3.val = ibs_data->regs[ibs_op_msr_idx(MSR_AMD64_IBSOPDATA3)]; @@ -970,6 +971,19 @@ static void perf_ibs_parse_ld_st_data(__u64 sample_type, perf_ibs_get_data_src(ibs_data, data, &op_data2, &op_data3); data->sample_flags |= PERF_SAMPLE_DATA_SRC; } + + if (sample_type & PERF_SAMPLE_WEIGHT_TYPE && op_data3.dc_miss && + data->data_src.mem_op == PERF_MEM_OP_LOAD) { + op_data.val = ibs_data->regs[ibs_op_msr_idx(MSR_AMD64_IBSOPDATA)]; + + if (sample_type & PERF_SAMPLE_WEIGHT_STRUCT) { + data->weight.var1_dw = op_data3.dc_miss_lat; + data->weight.var2_w = op_data.tag_to_ret_ctr; + } else if (sample_type & PERF_SAMPLE_WEIGHT) { + data->weight.full = op_data3.dc_miss_lat; + } + data->sample_flags |= PERF_SAMPLE_WEIGHT_TYPE; + } } static int perf_ibs_get_offset_max(struct perf_ibs *perf_ibs, u64 sample_type, @@ -977,7 +991,8 @@ static int perf_ibs_get_offset_max(struct perf_ibs *perf_ibs, u64 sample_type, { if (sample_type & PERF_SAMPLE_RAW || (perf_ibs == &perf_ibs_op && - sample_type & PERF_SAMPLE_DATA_SRC)) + (sample_type & PERF_SAMPLE_DATA_SRC || + sample_type & PERF_SAMPLE_WEIGHT_TYPE))) return perf_ibs->offset_max; else if (check_rip) return 3;