Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp2263286pxp; Mon, 21 Mar 2022 15:17:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwJWWRA+mszpZlpAry5Hb/HZSKX2lN2NVKIg35iUTugglCcy3N55ImAdGbhoSxmBwg7ME9u X-Received: by 2002:a17:90b:17ca:b0:1c7:3010:5901 with SMTP id me10-20020a17090b17ca00b001c730105901mr1419931pjb.22.1647901029285; Mon, 21 Mar 2022 15:17:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647901029; cv=none; d=google.com; s=arc-20160816; b=dOrPWI3Ubmj2CXCDGL8QUE4NrIY6kpt2rkQLMcrz6uk1MzZuid1v3VDs5Enw8+mlt8 Qgm6iIQC/EpeqP2buJrkJz42OEwDIwzgEh+NOzQY0OIeatE6ckfCt8vW47QrgUAV3Dkl OIUEts869Cxg0yHO614MNwz4Hg+jAufPgYmvj871gGJnNuqvUZORWdTPTKnTRj9KLYUg g1jTIb2X1aOCoy1bUfQPbUuLUcYmNv88ZBJA4lE6rIn73KIBJI2WLZpQManPJywnrv+G bGzI2pBMGGX6GFPbkPPCeW4pwgg96W/4bAVmtaLWiQlHOU1zP3RNz3W5Lz2NLE2w4bhG edrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=koiJZCtpgFsS6F3VWfmTmvu4oef9pQz5aYfof/vSJp8=; b=d7YaUDsEwntEwGKKLau5YBT5xu/MKeyTn+NA1RrbBomuf3cs5wVxeBI7I+ssIdEdg/ YLijvUS0fWKBePOxrijxP85u6lsyr0DdNlYJWTuxcXYTCsMzC9WCmjrRfj9MU0qV9kb3 A79pD8dCX8XGLNYzqJnl+vfk95d31hW0yFZQHVvtALqAAqX2ZRKxtg/yj5k49fgJkBHI 3y7mYgmzBF09WzGi+T77OuDnTyahbvxzop/wq0dsetS2u9gaCbGPm94RGSNH1uQzBvex PzR2LiwqR2u2s5qyh1Zjfy76h/gpSmRBR13h5/ADqziT7r7+X9bSsI09aK4Nj8MNe7ZD BY6w== 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 f9-20020a635549000000b003816043efb8si14388765pgm.429.2022.03.21.15.17.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Mar 2022 15:17:09 -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 46BDD37808D; Mon, 21 Mar 2022 14:34:44 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344685AbiCUHEM (ORCPT + 99 others); Mon, 21 Mar 2022 03:04:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245498AbiCUHEL (ORCPT ); Mon, 21 Mar 2022 03:04:11 -0400 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 667554757C for ; Mon, 21 Mar 2022 00:02:46 -0700 (PDT) Received: from kwepemi100023.china.huawei.com (unknown [172.30.72.53]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4KMQYB6YFcz1GBvf; Mon, 21 Mar 2022 15:02:38 +0800 (CST) Received: from kwepemm600003.china.huawei.com (7.193.23.202) by kwepemi100023.china.huawei.com (7.221.188.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Mon, 21 Mar 2022 15:02:44 +0800 Received: from localhost.localdomain (10.67.164.66) 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; Mon, 21 Mar 2022 15:02:43 +0800 From: Qi Liu To: , CC: , , , Subject: [PATCH v3 1/2] drivers/perf: hisi: Associate PMUs in SICL with CPUs online Date: Mon, 21 Mar 2022 15:01:23 +0800 Message-ID: <20220321070124.41338-2-liuqi115@huawei.com> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20220321070124.41338-1-liuqi115@huawei.com> References: <20220321070124.41338-1-liuqi115@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.67.164.66] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE 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 If a PMU is in SICL, we associate it with all CPUs online, rather than CPUs in the nearest SCCL. 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 + * 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 */ + 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 */ -- 2.24.0