Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1363781rwl; Fri, 7 Apr 2023 14:52:18 -0700 (PDT) X-Google-Smtp-Source: AKy350aP1dcVAcJrq8tqcQqL/XATZ2wVg3Vq4OkH3fKQPyNZlWyiLDALhAyAfd/KUJL+zsMDq4Gg X-Received: by 2002:a17:906:914c:b0:948:d1af:3afb with SMTP id y12-20020a170906914c00b00948d1af3afbmr587747ejw.13.1680904338151; Fri, 07 Apr 2023 14:52:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680904338; cv=none; d=google.com; s=arc-20160816; b=KMDpruioHzHxlL1Qx1AMve9R/X+fRp8CMavYVetDBJQGJ4gGQDXRcjSgy0z5BoU7jF 0AmPZf8lXvSU3l3mUZjpExSdGw4whtRzn/F3//qHemhIhxCAxA0WxBc1G5nHN+/Hud3F HQuSwc6Lx69wGz/4Un15pW0Xhf2ElZZKal7Rq1L+ai37rB7l6iI4wqK8uB/lxuvit/zc wfQgy0U4k93NUUbiZiG+l/xQxYDSFsLcoyDjZzZ6qXxH7Cc2bNz96a/iAfrBjVciMuBR jBKDJR9Hcv/L47rogx/l9PdLulzb94XDRfmJdh+v4zd4xQWlavjP+L5/Gbv6VCLJZ/G3 7H3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version; bh=8QtcNTqnQnkNgUKruk0ebzZ2bCooYxq0K4iA6miGmX4=; b=i+E63+48iXM4cpkgEjXXsIsPcgCeLxjNI1jIntS58+BD9yG+Twir+8ifcc/FrNQhTY 6ygKxXxfry//NeNFuEntOsyzRHCx0eU44s28XIEdzH0CYQU+I6oHglRrlewH2FhW3ZDM HBDihGOfQQSWMwremCE4FLsp/TLWr3IlCft9WUYUk2fsvlFxXgwuBL/e/U5dQOUR2Zoj l1OpEktMlHadXLwm15aMhQgUHc0lRKOmrG6GAFfoJ6BOZYCPHejyJkyxinqa6F3BazAJ rhN4dbG7X+V1FiQA3MVRFKWJbk3BkouYUJOtNGXSKA0rYNuAP2EUmYyIxW6ef5Vm1KPW aCXQ== ARC-Authentication-Results: i=1; mx.google.com; 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=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w2-20020a50fa82000000b00504631ed05csi3644659edr.197.2023.04.07.14.51.53; Fri, 07 Apr 2023 14:52:18 -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; 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=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229625AbjDGVoV convert rfc822-to-8bit (ORCPT + 99 others); Fri, 7 Apr 2023 17:44:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229437AbjDGVoT (ORCPT ); Fri, 7 Apr 2023 17:44:19 -0400 Received: from mail-ua1-f43.google.com (mail-ua1-f43.google.com [209.85.222.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7BC9C178; Fri, 7 Apr 2023 14:44:18 -0700 (PDT) Received: by mail-ua1-f43.google.com with SMTP id n1so3978952uae.9; Fri, 07 Apr 2023 14:44:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680903858; x=1683495858; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0tna+7RzZSgs0Z3cLwUQqheHwwOhokZ95SIqeSjzzWo=; b=brA/pQjfEMJt7OlSOhkOCMHX5//WKVTg+N5XYAiKx2lI7dL44bYkvThKoTJqRLstNn nNdaomF0vYzEc+Qwizur4BA03CrMXFU9MhpVLn8Ujxuu1+rjv6glFRfJfds5+jcKWMdP fsfjmXL1sr7I92xnVH+vedlhqdRW5LZnSSn1bPHl+WAG3AK/SeyHLn+YIf1cjI0mQLSD h8YHKo4PG7lYElJYf0GZ8NlkUqTE+8PwOnSF1UXBREbcse8XAwZ+jWfSu/6BfAHOBPk1 jQiuoOSimtBgA/14UmGz80zSGRaGFgOaE9dui+4MvlZzPmIsS0AobNXKocuGycu3Qdfj bNVA== X-Gm-Message-State: AAQBX9ecpuRm6kBLSTSN86PJWGEmXIIoLKaP282+Dagw390TPTMfBRdk jEzHnA5w1WL28RkStCGTV8huoHfVLxkXqqhK+1PNPVll X-Received: by 2002:a05:6122:925:b0:43c:2cb2:89ae with SMTP id j37-20020a056122092500b0043c2cb289aemr1428089vka.10.1680903857921; Fri, 07 Apr 2023 14:44:17 -0700 (PDT) MIME-Version: 1.0 References: <20230407112459.548-1-ravi.bangoria@amd.com> In-Reply-To: <20230407112459.548-1-ravi.bangoria@amd.com> From: Namhyung Kim Date: Fri, 7 Apr 2023 14:44:06 -0700 Message-ID: Subject: Re: [PATCH v3 0/9] perf/mem: AMD IBS and generic tools improvements To: Ravi Bangoria Cc: peterz@infradead.org, acme@kernel.org, mingo@kernel.org, eranian@google.com, kan.liang@linux.intel.com, jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, leo.yan@linaro.org, kjain@linux.ibm.com, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, sandipan.das@amd.com, ananth.narayan@amd.com, santosh.shukla@amd.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT X-Spam-Status: No, score=0.5 required=5.0 tests=FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no 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 Hi Ravi, On Fri, Apr 7, 2023 at 4:25 AM Ravi Bangoria wrote: > > Kernel IBS driver wasn't using new PERF_MEM_* APIs due to some of its > limitations. Mainly: > > 1. mem_lvl_num doesn't allow setting multiple sources whereas old API > allows it. Setting multiple data sources is useful because IBS on > pre-zen4 uarch doesn't provide fine granular DataSrc details (there > is only one such DataSrc(2h) though). > 2. perf mem sorting logic (sort__lvl_cmp()) ignores mem_lvl_num. perf > c2c (c2c_decode_stats()) does not use mem_lvl_num at all. perf mem > prints mem_lvl and mem_lvl_num both if both are set, which is ugly. > > Set mem_lvl_num, mem_remote and mem_hops for data_src via IBS. Handle > first issue using mem_lvl_num = ANY_CACHE | HOPS_0. In addition to > setting new API fields, convert all individual field assignments to > compile time wrapper macros built using PERF_MEM_S(). Also convert > DataSrc conditional code to array lookups. > > Interpretation of perf_mem_data_src by perf_mem__lvl_scnprintf() was > non-intuitive. Make it sane. Looks good, but I think you need to split kernel and user patches. > > v2: https://lore.kernel.org/r/20230327130851.1565-1-ravi.bangoria%40amd.com > v2->v3: > - IBS: Don't club RmtNode with DataSrc=7 (IO) > - Make perf_mem__lvl_scnprintf() more sane > - Introduce PERF_MEM_LVLNUM_UNC, set it along with PERF_MEM_LVL_UNC > and interpreat it in tool. > - Add PERF_MEM_LVLNUM_NA to default data_src value > - Change some of the IBS bit description according to latest PPR > > Namhyung Kim (1): > perf/x86/ibs: Set mem_lvl_num, mem_remote and mem_hops for data_src > > Ravi Bangoria (8): > perf/mem: Introduce PERF_MEM_LVLNUM_UNC > perf/mem: Add PERF_MEM_LVLNUM_NA to PERF_MEM_NA > perf headers: Sync uapi/linux/perf_event.h > perf mem: Add PERF_MEM_LVLNUM_NA to PERF_MEM_DATA_SRC_NONE > perf mem: Add support for printing PERF_MEM_LVLNUM_UNC > perf mem: Refactor perf_mem__lvl_scnprintf() > perf mem: Increase HISTC_MEM_LVL column size to 39 chars > perf script ibs: Change bit description according to latest PPR Acked-by: Namhyung Kim Thanks, Namhyung > > arch/x86/events/amd/ibs.c | 156 +++++++++++--------------- > include/linux/perf_event.h | 3 +- > include/uapi/linux/perf_event.h | 3 +- > tools/include/uapi/linux/perf_event.h | 3 +- > tools/perf/util/amd-sample-raw.c | 14 +-- > tools/perf/util/event.h | 3 +- > tools/perf/util/hist.c | 2 +- > tools/perf/util/mem-events.c | 90 ++++++++------- > 8 files changed, 132 insertions(+), 142 deletions(-) > > -- > 2.34.1 >