Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp1025902pxb; Wed, 6 Apr 2022 07:02:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyaKsF37ByD/VJsYb6kBq6+UEwjk2Qjnq826oQvsHHc4KUMJQ+XQlh775S5/b8MYYxFZuc2 X-Received: by 2002:a17:903:288:b0:156:a6b5:80d4 with SMTP id j8-20020a170903028800b00156a6b580d4mr9111308plr.98.1649253736753; Wed, 06 Apr 2022 07:02:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649253736; cv=none; d=google.com; s=arc-20160816; b=USoac3wIplW8RV1Wpwy12Do3n6Yv3UGn5jUC9kAuHZQ40aFGPPPP6ar8m/nyOTygmK 6Q64lronozw2JqvdqFK5mqRHYmqBdt0vc3zo1OFYNmtTLzz2nMUpH1HsievWasxXYbva 4QoT57Rdd76hs4wwiyo8ZT98PwXJrde7ft4IeMAWeR63k8SosNvnd/H9wK/tsM8VqpP7 7dZz9HOujLqbr8bcKCYR9Twf7kXFxdAmIjdmjlAd5tS1KRBsfgF8N1JAn9T8NR4j4kAE wzr571ME3GjoP8qd3KJc2okXyE4NrAPh+u/eP8RLhkJuEl8R0iLtcVzk5wEKmQOPKxwa UAYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=FEA9+bk2+G1Yjtl/tlq8B9VfrivPZC13QO8HFVd9kf0=; b=LPpGbInlhLT9uMV3X2nQAW6ewd7NMVnYvSssiT9wpS5kh7IwiwjSwCeMkTg53Hm62x SFA2sd3LMq4ozmJFmJaHB8Jw96jf/gDv6XbnzHTHurDjJqLKd3Bh7EN6b4spEIvgQ5kq 61q+myTxvz0D7lIlIV80KVJFTV6SU0miiR5oBHDo5NLWT804tLypX/iY9581ouG6IG5u nobfcC2n0Om+p0TDaIaTrj0BBhx674uWWUViKZcoyQ+kGKduN/Z6YyeIsuD3Hq41U48c JOWu2HAiqLoHgh7b6ngarW7jSBYYiiUSNLSQKCmIh8dJrPabZA4DrRD2JxIDJON6Nc4O NPWw== 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:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id 19-20020a17090a1a1300b001c6ab94aa0esi4868272pjk.169.2022.04.06.07.02.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 07:02:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 9F99032034C; Wed, 6 Apr 2022 04:52:54 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345582AbiDFIZ6 (ORCPT + 99 others); Wed, 6 Apr 2022 04:25:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1381632AbiDFIZD (ORCPT ); Wed, 6 Apr 2022 04:25:03 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 53D4110FC6 for ; Tue, 5 Apr 2022 18:37:44 -0700 (PDT) Received: from kwepemi100010.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4KY6Xs3t3QzgYP3; Wed, 6 Apr 2022 09:35:57 +0800 (CST) Received: from kwepemm600003.china.huawei.com (7.193.23.202) by kwepemi100010.china.huawei.com (7.221.188.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Wed, 6 Apr 2022 09:37:41 +0800 Received: from [10.67.101.67] (10.67.101.67) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Wed, 6 Apr 2022 09:37:41 +0800 Subject: Re: [PATCH v3 1/2] drivers/perf: hisi: Associate PMUs in SICL with CPUs online To: John Garry , "will@kernel.org" , "mark.rutland@arm.com" CC: Zhangshaokun , Linuxarm , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" References: <20220321070124.41338-1-liuqi115@huawei.com> <20220321070124.41338-2-liuqi115@huawei.com> From: "liuqi (BA)" Message-ID: <3243b077-1cca-9986-f587-362a46589aba@huawei.com> Date: Wed, 6 Apr 2022 09:37:32 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.101.67] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 John, Thanks for the comments. some replies inline. On 2022/4/5 16:18, John Garry wrote: > On 21/03/2022 07:01, Qi Liu wrote: >> If a PMU is in SICL, we associate it with all CPUs online, rather > > /s/in SICL/in a SICL/ [and all other places, including the code change], > or maybe it is better mention "IO super cluster" as well for people who > would not know or remember. > got it, will change these description, thanks. >> than CPUs in the nearest SCCL. > > You are not really saying why. I would mention that we do it as it is > not appropiate to associate with a CPU die, and you can also mention > problems that associating with a SICL creates. > > Please also mention how changing FW definition is ok at this stage. ok, I'll metion this next time. > >> >> Signed-off-by: Qi Liu >> --- >>   drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 18 +++++++----------- >>   drivers/perf/hisilicon/hisi_uncore_pmu.c    |  4 ++++ >>   drivers/perf/hisilicon/hisi_uncore_pmu.h    |  1 + >>   3 files changed, 12 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c >> b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c >> index bad99d149172..54c604c0d404 100644 >> --- a/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c >> +++ b/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c >> @@ -258,13 +258,12 @@ static int hisi_pa_pmu_init_data(struct >> platform_device *pdev, >>                      struct hisi_pmu *pa_pmu) >>   { >>       /* >> -     * Use the SCCL_ID and the index ID to identify the PA PMU, >> -     * while SCCL_ID is the nearst SCCL_ID from this SICL and >> -     * CPU core is chosen from this SCCL to manage this PMU. >> +     * As PA PMU is in SICL, use the SICL_ID and the index ID > > "a SICL" got it. > >> +     * to identify the PA PMU. >>        */ >>       if (device_property_read_u32(&pdev->dev, "hisilicon,scl-id", >> -                     &pa_pmu->sccl_id)) { >> -        dev_err(&pdev->dev, "Cannot read sccl-id!\n"); >> +                     &pa_pmu->sicl_id)) { >> +        dev_err(&pdev->dev, "Cannot read sicl-id!\n"); >>           return -EINVAL; >>       } >> @@ -275,6 +274,7 @@ static int hisi_pa_pmu_init_data(struct >> platform_device *pdev, >>       } >>       pa_pmu->ccl_id = -1; >> +    pa_pmu->sccl_id = -1; >>       pa_pmu->base = devm_platform_ioremap_resource(pdev, 0); >>       if (IS_ERR(pa_pmu->base)) { >> @@ -399,13 +399,9 @@ static int hisi_pa_pmu_probe(struct >> platform_device *pdev) >>       ret = hisi_pa_pmu_dev_probe(pdev, pa_pmu); >>       if (ret) >>           return ret; >> -    /* >> -     * PA is attached in SICL and the CPU core is chosen to manage this >> -     * PMU which is the nearest SCCL, while its SCCL_ID is greater than >> -     * one with the SICL_ID. >> -     */ >> + >>       name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "hisi_sicl%u_pa%u", >> -                  pa_pmu->sccl_id - 1, pa_pmu->index_id); >> +                  pa_pmu->sicl_id, pa_pmu->index_id); >>       if (!name) >>           return -ENOMEM; >> diff --git a/drivers/perf/hisilicon/hisi_uncore_pmu.c >> b/drivers/perf/hisilicon/hisi_uncore_pmu.c >> index a738aeab5c04..31930166c34b 100644 >> --- a/drivers/perf/hisilicon/hisi_uncore_pmu.c >> +++ b/drivers/perf/hisilicon/hisi_uncore_pmu.c >> @@ -458,6 +458,10 @@ static bool hisi_pmu_cpu_is_associated_pmu(struct >> hisi_pmu *hisi_pmu) >>   { >>       int sccl_id, ccl_id; >> +    /* If SCCL_ID is -1, the PMU is in SICL and can be associated >> this PMU with any CPU */ > > too long, just have "The PMU is in a SICL and has no CPU affinity" ok, will fix this. Thanks, Qi > >> +    if (hisi_pmu->sccl_id == -1) >> +        return true; >> + >>       if (hisi_pmu->ccl_id == -1) { >>           /* If CCL_ID is -1, the PMU only shares the same SCCL */ >>           hisi_read_sccl_and_ccl_id(&sccl_id, NULL); >> diff --git a/drivers/perf/hisilicon/hisi_uncore_pmu.h >> b/drivers/perf/hisilicon/hisi_uncore_pmu.h >> index 7f5841d6f592..96eeddad55ff 100644 >> --- a/drivers/perf/hisilicon/hisi_uncore_pmu.h >> +++ b/drivers/perf/hisilicon/hisi_uncore_pmu.h >> @@ -81,6 +81,7 @@ struct hisi_pmu { >>       struct device *dev; >>       struct hlist_node node; >>       int sccl_id; >> +    int sicl_id; >>       int ccl_id; >>       void __iomem *base; >>       /* the ID of the PMU modules */ > > .