From nobody Fri Dec 19 20:16:12 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5C5A5C71153 for ; Mon, 28 Aug 2023 12:29:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230255AbjH1M2n (ORCPT ); Mon, 28 Aug 2023 08:28:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231997AbjH1M2R (ORCPT ); Mon, 28 Aug 2023 08:28:17 -0400 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2050.outbound.protection.outlook.com [40.107.237.50]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 771FD11A for ; Mon, 28 Aug 2023 05:28:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BUoq1/jdYQ1MXPlVxpq8mDUE322LYWGgRcRjuEpo7ueTIFIOQkWreOwvEuDV33L0co/OK/D03dX+Ozd4MglsjInV4QueIvWSTLe5YThBb4HNVFFyxXZ3WO9OWQRb2HHVvAJ6fBWokiBkC4qAXvNHY0pTA7EVZK9k/X+6/1R3Sz2uAE/+b9lqZE60kZjf3kpUoTzl8Fa16s0WGVCCUlzpMDfWcZNpWfb4iWZzm7ZE4oIsuP3oK2Ec4IFX8MpkWR13HqrXhC75XwzbLa5mdsreR4r0xyGmE2ZAsYp/rE7uXhz0EE1vePeQtq4lEECMtkni13NjR2mZAhqd6oPfIXgTDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wl5e9WF0WM/ITv15mSoGjC9UNEgvWVN0vwHlrGio98I=; b=aIAZdxOF95zECbITy4gosb3poy6D+GO/+o5zoFN8s/3oNSHhuceAkQ5LqNu/uru5o0aRa4xKEqPcG0eTWl4fwOqGA0JxFdH6cThI72feb673h6FDAmY+RU0/LUuq3gIDut5iKZBBslU9iDm/wMYwGcA6tqTMxZZx48zd4/9zIVv5fyDqVYMk+KPPteMQsOoTRZNue5SkTyDOsQxjxhu8JIDIgSXDczOavEvsZ/vmWRQsXK0Orex636ixTLMLrmTMGoGNgxH1wDiRJABQd3ET/28XqWtnvgANteTj10FMbH3HhNvYR2YhXOk2e0F0ugIooPE1DivAEeP6gznJ2gxqOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wl5e9WF0WM/ITv15mSoGjC9UNEgvWVN0vwHlrGio98I=; b=aDKEImvs7j8cbJr/fwDml2sfL8xfbaKba2ugc5gvAnseEfWh2RjO6EaycrWK+jhWjWKZ9LAFG1iDQ57NDNnHl/f9w0cY2T6OzT7hc7E+FsSLfeI8B3N+IFR6YmZu9oMdDAuN8lvRbx+g4VZhg+7mM5SP/2KOdrwG+I2gyP29rBo= Received: from CY5PR22CA0038.namprd22.prod.outlook.com (2603:10b6:930:1d::6) by MN0PR12MB5715.namprd12.prod.outlook.com (2603:10b6:208:372::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Mon, 28 Aug 2023 12:28:09 +0000 Received: from CY4PEPF0000E9D8.namprd05.prod.outlook.com (2603:10b6:930:1d:cafe::13) by CY5PR22CA0038.outlook.office365.com (2603:10b6:930:1d::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34 via Frontend Transport; Mon, 28 Aug 2023 12:28:09 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9D8.mail.protection.outlook.com (10.167.241.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6745.17 via Frontend Transport; Mon, 28 Aug 2023 12:28:09 +0000 Received: from rtg-Artic.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 28 Aug 2023 07:26:58 -0500 From: Arvind Yadav To: , , , , , , , CC: , , "Arvind Yadav" , Christian Koenig Subject: [PATCH v3 1/7] drm/amdgpu: Added init/fini functions for workload Date: Mon, 28 Aug 2023 17:56:08 +0530 Message-ID: <20230828122614.3815122-2-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230828122614.3815122-1-Arvind.Yadav@amd.com> References: <20230828122614.3815122-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D8:EE_|MN0PR12MB5715:EE_ X-MS-Office365-Filtering-Correlation-Id: 8361316d-a7cd-46cb-4426-08dba7c23cff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eDdLhAPmaHmILqZyKQcv3QqYBOOB68Emjja/16/OYmRPlQJ8k5opYlemJnjNHd75Vr6wEHWH3IY2NLdsJcSHhAMtkkzYbCjo8YO8J2fnXgrKjLxhYw0I5887lMuL4dX1OSdQna9uueMVXYwsMSwYfiol1/Ws2dQZfP0pbqEzixx0eALmPzJI17UTJeGH0dncE2va5dGwb/i3MfU2xAkIDot79zMnUBxg1VSTV6gKZE9r6L5b9X69orxFxHjyvXR169fqKZ1t0PmRgSEKjSawqg45oUtx5YNA3TjPwDVNLZ5k6AY+AQzIuML10jsIWjkyc3oEvblcBajCs2eqnTZtYAFRp/GohRxQ8Mq4338xiIrdr9abtXneHsmlbKIxxkQ1I9KKCvDwaAQC1iV12AaIAYHSJb9L03rda53lNGikTOeVFbFtlskltwE+knOTn0nfTtZ6hHhHmUGbPBAzcJiFU6c5omMQIr2v/DPNYWyXoJDeAxpIB5Bg346abhpFRgDEoDuryMzO0iH9Ivj46kS+MU2H6bxjptxBNZzz3r0NdPBWOfHtY81YHZc/zuoIe1f8d/XkngjdxT74ohTAY+ZSPD0DNG7vSAdOyVeLH2Purb7N0KAOTauEzoG+BVmj1HjQ+mD0GQpNUrj9BqxYA+moQQz0FJdtlCEvg0AgZf2/qP4xbSlEj2eRB279EmDkuvc6QoIzxwYxIcObPlYffGS6YLYALgwZtPaNoiEhgVjH3Url7nhvi3QIa5uXN5RLSnmsUqGDPKgP/JjJt97OkY5F9g== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(346002)(39860400002)(376002)(136003)(451199024)(1800799009)(82310400011)(186009)(36840700001)(40470700004)(46966006)(83380400001)(478600001)(81166007)(356005)(82740400003)(16526019)(336012)(426003)(36860700001)(47076005)(26005)(1076003)(2616005)(40480700001)(66899024)(7696005)(6666004)(86362001)(2906002)(316002)(5660300002)(8936002)(70206006)(4326008)(70586007)(110136005)(54906003)(41300700001)(36756003)(8676002)(40460700003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2023 12:28:09.0975 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8361316d-a7cd-46cb-4426-08dba7c23cff X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D8.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5715 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The'struct amdgpu_smu_workload' initialization/cleanup functions is added by this patch. v2: - Splitting big patch into separate patches. - Added new fini function. v3: - Addressed review comment to change 'power_profile_work' instead of 'smu_delayed_work'. Cc: Christian Koenig Cc: Alex Deucher Reviewed-by: Shashank Sharma Signed-off-by: Arvind Yadav --- drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c | 44 +++++++++++++++ drivers/gpu/drm/amd/include/amdgpu_workload.h | 53 +++++++++++++++++++ 5 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c create mode 100644 drivers/gpu/drm/amd/include/amdgpu_workload.h diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdg= pu/Makefile index 415a7fa395c4..6a9e187d61e1 100644 --- a/drivers/gpu/drm/amd/amdgpu/Makefile +++ b/drivers/gpu/drm/amd/amdgpu/Makefile @@ -60,7 +60,7 @@ amdgpu-y +=3D amdgpu_device.o amdgpu_kms.o \ amdgpu_umc.o smu_v11_0_i2c.o amdgpu_fru_eeprom.o amdgpu_rap.o \ amdgpu_fw_attestation.o amdgpu_securedisplay.o \ amdgpu_eeprom.o amdgpu_mca.o amdgpu_psp_ta.o amdgpu_lsdma.o \ - amdgpu_ring_mux.o + amdgpu_ring_mux.o amdgpu_workload.o =20 amdgpu-$(CONFIG_PROC_FS) +=3D amdgpu_fdinfo.o =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdg= pu/amdgpu.h index 02b827785e39..1939fa1af8a6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -107,6 +107,7 @@ #include "amdgpu_fdinfo.h" #include "amdgpu_mca.h" #include "amdgpu_ras.h" +#include "amdgpu_workload.h" =20 #define MAX_GPU_INSTANCE 16 =20 @@ -1050,6 +1051,8 @@ struct amdgpu_device { =20 bool job_hang; bool dc_enabled; + + struct amdgpu_smu_workload smu_workload; }; =20 static inline struct amdgpu_device *drm_to_adev(struct drm_device *ddev) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_device.c index 5c7d40873ee2..cd3bf641b630 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -2243,6 +2243,8 @@ static int amdgpu_device_ip_early_init(struct amdgpu_= device *adev) adev->cg_flags &=3D amdgpu_cg_mask; adev->pg_flags &=3D amdgpu_pg_mask; =20 + amdgpu_workload_profile_init(adev); + return 0; } =20 @@ -2890,6 +2892,8 @@ static int amdgpu_device_ip_fini(struct amdgpu_device= *adev) { int i, r; =20 + amdgpu_workload_profile_fini(adev); + if (amdgpu_sriov_vf(adev) && adev->virt.ras_init_done) amdgpu_virt_release_ras_err_handler_data(adev); =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c b/drivers/gpu/drm= /amd/amdgpu/amdgpu_workload.c new file mode 100644 index 000000000000..32166f482f77 --- /dev/null +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright 2023 Advanced Micro Devices, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software= "), + * to deal in the Software without restriction, including without limitati= on + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#include "amdgpu.h" + +void amdgpu_workload_profile_init(struct amdgpu_device *adev) +{ + adev->smu_workload.adev =3D adev; + adev->smu_workload.submit_workload_status =3D 0; + adev->smu_workload.initialized =3D true; + + mutex_init(&adev->smu_workload.workload_lock); +} + +void amdgpu_workload_profile_fini(struct amdgpu_device *adev) +{ + if (!adev->smu_workload.initialized) + return; + + adev->smu_workload.submit_workload_status =3D 0; + adev->smu_workload.initialized =3D false; + mutex_destroy(&adev->smu_workload.workload_lock); +} diff --git a/drivers/gpu/drm/amd/include/amdgpu_workload.h b/drivers/gpu/dr= m/amd/include/amdgpu_workload.h new file mode 100644 index 000000000000..dc12448764a3 --- /dev/null +++ b/drivers/gpu/drm/amd/include/amdgpu_workload.h @@ -0,0 +1,53 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright 2023 Advanced Micro Devices, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software= "), + * to deal in the Software without restriction, including without limitati= on + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef _AMDGPU_WORKLOAD_H_ +#define _AMDGPU_WORKLOAD_H_ + +struct amdgpu_smu_workload { + struct amdgpu_device *adev; + struct mutex workload_lock; + struct delayed_work power_profile_work; + unsigned long submit_workload_status; + bool initialized; + atomic_t power_profile_ref[PP_SMC_POWER_PROFILE_COUNT]; +}; + +/* Workload mode names */ +static const char * const amdgpu_workload_mode_name[] =3D { + "Default", + "3D", + "Powersaving", + "Video", + "VR", + "Compute", + "Custom", + "Window3D" +}; + +void amdgpu_workload_profile_init(struct amdgpu_device *adev); + +void amdgpu_workload_profile_fini(struct amdgpu_device *adev); + +#endif --=20 2.34.1 From nobody Fri Dec 19 20:16:12 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFB61C71153 for ; Mon, 28 Aug 2023 12:29:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230242AbjH1M3Q (ORCPT ); Mon, 28 Aug 2023 08:29:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35806 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232446AbjH1M2u (ORCPT ); Mon, 28 Aug 2023 08:28:50 -0400 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2041.outbound.protection.outlook.com [40.107.96.41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B3D71A5 for ; Mon, 28 Aug 2023 05:28:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JLJOYilCTHdtzwcR/L2vDu80520YEAK1OzK8gkMdTs7ba7qR4fYEKsZKWmke4gUEF0mcOsO99I7GAQ5DhuvUn22eZ2P4jugPbiroa2wvx2viSovi2DiFdfRmlGjZ89tlb5x9xNegNJl3NFZQgYF50FyJKsXC0elIJVSzgxmml6Jvxlj2SQEEQLMinBReqtcVskJ56aWRMi8orT2HxOebGfgMQuENwNpjQqrhmMAqJak2AscNBJR4Tq5reS+GyI5+cuR+JxQwCP3Oj2DKJj6VZlfvHryYi6D7yS9w2gwsod6GOD4rego2fsUbGjzTyR2kK9koUm1zHhF5qAc96Ybtug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Zb2pTTGjpeJLzXMgSR4oMcDxQbF235H4NzUyWEJjcL8=; b=T42JQp/LWA2ubiAMPhKGS7NLUm0Q/9CBqKFxUyhmruzEFVzQ3vq3QpMVso0CqZV4xyG7tqVDBWRzmyvs7UBejy5llMr1gKLcC9ixTHJWppKKqEzsGExoZOHg7wrPVw1N2xKE4b/nuUe40xkoosBMUD44tGMVpVq6t6HqftoBSk+fbduEz9UN16QkkYiV1pjJWHOvF9q47Nj2KJsxHPMh6hapMLyNeP82fSwzOiTAHErmKMgVAhc8FRP9A2st/RkG77+jaS/sZCj4vLlSDtFkrpRGBS3OLCLo6ItwDHoy0QvhpIz19FwKEa+h+cSonBFBVHo3YncBxeCS7TAoQhjXEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Zb2pTTGjpeJLzXMgSR4oMcDxQbF235H4NzUyWEJjcL8=; b=DltAJbhDrb8tTDa2Jwtyk/Gth2k5pBki1sG0HSZz5lc4G8ajBlU2sXyVE3vtxtIeFDF80jZ3DZ4PcnYECayCN1rmPs2PrNVtDjbRLiNzzs+sqnrwLQRL3/TLOkbApc3hpNfGQAvmfIoP/rwxIbj+TlZfZ0jpMoe+NB7dZT/RSw4= Received: from DM6PR06CA0047.namprd06.prod.outlook.com (2603:10b6:5:54::24) by CH2PR12MB4038.namprd12.prod.outlook.com (2603:10b6:610:7b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Mon, 28 Aug 2023 12:28:31 +0000 Received: from CY4PEPF0000E9DC.namprd05.prod.outlook.com (2603:10b6:5:54:cafe::2) by DM6PR06CA0047.outlook.office365.com (2603:10b6:5:54::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34 via Frontend Transport; Mon, 28 Aug 2023 12:28:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9DC.mail.protection.outlook.com (10.167.241.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6745.16 via Frontend Transport; Mon, 28 Aug 2023 12:28:31 +0000 Received: from rtg-Artic.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 28 Aug 2023 07:28:27 -0500 From: Arvind Yadav To: , , , , , , , CC: , , "Arvind Yadav" , Christian Koenig Subject: [PATCH v3 2/7] drm/amdgpu: Add new function to set GPU power profile Date: Mon, 28 Aug 2023 17:56:09 +0530 Message-ID: <20230828122614.3815122-3-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230828122614.3815122-1-Arvind.Yadav@amd.com> References: <20230828122614.3815122-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9DC:EE_|CH2PR12MB4038:EE_ X-MS-Office365-Filtering-Correlation-Id: 4e5f1d6c-7462-415b-0083-08dba7c24a50 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4RuVTzwVnCZsBBc2q1BZy98nLTttf90ZbwE9fhCI9QsUIxtEjIeAPAdmbQ2KBxptkwY5UQFdIqoXFGxOXVbajzkGvpNh6e/xfC4n36oJj+rd5uaW8Sjf4jSbz4TtsdW4DdboY/Xud1u34kLJ66c1IZVptKcNQkxdPdFSkH8H2Cm4IJKjHYYPZO1q51+rcNDMzG4vOF8Oe1IZ7HrW0LIrduYVKqjFhYHUHSR0Zwpt3zYUKVhBvP4xXn16CKQWw1IP8PjYvxbZrZ4bzu07Sj22aek/wecXK1nBcf17Mp+uw/Kzux4wsk6nwpx/My07LZ5mqv9HcTOtpNsP8fEHIqh4GSVfjlvG/NNscDcqOPyJUt2n+nkR5gsYn4/tqDLcxgYGBfmG1PPSCf5/ZWH3nUeTm4MZyfW1wsJkES6KdyuFLzt8Zj7WBVm4AX8+f4X0eqe7ho5sevaWQhLz7a5K/TMjHtzmQEUZd2QT0p5vuFt3DK6iTWrwqoq2fkuKKZFjB/GxQBCUBf+otrkpDV3b5RYj2D8pZzToXFvRP8EJ1eJHROWOTBSNiA3wbglpnP/Sl/1BPPuL0Isogq0BHmTUKGNvLnpRNf4HMDrqIF9eN2emwsvCKYUn70CmB+wIa1J6ciXKEoyargyAap1xH38cmngSLDvCu4FpGxvJvA40ol3HNZMzJ60tzDdl5EHr9QvMo8macZAACvTYvgcBsgfOE/4I1FAyT9rxCWqzqxPm+h/wQsXjK+MoXfYgpzu1nKTfsSxDoF/Gz2m5q5VoOPFMlTeUwA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(346002)(39860400002)(376002)(396003)(186009)(1800799009)(82310400011)(451199024)(46966006)(40470700004)(36840700001)(6666004)(40480700001)(7696005)(82740400003)(86362001)(40460700003)(16526019)(26005)(1076003)(36756003)(2616005)(426003)(336012)(83380400001)(316002)(36860700001)(5660300002)(110136005)(70206006)(70586007)(54906003)(41300700001)(47076005)(81166007)(2906002)(478600001)(356005)(8676002)(8936002)(4326008)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2023 12:28:31.4214 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4e5f1d6c-7462-415b-0083-08dba7c24a50 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9DC.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4038 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This patch adds a function which will change the GPU power profile based on a submitted job. This can optimize the power performance when the workload is on. v2: - Splitting workload_profile_set and workload_profile_put into two separate patches. - Addressed review comment. v3: - Adressed all the review comment. - Changing the function name from *_set() to *_get(). - Now setting a power profile when refcount is zero. Cc: Shashank Sharma Cc: Christian Koenig Cc: Alex Deucher Signed-off-by: Arvind Yadav --- drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c | 59 +++++++++++++++++++ drivers/gpu/drm/amd/include/amdgpu_workload.h | 3 + 2 files changed, 62 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c b/drivers/gpu/drm= /amd/amdgpu/amdgpu_workload.c index 32166f482f77..67eacaac6c9b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c @@ -24,6 +24,65 @@ =20 #include "amdgpu.h" =20 +static enum PP_SMC_POWER_PROFILE +ring_to_power_profile(uint32_t ring_type) +{ + switch (ring_type) { + case AMDGPU_RING_TYPE_GFX: + return PP_SMC_POWER_PROFILE_FULLSCREEN3D; + case AMDGPU_RING_TYPE_COMPUTE: + return PP_SMC_POWER_PROFILE_COMPUTE; + case AMDGPU_RING_TYPE_UVD: + case AMDGPU_RING_TYPE_VCE: + case AMDGPU_RING_TYPE_UVD_ENC: + case AMDGPU_RING_TYPE_VCN_DEC: + case AMDGPU_RING_TYPE_VCN_ENC: + case AMDGPU_RING_TYPE_VCN_JPEG: + return PP_SMC_POWER_PROFILE_VIDEO; + default: + return PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT; + } +} + +static int +amdgpu_power_profile_set(struct amdgpu_device *adev, + enum PP_SMC_POWER_PROFILE profile) +{ + int ret =3D amdgpu_dpm_switch_power_profile(adev, profile, true); + + if (!ret) { + /* Set the bit for the submitted workload profile */ + set_bit(profile, &adev->smu_workload.submit_workload_status); + } + + return ret; +} + +void amdgpu_workload_profile_get(struct amdgpu_device *adev, + uint32_t ring_type) +{ + struct amdgpu_smu_workload *workload =3D &adev->smu_workload; + enum PP_SMC_POWER_PROFILE profile =3D ring_to_power_profile(ring_type); + int ret, refcount; + + if (profile =3D=3D PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT) + return; + + mutex_lock(&workload->workload_lock); + + refcount =3D atomic_read(&workload->power_profile_ref[profile]); + if (!refcount) { + ret =3D amdgpu_power_profile_set(adev, profile); + if (ret) { + DRM_WARN("Failed to set workload profile to %s, error =3D %d\n", + amdgpu_workload_mode_name[profile], ret); + } + } + + atomic_inc(&adev->smu_workload.power_profile_ref[profile]); + mutex_unlock(&workload->workload_lock); +} + void amdgpu_workload_profile_init(struct amdgpu_device *adev) { adev->smu_workload.adev =3D adev; diff --git a/drivers/gpu/drm/amd/include/amdgpu_workload.h b/drivers/gpu/dr= m/amd/include/amdgpu_workload.h index dc12448764a3..5fc0bc2a74a4 100644 --- a/drivers/gpu/drm/amd/include/amdgpu_workload.h +++ b/drivers/gpu/drm/amd/include/amdgpu_workload.h @@ -46,6 +46,9 @@ static const char * const amdgpu_workload_mode_name[] =3D= { "Window3D" }; =20 +void amdgpu_workload_profile_get(struct amdgpu_device *adev, + uint32_t ring_type); + void amdgpu_workload_profile_init(struct amdgpu_device *adev); =20 void amdgpu_workload_profile_fini(struct amdgpu_device *adev); --=20 2.34.1 From nobody Fri Dec 19 20:16:12 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33765C83F19 for ; Mon, 28 Aug 2023 12:29:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231506AbjH1M3S (ORCPT ); Mon, 28 Aug 2023 08:29:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232622AbjH1M25 (ORCPT ); Mon, 28 Aug 2023 08:28:57 -0400 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2052.outbound.protection.outlook.com [40.107.92.52]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7183013D for ; Mon, 28 Aug 2023 05:28:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ddnSsSUYXSJPls0MROiidGVgQTsBoFzB4ySktO9GZmduSMpHCL/DefQ5ws3Y/hkMZWcZimMwCzyeykwcjjckQhP5p8EKbN0g/cUEDdLtgs3K6yOZWQXDT/Zc+CUqnW0WD+LKhgz2FGSiSXngISWpT7rLPSKUEHdD8PqySGRZZL+X4GTTxcFFhwzhNLfYhrV5VJWl0poq0E30NW7OGn3S+qXn3vrV0wycHCgAM3P0/ed6qpp/88z2qcz+3mr0+ayJVzqLT3dH28g7KH22IMWOoO+hf2aFGeb9hnQhxf4Miw0oP3UBmOPbFS7NvHaL/jaaTMWmSAL5QOl5Z6xyPg5NHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zO5A2SF/ZdFbofTXiFUeWps8hAhB2ILUUQ9TmuV0fqw=; b=PWpy48Hiy3BojrdItxh7TBk3kY53YLjXzfklokZyndwUf37ezI8jxQpqjRMs235+N45P1Dkr+6BonaBeNTcMA+1VhzxKsvWAENZqIxGX2wUh6o2VyphIki/YAYFteZSSMSN0qdIi90CYk3NQadfl6IsYTl0X2cQokEpv4kG8rie/YKgutVrd3LNDPM5E3focV9VHDcwNCpbXrANIwdLdkSUXqCsjfrAcric+Th77Am59KHLkRn0iHDp+ml9N6p063SNZtKyvTLEaGt3C3uqQTjH4EQH+ddlHOneJq9svrGtQqOp13+iI1fBJGl90jMGL0PWRZ4+1Ux1KD50Q1O0s4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zO5A2SF/ZdFbofTXiFUeWps8hAhB2ILUUQ9TmuV0fqw=; b=uzTnuq7SAjwLMkNJqB6cwnHsPOvh9HsTQJbtjPjooF3XzOo+ahSxXlSmuOIzGbEeGqVKNXPKHIp+q0MT44aIyQkYyAGKkzZGhZ6dNY6LY5ykgFuvINQurmcYRLAaeDKc2dpfQO237gptkFMtA7yBcdEWilS1xY26rAno1EHS9/g= Received: from DM6PR06CA0092.namprd06.prod.outlook.com (2603:10b6:5:336::25) by PH7PR12MB7939.namprd12.prod.outlook.com (2603:10b6:510:278::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Mon, 28 Aug 2023 12:28:38 +0000 Received: from CY4PEPF0000E9DA.namprd05.prod.outlook.com (2603:10b6:5:336:cafe::7f) by DM6PR06CA0092.outlook.office365.com (2603:10b6:5:336::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34 via Frontend Transport; Mon, 28 Aug 2023 12:28:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9DA.mail.protection.outlook.com (10.167.241.79) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6745.17 via Frontend Transport; Mon, 28 Aug 2023 12:28:37 +0000 Received: from rtg-Artic.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 28 Aug 2023 07:28:33 -0500 From: Arvind Yadav To: , , , , , , , CC: , , "Arvind Yadav" , Christian Koenig Subject: [PATCH v3 3/7] drm/amdgpu: Add new function to put GPU power profile Date: Mon, 28 Aug 2023 17:56:10 +0530 Message-ID: <20230828122614.3815122-4-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230828122614.3815122-1-Arvind.Yadav@amd.com> References: <20230828122614.3815122-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9DA:EE_|PH7PR12MB7939:EE_ X-MS-Office365-Filtering-Correlation-Id: 465fa6a5-9029-45e1-400f-08dba7c24e23 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OvKakjFhU5s4nyLfHf4blQkzZXDEFkIXwZoffmUi7Gk9bL0PmKEaFmWEeEJ29Yx9bfoCHfRH7WXU74eIr3tMqM4DZTCkLk3se6ia/lwIcxOCH/+SYMM/b06lSKkBll42iWD72FxRWHoKyihszJvAZYpk4fe6tLaNTP5vJ+XqLv7ZQFNYkz/6KJniqKOwuXuyroJdvXcrsu66B+qpa1z+KW4pVFw85/pZ0yTRlY+9eImXSPspxrXiUv73IsaNXvLfoabUJ9M/6+UI5pONjSZpfoV6WN+zj/clFfSwj925TEQ9BocJAU2W4gQfV9B+RBB/f7F7D9ZMQMwrrKHvt4YkSicb9e46Yz/B1jfa2vjOSFAevDWTR/XgeZaH0CTkPZ/pPUiv+hsqJSXGszXVLX1ixgQptJkLPvDIycCgf0VJ+yGpkAyzfcag6f7JiYLsoBU2DssHoTJRSviXaV1bSFhEWFKplepbHPFW8UZ6mMD7OGdFIzHBnKGjR/Zk5QH0w/laBQFuclEdP0PQBUrpASC1iybH9sHyvAdyELcerr23XEemX1ebPYQfCRT7X6up4kfPttOURHhIwHEeC7feea8x+p6/uWrqD8Vcnq/8NDLROspHvbjzZJyEzrS+1OPeDT8vxp58RHx4251a1jMjF0I/m+WYhZSJlOv0x2pgpC8Em13tkdO+1ftzh3rHUMS2fHPhZ4/vBbsxQhHx9mOAtypL0bFQMeOlgdfTtpCHIVW7mXmvnZ2y4fqGPX8wCwU9XKX7PwVGoHLZV0O2gPdZrlO8fg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(39860400002)(376002)(136003)(396003)(346002)(186009)(82310400011)(451199024)(1800799009)(40470700004)(46966006)(36840700001)(7696005)(40460700003)(6666004)(36756003)(40480700001)(86362001)(81166007)(82740400003)(356005)(36860700001)(47076005)(2616005)(83380400001)(2906002)(426003)(336012)(26005)(1076003)(478600001)(16526019)(110136005)(70586007)(41300700001)(70206006)(8676002)(8936002)(5660300002)(316002)(54906003)(4326008)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2023 12:28:37.8390 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 465fa6a5-9029-45e1-400f-08dba7c24e23 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9DA.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7939 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This patch adds a function which will clear the GPU power profile after job finished. This is how it works: - schedular will set the GPU power profile based on ring_type. - Schedular will clear the GPU Power profile once job finished. - Here, the *_workload_profile_set function will set the GPU power profile and the *_workload_profile_put function will schedule the smu_delayed_work task after 100ms delay. This smu_delayed_work task will clear a GPU power profile if any new jobs are not scheduled within 100 ms. But if any new job comes within 100ms then the *_workload_profile_set function will cancel this work and set the GPU power profile based on preferences. v2: - Splitting workload_profile_set and workload_profile_put into two separate patches. - Addressed review comment. v3: - Adressed all the review comment. - Now clearing all the profile in work handler. - Added *_clear_all function to clear all the power profile. - scheduling delay work to clear the power profile when refcount becomes zero. Cc: Shashank Sharma Cc: Christian Koenig Cc: Alex Deucher Signed-off-by: Arvind Yadav --- drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c | 118 +++++++++++++++++- drivers/gpu/drm/amd/include/amdgpu_workload.h | 3 + 2 files changed, 120 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c b/drivers/gpu/drm= /amd/amdgpu/amdgpu_workload.c index 67eacaac6c9b..fbe86ee5b8bf 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c @@ -24,6 +24,9 @@ =20 #include "amdgpu.h" =20 +/* 100 millsecond timeout */ +#define SMU_IDLE_TIMEOUT msecs_to_jiffies(100) + static enum PP_SMC_POWER_PROFILE ring_to_power_profile(uint32_t ring_type) { @@ -58,16 +61,111 @@ amdgpu_power_profile_set(struct amdgpu_device *adev, return ret; } =20 +static int +amdgpu_power_profile_clear(struct amdgpu_device *adev, + enum PP_SMC_POWER_PROFILE profile) +{ + int ret =3D amdgpu_dpm_switch_power_profile(adev, profile, false); + + if (!ret) { + /* Clear the bit for the submitted workload profile */ + clear_bit(profile, &adev->smu_workload.submit_workload_status); + } + + return ret; +} + +static void +amdgpu_power_profile_clear_all(struct amdgpu_device *adev, + struct amdgpu_smu_workload *workload) +{ + int ret; + int profile =3D PP_SMC_POWER_PROFILE_COMPUTE; + + cancel_delayed_work_sync(&workload->power_profile_work); + mutex_lock(&workload->workload_lock); + + /* Clear all the GPU power profile*/ + for (; profile > 0; profile--) { + atomic_set(&workload->power_profile_ref[profile], 0); + ret =3D amdgpu_power_profile_clear(adev, profile); + if (ret) { + DRM_WARN("Failed to clear workload %s,error =3D %d\n", + amdgpu_workload_mode_name[profile], ret); + } + } + + workload->submit_workload_status =3D 0; + mutex_unlock(&workload->workload_lock); +} + +static void +amdgpu_power_profile_idle_work_handler(struct work_struct *work) +{ + + struct amdgpu_smu_workload *workload =3D container_of(work, + struct amdgpu_smu_workload, + power_profile_work.work); + struct amdgpu_device *adev =3D workload->adev; + int ret; + int profile; + + mutex_lock(&workload->workload_lock); + + /* Clear all the GPU power profile*/ + for_each_set_bit(profile, &workload->submit_workload_status, + PP_SMC_POWER_PROFILE_CUSTOM) { + if (!atomic_read(&workload->power_profile_ref[profile])) { + ret =3D amdgpu_power_profile_clear(adev, profile); + if (ret) { + DRM_WARN("Failed to clear workload %s,error =3D %d\n", + amdgpu_workload_mode_name[profile], ret); + } + } + } + + mutex_unlock(&workload->workload_lock); +} + +void amdgpu_workload_profile_put(struct amdgpu_device *adev, + uint32_t ring_type) +{ + struct amdgpu_smu_workload *workload =3D &adev->smu_workload; + enum PP_SMC_POWER_PROFILE profile =3D ring_to_power_profile(ring_type); + int refcount; + + if (profile =3D=3D PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT) + return; + + mutex_lock(&workload->workload_lock); + + refcount =3D atomic_read(&workload->power_profile_ref[profile]); + if (!refcount) { + DRM_WARN("Power profile %s ref. count error\n", + amdgpu_workload_mode_name[profile]); + } else { + if (refcount =3D=3D 1) + schedule_delayed_work(&workload->power_profile_work, + SMU_IDLE_TIMEOUT); + + atomic_dec(&workload->power_profile_ref[profile]); + } + + mutex_unlock(&workload->workload_lock); +} + void amdgpu_workload_profile_get(struct amdgpu_device *adev, uint32_t ring_type) { struct amdgpu_smu_workload *workload =3D &adev->smu_workload; enum PP_SMC_POWER_PROFILE profile =3D ring_to_power_profile(ring_type); int ret, refcount; + int index; =20 if (profile =3D=3D PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT) return; =20 + cancel_delayed_work_sync(&workload->power_profile_work); mutex_lock(&workload->workload_lock); =20 refcount =3D atomic_read(&workload->power_profile_ref[profile]); @@ -80,6 +178,22 @@ void amdgpu_workload_profile_get(struct amdgpu_device *= adev, } =20 atomic_inc(&adev->smu_workload.power_profile_ref[profile]); + + /* As we cancelled the delayed work, check and clear the pending + * power profiles set by previous jobs which are now done. + */ + for_each_set_bit(index, &workload->submit_workload_status, + PP_SMC_POWER_PROFILE_CUSTOM) { + if (!atomic_read(&workload->power_profile_ref[index]) && + (index !=3D profile)) { + ret =3D amdgpu_power_profile_clear(adev, index); + if (ret) { + DRM_WARN("Failed to clear workload %s, err =3D %d\n", + amdgpu_workload_mode_name[profile], ret); + } + } + } + mutex_unlock(&workload->workload_lock); } =20 @@ -90,6 +204,8 @@ void amdgpu_workload_profile_init(struct amdgpu_device *= adev) adev->smu_workload.initialized =3D true; =20 mutex_init(&adev->smu_workload.workload_lock); + INIT_DELAYED_WORK(&adev->smu_workload.power_profile_work, + amdgpu_power_profile_idle_work_handler); } =20 void amdgpu_workload_profile_fini(struct amdgpu_device *adev) @@ -97,7 +213,7 @@ void amdgpu_workload_profile_fini(struct amdgpu_device *= adev) if (!adev->smu_workload.initialized) return; =20 - adev->smu_workload.submit_workload_status =3D 0; + amdgpu_power_profile_clear_all(adev, &adev->smu_workload); adev->smu_workload.initialized =3D false; mutex_destroy(&adev->smu_workload.workload_lock); } diff --git a/drivers/gpu/drm/amd/include/amdgpu_workload.h b/drivers/gpu/dr= m/amd/include/amdgpu_workload.h index 5fc0bc2a74a4..596a962800e9 100644 --- a/drivers/gpu/drm/amd/include/amdgpu_workload.h +++ b/drivers/gpu/drm/amd/include/amdgpu_workload.h @@ -46,6 +46,9 @@ static const char * const amdgpu_workload_mode_name[] =3D= { "Window3D" }; =20 +void amdgpu_workload_profile_put(struct amdgpu_device *adev, + uint32_t ring_type); + void amdgpu_workload_profile_get(struct amdgpu_device *adev, uint32_t ring_type); =20 --=20 2.34.1 From nobody Fri Dec 19 20:16:12 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 21D04C83F11 for ; Mon, 28 Aug 2023 12:30:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231338AbjH1M3s (ORCPT ); Mon, 28 Aug 2023 08:29:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33306 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231972AbjH1M3W (ORCPT ); Mon, 28 Aug 2023 08:29:22 -0400 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2047.outbound.protection.outlook.com [40.107.101.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1302F120 for ; Mon, 28 Aug 2023 05:29:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H877OtGIRN6/XBIVPeiAmA9L5ONtrhKCJKAOv/BJoT/eV5ATEov/gBZ99dew0CSkw47yCc016WPyq+tAxZ7m5LsJyRh+TRX5dTaOY5drR6OQl1q0E0AXdWbd2W49e46Aeh3oIJzF7l3WW0FzLRZBp/eaLT3z1bJPhDLSFwp864ic70mmfWgfq2JDNQVcrwuy6gfqBnUmpU9nctfpvchOCZDQkZbkgGujTGrozhqKmnvt2/klhqSATtHaYE9mwVnBj70nYVr/xMDsnr1/NnnbV157ic6UlFz8CacCCg3P0TJ5FmeREThoJacSBFQjbPMvy7wliG6JfPjYEnyXEzRvjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LS4rCDeDbyQ09V8RTtOjak6NiWRTcqb/gYMKD5CuEq0=; b=dvciGoyPExSPHY4N3aCHbI3d2IL+1qZHeXPajle3nabT25pOEnZ8+bmbmMvoPErou5R84c1i/0h1LvDQi2BOfH0Tn++Q8M8F2FK4j5dxLWhqRRi0NYbMJovzIeVwPAvZU0W9t4FaeGwy2WB5CvNTIOafhK53+4+wDvkuGq9sePvuVuOU2aNkgPqCuXgHKIkUnjfRrlXBew1lLwGuBVebeVDRKpGvuMLlGm/e3yoUOXBldOMXudU1Ez8U9xfpiTWB/wP+XGdwx2qGAKwnA52pE2ZScSOulYX+3kWTBGA/+Mxc94djJ1OIdt5qzZygO+8HPFeppVip+sFXDcVX5UFKWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LS4rCDeDbyQ09V8RTtOjak6NiWRTcqb/gYMKD5CuEq0=; b=FfDfZQgZrO8GqkdZeAY5LeZ5mZNPflk3S0eqwn2AHty564gPh86ESbw8NpNt9n2vKytaJVMlwozkQCQ4YMyN2WnqKGcc943HBe+fs31K1unTzrUe0284B02c6hyjcSl1kc0mmp49J1hVJ9J+6HoSaVk3TBJlt2OFA4ukutvl+tk= Received: from DM6PR06CA0071.namprd06.prod.outlook.com (2603:10b6:5:54::48) by BN9PR12MB5162.namprd12.prod.outlook.com (2603:10b6:408:11b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Mon, 28 Aug 2023 12:29:15 +0000 Received: from CY4PEPF0000E9DC.namprd05.prod.outlook.com (2603:10b6:5:54:cafe::de) by DM6PR06CA0071.outlook.office365.com (2603:10b6:5:54::48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.35 via Frontend Transport; Mon, 28 Aug 2023 12:29:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9DC.mail.protection.outlook.com (10.167.241.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6745.16 via Frontend Transport; Mon, 28 Aug 2023 12:29:14 +0000 Received: from rtg-Artic.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 28 Aug 2023 07:29:10 -0500 From: Arvind Yadav To: , , , , , , , CC: , , "Arvind Yadav" , Christian Koenig Subject: [PATCH v3 4/7] drm/amdgpu: Add suspend function to clear the GPU power profile. Date: Mon, 28 Aug 2023 17:56:11 +0530 Message-ID: <20230828122614.3815122-5-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230828122614.3815122-1-Arvind.Yadav@amd.com> References: <20230828122614.3815122-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9DC:EE_|BN9PR12MB5162:EE_ X-MS-Office365-Filtering-Correlation-Id: 58f4f839-f50a-478e-6380-08dba7c26423 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: u/Qx9+q3amHV/x1UxiWLeBZoALv5lvFMMk2GvIbEIaIM5kfpQ+IHpVT/olfoLJEpaY3n+qH+OxEY0TGdkkE5MHiPlBYHYqZoV2MXseJkziSBhX9y4a1O9P/4cFn7hrB9NeP4iyYneAoe5YoLjEaan6BVvDO7jatA+FxKUBn2pGyuAXByROPmRSjRhYqdOMPIqCJZ58wQTH8g0c0NAxTA6K802xVEKtegBSRylbdN1OZeGj7GLdyptso8cOSvCf1WenyzcdGQpW+hVg7jvETofYU6PjVZUcNy/eNWI4CGVQq2BmQ7UmRlhCirDILkAnVrFND+FmL6a67Chw3hwYFO5waA6YEDfDZJOzYQglrT9Qfbz9+K27ioapQqZgWXeTB1QbiFg4FBF+ZybL6eIByM1XnCQ/2+ghqmUmPhh/85/lGlNLSikMgsNm71MXd6y08dTVVf0AOBu6ryrHoWJEtubUfu3O22OPPIWKwRR1KnyVG57zvU0fqwHs+QMW/9Ajc1eElWpGU9UWFmCGTYdgodUu/Nwv/FCu/wVTFB2X2F+nbelpIlG5ZxooslzO4Sx/1qLNu9OVsPGSZzAXYUHScDY8Q9fpo8TBbL1LVPpbj1+YhCBcxIdf7fYo/uCJub97nY9PnqQr0aOrse4dODGE9SKGLtHIwk4GU5ESpVxS/5hunukutb4XUu/U/TugOeQ7HE2F8OI44rKxwJD3MbuqHrz1XsbDLuCO6s0fJklgFVWuSqtS57qg2OLw+YFh3soqSXh2LD+WlysDKmNzOl8A1y5Q== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(136003)(346002)(39860400002)(376002)(396003)(186009)(1800799009)(82310400011)(451199024)(46966006)(40470700004)(36840700001)(40480700001)(7696005)(82740400003)(86362001)(40460700003)(16526019)(26005)(1076003)(36756003)(2616005)(426003)(336012)(83380400001)(316002)(36860700001)(5660300002)(110136005)(70206006)(70586007)(54906003)(41300700001)(47076005)(81166007)(2906002)(478600001)(356005)(8676002)(8936002)(15650500001)(4326008)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2023 12:29:14.7498 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 58f4f839-f50a-478e-6380-08dba7c26423 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9DC.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5162 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This patch adds a suspend function that will clear the GPU power profile before going into suspend state. v2: - Add the new suspend function based on review comment. v3: - Adressed the review comment. - Now clearing all the profile in work handler. Cc: Shashank Sharma Cc: Christian Koenig Cc: Alex Deucher Signed-off-by: Arvind Yadav --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c | 7 +++++++ drivers/gpu/drm/amd/include/amdgpu_workload.h | 2 ++ 3 files changed, 11 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_device.c index cd3bf641b630..3b70e657b439 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -4212,6 +4212,8 @@ int amdgpu_device_suspend(struct drm_device *dev, boo= l fbcon) =20 amdgpu_ras_suspend(adev); =20 + amdgpu_workload_profile_suspend(adev); + amdgpu_device_ip_suspend_phase1(adev); =20 if (!adev->in_s0ix) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c b/drivers/gpu/drm= /amd/amdgpu/amdgpu_workload.c index fbe86ee5b8bf..0ba0000b274a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c @@ -197,6 +197,13 @@ void amdgpu_workload_profile_get(struct amdgpu_device = *adev, mutex_unlock(&workload->workload_lock); } =20 +void amdgpu_workload_profile_suspend(struct amdgpu_device *adev) +{ + struct amdgpu_smu_workload *workload =3D &adev->smu_workload; + + amdgpu_power_profile_clear_all(adev, workload); +} + void amdgpu_workload_profile_init(struct amdgpu_device *adev) { adev->smu_workload.adev =3D adev; diff --git a/drivers/gpu/drm/amd/include/amdgpu_workload.h b/drivers/gpu/dr= m/amd/include/amdgpu_workload.h index 596a962800e9..34b96a5e7b50 100644 --- a/drivers/gpu/drm/amd/include/amdgpu_workload.h +++ b/drivers/gpu/drm/amd/include/amdgpu_workload.h @@ -52,6 +52,8 @@ void amdgpu_workload_profile_put(struct amdgpu_device *ad= ev, void amdgpu_workload_profile_get(struct amdgpu_device *adev, uint32_t ring_type); =20 +void amdgpu_workload_profile_suspend(struct amdgpu_device *adev); + void amdgpu_workload_profile_init(struct amdgpu_device *adev); =20 void amdgpu_workload_profile_fini(struct amdgpu_device *adev); --=20 2.34.1 From nobody Fri Dec 19 20:16:12 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37229C71153 for ; Mon, 28 Aug 2023 12:30:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231872AbjH1M3t (ORCPT ); Mon, 28 Aug 2023 08:29:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232432AbjH1M3Z (ORCPT ); Mon, 28 Aug 2023 08:29:25 -0400 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2041.outbound.protection.outlook.com [40.107.236.41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C900FEA for ; Mon, 28 Aug 2023 05:29:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Orw6kDSYLru+fXR4Zl7M6Em6Iv0RloYvrMIpc3qKxbbK7Bn+sRSqXGQnLh+pTqlCWpPF7gFYnLGhaObtgnkWUwxDwiEGKAOSM3kVzRfR1Q3B+Gl7jLL5lCgOqHkUhkC7Vk4G6CHgBRPARlcCs5BDSwG5Dd249nagVCru2GWQnYbxLqzqA6b8lEB2Cy1iXDrXyNudNXYwvxr0P1n3I7SYiCAiCMn4WOFucdFXTLO+OVol5vrj0Ll3FrI74lE8ixSLvUxxdcfvbw0XjJe9dEq8Z8InBPJFL4z0IvjXM94ewtaHRL7RtWrsjGsCzGLgM2qfN3fEsPjfVEJ81r2i/V1akw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=H2mfAMYY1C7O1oxmR7e3415v3jbP+A6sd5TbuJOgwcA=; b=EU5yQqLpvqMkTFd3k3RRBN6O4TmmHmJ1955TA1cbA9EQ/UtJMhS4oR5AnK1ImHpVmfBOzRjYsrCIKcVjGWfALCcKfaYz8CjAELaPgiN9e2ZCULmhFtM8hWsm+QPRSV3t5jUFjSU/oF0ZVf+1MDlksVbafgv/lcfHHl/6uomCGdphga/Iq3hZxlST7xV6NMIlKoGANY7SeTH82gRdhpGWSIRxVQnsLCgn0cmIvF/X6ToojiDUBiNbmKrLdmwdqSKn+5JFn49J+LRXt7xmy+kBBhzZSUJL1SoJUD1fk3xTatef8RXqta6h1wLgKPuQ00o3+YMIlnynxRtnxLosdvJoGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H2mfAMYY1C7O1oxmR7e3415v3jbP+A6sd5TbuJOgwcA=; b=Txv+zp/T06pO8rweCC+/A5nGZL7rYq/rXDFD8BsU/ehlqj8Q9th5iaM10LvQyQ9c8l38KQhDmvw3ao61aNkTcJKjgct+ohPG8TJKM4nmk7qsNLoQW6XYanzey9ftiPVfp2OfdQjzJNBdeGEGiNVB4x2nPsCOR2OceJovjD90+rI= Received: from CY5PR13CA0001.namprd13.prod.outlook.com (2603:10b6:930::34) by DS0PR12MB9421.namprd12.prod.outlook.com (2603:10b6:8:1a1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Mon, 28 Aug 2023 12:29:20 +0000 Received: from CY4PEPF0000E9D9.namprd05.prod.outlook.com (2603:10b6:930:0:cafe::cf) by CY5PR13CA0001.outlook.office365.com (2603:10b6:930::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.17 via Frontend Transport; Mon, 28 Aug 2023 12:29:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9D9.mail.protection.outlook.com (10.167.241.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6745.17 via Frontend Transport; Mon, 28 Aug 2023 12:29:20 +0000 Received: from rtg-Artic.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 28 Aug 2023 07:29:16 -0500 From: Arvind Yadav To: , , , , , , , CC: , , "Arvind Yadav" , Christian Koenig Subject: [PATCH v3 5/7] drm/amdgpu: Set/Reset GPU workload profile Date: Mon, 28 Aug 2023 17:56:12 +0530 Message-ID: <20230828122614.3815122-6-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230828122614.3815122-1-Arvind.Yadav@amd.com> References: <20230828122614.3815122-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D9:EE_|DS0PR12MB9421:EE_ X-MS-Office365-Filtering-Correlation-Id: a34ac73e-92fa-4e29-41a5-08dba7c2675e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: veL3hQGTFhGfA1tNXhRjrMciyRE2pS8rM6ywBsxD7O1AXdPoRDvMzQgtHe1YrF5xME4uFtsqHrJdcVfoN8ruRbqqaZ4kAH+quNE598lA/K1pFGfgGFW2LY6RxSBMB5I+qBiA/JlL6e3GSnoMOYNRsHmIsXzF/USOtrbwafK1M9UsCLkh5xVDfwm1Vq6+Iudt0hEHh48kbDTf4+jHAmn2968DvqsaL4Ppq9+uPJD4aHmOlxcr+9rtg27Rw1yeEps74Zzp0UitTcwM1QrDYmBpfXHr/JIUsy7wBbiBxOmvcnCf+TBSidg5bkn/zUBaVYAjVAeVvLrWt2YBl0M0mKeSdiRCnXrb8yf6z1mNrgOcmonjfK1BjF84I756Bv5ptvetwBF1+nabo8WFtbZ37XQ5jH6D8DzcyMTRsRJ3Gs6zT7eJa3amIiAF7L/HnUcb/qUOzvGP5V5hKa+S2gKqK+ueC1L6OBfDqYJpg1eUd/bJXHeI+YdHKr5fF2iuD8zwdiqx9hHC4ZmvfiW3V6UOYUScgJTgI26yQifRYzLgKNMWLhYq6xHdXK7Vay597P9k5rEmiDv9I4WjgBgXNMRr7z+LcPvKxaO/mcnlOd7mzcoJy8r9jvkjSBOAX4lNIkgp3FTDOjKD8PvPRfdhwjJkNzfzbmtfgiHtFBRpSgwyKI2wsM31ddzYtWimjqqpKB7Suzw/b5ou2GBEHYcKXX2SB8U+2VYa+llnrHPXyEOJPbbbJGMhYJiEQ9Wwx20wjvdV5Cozz2mIogOIPhpOpRNOhCkCww== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(39860400002)(136003)(346002)(376002)(451199024)(186009)(1800799009)(82310400011)(40470700004)(36840700001)(46966006)(6666004)(7696005)(5660300002)(70206006)(40460700003)(36756003)(86362001)(81166007)(356005)(47076005)(40480700001)(2616005)(82740400003)(36860700001)(2906002)(1076003)(426003)(336012)(16526019)(26005)(478600001)(110136005)(8676002)(70586007)(8936002)(54906003)(41300700001)(316002)(4326008)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2023 12:29:20.1687 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a34ac73e-92fa-4e29-41a5-08dba7c2675e X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D9.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9421 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This patch is to switch the GPU workload profile based on the submitted job. The workload profile is reset to default when the job is done. v3: - Addressed the review comment about changing the function name from *_set() to *_get(). Cc: Christian Koenig Cc: Alex Deucher Reviewed-by: Shashank Sharma Signed-off-by: Arvind Yadav --- drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_job.c index c3d9d75143f4..c5032762d497 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c @@ -176,6 +176,9 @@ void amdgpu_job_free_resources(struct amdgpu_job *job) static void amdgpu_job_free_cb(struct drm_sched_job *s_job) { struct amdgpu_job *job =3D to_amdgpu_job(s_job); + struct amdgpu_ring *ring =3D to_amdgpu_ring(s_job->sched); + + amdgpu_workload_profile_put(ring->adev, ring->funcs->type); =20 drm_sched_job_cleanup(s_job); =20 @@ -295,6 +298,8 @@ static struct dma_fence *amdgpu_job_run(struct drm_sche= d_job *sched_job) DRM_ERROR("Error scheduling IBs (%d)\n", r); } =20 + amdgpu_workload_profile_get(adev, ring->funcs->type); + job->job_run_counter++; amdgpu_job_free_resources(job); =20 --=20 2.34.1 From nobody Fri Dec 19 20:16:12 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 468AFC83F15 for ; Mon, 28 Aug 2023 12:30:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230428AbjH1M3w (ORCPT ); Mon, 28 Aug 2023 08:29:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232654AbjH1M3i (ORCPT ); Mon, 28 Aug 2023 08:29:38 -0400 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2053.outbound.protection.outlook.com [40.107.96.53]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 49EFB11A for ; Mon, 28 Aug 2023 05:29:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iFbhP5OPxoX91uZHM836XfO/jUenfmw3UmhBgZKK8vLyPEaknUZpZYNGzlel86b75WaaAOMFHyZaBVzqgcy3pwaTHtyL8v1ubPNogCOJlUncAx20lZhaZk3FFp2zHiD0zQ7+05EPqhs5NFIN/OWp/eWUuNREaG9bkVyG6SjrP7HvfPQP+wZonhWjqUMFyp5mRxup6kNXQh3ALR2IL7E4f5yMpNoZY7TVzYjHEGOdYgoiqJXB3HQ2COYRxZ0LG+YOo3xl9QKVVY20gijPb5gGgfvQDMKK/1ENF1NxAuNhdZm+t4s81c4pGQcIRDOXhhK1cJp5l2fUJY7Fys8NQwkw5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rkSKUNjqDW26Hepk4YY6zSRJgnZ3HgeTLYchrziiLeM=; b=DNvtVE7lUDp0bZSfguHcnrlP/Y7Ry4CRZ1TENuVM2l4m+uUcAmwv5P/9yi27ucrK4GNDRBEx5no8MBslIEYAVAG6R2uSAIINSjLOQBHC7AS5JP6/e5P0Q1Mn7hLJjmsp9tolPmRv9LQ2uhFdBs91zmzzoNwysjZcRbLl1PinhWV2uJrNkLvATvNyfzQ9rEEYzfi2QnuC/tA7QMzwexIC1ZM88lFuoJLryThcdriwM0pYk9ZaqdThFXgNSm++7aWP9nsnWkxyI+MGwbYkHKdYTd8jROg0+SarlYaimjhSYHLEZEZXcE+PdfbaN6GMeIb5L+RpqPZ8G0s3HYNZ2oly8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rkSKUNjqDW26Hepk4YY6zSRJgnZ3HgeTLYchrziiLeM=; b=14IGJgjNvLst+tlq94Ly8H8ncVUGzlBAQ4yGGNlHwMGXsCp+OTWENhwZkmh00avMoJQlfQt8d3JEOYOctTgXSa8+MvHfKCH6Mfl3OL4aHRY/016mlkgbrxzWxrHhi4U+0EPzxlTWexbftSqcZVilFLfUWkjXNQ1ZedUxo1rmXlI= Received: from DM6PR21CA0024.namprd21.prod.outlook.com (2603:10b6:5:174::34) by PH8PR12MB6985.namprd12.prod.outlook.com (2603:10b6:510:1bc::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Mon, 28 Aug 2023 12:29:26 +0000 Received: from CY4PEPF0000EE3F.namprd03.prod.outlook.com (2603:10b6:5:174:cafe::b) by DM6PR21CA0024.outlook.office365.com (2603:10b6:5:174::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.6 via Frontend Transport; Mon, 28 Aug 2023 12:29:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000EE3F.mail.protection.outlook.com (10.167.242.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6745.17 via Frontend Transport; Mon, 28 Aug 2023 12:29:26 +0000 Received: from rtg-Artic.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 28 Aug 2023 07:29:21 -0500 From: Arvind Yadav To: , , , , , , , CC: , , "Arvind Yadav" , Christian Koenig Subject: [PATCH v3 6/7] drm/amdgpu: switch workload context to/from compute Date: Mon, 28 Aug 2023 17:56:13 +0530 Message-ID: <20230828122614.3815122-7-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230828122614.3815122-1-Arvind.Yadav@amd.com> References: <20230828122614.3815122-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3F:EE_|PH8PR12MB6985:EE_ X-MS-Office365-Filtering-Correlation-Id: e04eb7d5-42f5-4b6c-4163-08dba7c26af0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7aBjm6yQ3NEGhmxYul45gvHz3qWviTYgPIZjszXu0RVHD/fubHwMkILafzrZu1BDmptF1VSvLkivVfDhUXer8uEL0KpCaCDTOg4dPksJrP6H9JV6srRpGrw+sEoZnTimNIrQ84Nd7Rjb210Ty6vUrHTn2XOAAFREr8yowSHp8Tyw9TWRkccVHNdVGihfslYgBvmAKr0nL23a1ZGyN2FcR16iBKlVjhhAak7QWsJFVSjcHSAW5cFz5V2DXZPHT4uA7ks2lJNfKqd44SFDVsOwddKI+M6Ngd1xPvTgkN738EWf4bhAK6JGmtu+UmMZBqJg5FBgClha7wKGbEScNdl0KTyLTQ02tZ2h589WBY6MUlOjN3b9le3+vn6LeQysm+3yH/LtWIOzYNgpss70Mn4uJd7zCEX0f51LMu2ysPBpmNJk55uCMLdHDBWzA/9EwYYdZRoE2vAAZse8verPAFDkzzrF2UtXyZucUvW+9N+MAUcHzOaAjg5H2U7lu6YABGcHBy3KswJlE3rJ/8RdpG6uiGOz8ERkerxtHHnAOLPEByI0QEqHDs6nyyDy8ZwZC1UJ8EMd3JQex3bharUUYcECZmHvLCOGetdc7ReZitX684y/9pqmrHn7246xHVR4Mh6Q2QtSbVIJALhAeRFRGAPIjsjt22k5MIC4ymq7W8PRhdUTG7uxObilKHj/F0bTuyK+GhBEy6RcgV1GxbeaT5YiKlh+M6J+SNhIJALbU2zpqpJ00sRBDuNfL9axnm8DlSw0Jf3W2O5W6Wl6rH+peiqmYg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(376002)(39860400002)(136003)(396003)(346002)(451199024)(1800799009)(82310400011)(186009)(40470700004)(36840700001)(46966006)(8676002)(8936002)(4326008)(2906002)(36756003)(110136005)(54906003)(316002)(70206006)(70586007)(5660300002)(336012)(40460700003)(41300700001)(36860700001)(7696005)(2616005)(1076003)(26005)(16526019)(426003)(40480700001)(82740400003)(81166007)(356005)(478600001)(83380400001)(86362001)(6666004)(47076005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2023 12:29:26.1587 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e04eb7d5-42f5-4b6c-4163-08dba7c26af0 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE3F.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6985 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This patch switches the GPU workload mode to/from compute mode, while submitting compute workload. v3: - Addressed the review comment about changing the function name from *_set() to *_get(). Cc: Christian Koenig Signed-off-by: Alex Deucher Reviewed-by: Shashank Sharma Signed-off-by: Arvind Yadav --- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_amdkfd.c index 0385f7f69278..fa939ac17120 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c @@ -713,9 +713,11 @@ void amdgpu_amdkfd_set_compute_idle(struct amdgpu_devi= ce *adev, bool idle) pr_debug("GFXOFF is %s\n", idle ? "enabled" : "disabled"); amdgpu_gfx_off_ctrl(adev, idle); } - amdgpu_dpm_switch_power_profile(adev, - PP_SMC_POWER_PROFILE_COMPUTE, - !idle); + + if (idle) + amdgpu_workload_profile_put(adev, AMDGPU_RING_TYPE_COMPUTE); + else + amdgpu_workload_profile_get(adev, AMDGPU_RING_TYPE_COMPUTE); } =20 bool amdgpu_amdkfd_is_kfd_vmid(struct amdgpu_device *adev, u32 vmid) --=20 2.34.1 From nobody Fri Dec 19 20:16:12 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E01AC71153 for ; Mon, 28 Aug 2023 12:31:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232008AbjH1Maw (ORCPT ); Mon, 28 Aug 2023 08:30:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231165AbjH1MaY (ORCPT ); Mon, 28 Aug 2023 08:30:24 -0400 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2053.outbound.protection.outlook.com [40.107.243.53]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C75AB191 for ; Mon, 28 Aug 2023 05:30:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IE/nQFONjbWCrPfZuBPzul1WWhdmMIByFOCuK2RdywXDUvW9lIMmYjEvx7DpQSsGr4dFptVyt8/3JiGIRS3+Qd5nXDFAxVgGc0l9mLjsiFzEM7XUMyGPwtob49qe12csAvPnAHLWkOri5HolOwOb02qtbDdNGrqUTVfT0G3FZTbXgA3ZwRh7GnMH0tOU4K2TSJ8lTbwSFNC+7dp80owle8jQWfJKMrfphJ1exOLkuOkR8j2rbwYG9qci0xpuEFkSed1UiQUPbnjJyVzA3+pvIIhPhMfbuDugBI3gemYC0OO9g4GzirrQFEQ/aEoy00NIos/VZMdEeeqvJ/mXuMg8sA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2gVoyx+EIZoho+YFlFtYwxUf8gMbfU5+r/HlOrYPT6E=; b=HOekNo4dWx0CYajnnUMxvV3R2Y/5l0I2/40ud0A7Q0iTLWRU6PK3UORsvhUvxpLEZRBRZs1lNgo+32wAucTj2amc2YEd3K3aWsSPfh9wylTQyRJ3HaS1Ttf5bMBO3E1WzHcL6aXPOHb7JJ4TmAUclFd31takH26IRuxD+BGAC8mIkCmqpMXOoXi9ndBDsPriYRyENp7N8wxHJtHa57uaDvpG3S4Tgvt8gy/uiPqXq9fRsytnPGUA55tF9qPcSwzah//DODWKb/rW/yXLud3PV6V5Q5SqbUxbdwaaySOgJ7Gx6N0oc9SKGHP+HtppDWk5VL18ZepwSNEM7jjU5KUG1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2gVoyx+EIZoho+YFlFtYwxUf8gMbfU5+r/HlOrYPT6E=; b=QfOo+lMm+r3pJAXpxJ7XzVHB4OGwSqmXWOv//5zYDhtH+LWT05DUqoQNiMinki14y38i4qgbET35OSEJ7cmFymY1ZWmb3iIMeDYVHY01cmDMMBEwwuJg59RwdEcuhgDNgfgv/PP3R/7UOb8lfDatFbl1KqX0A/NnqjKwluqrVUw= Received: from DM6PR07CA0118.namprd07.prod.outlook.com (2603:10b6:5:330::31) by SJ1PR12MB6217.namprd12.prod.outlook.com (2603:10b6:a03:458::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Mon, 28 Aug 2023 12:30:05 +0000 Received: from CY4PEPF0000EE3E.namprd03.prod.outlook.com (2603:10b6:5:330:cafe::72) by DM6PR07CA0118.outlook.office365.com (2603:10b6:5:330::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34 via Frontend Transport; Mon, 28 Aug 2023 12:30:05 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000EE3E.mail.protection.outlook.com (10.167.242.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6745.17 via Frontend Transport; Mon, 28 Aug 2023 12:30:05 +0000 Received: from rtg-Artic.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 28 Aug 2023 07:29:27 -0500 From: Arvind Yadav To: , , , , , , , CC: , , "Arvind Yadav" , Christian Koenig Subject: [PATCH v3 7/7] Revert "drm/amd/amdgpu: switch on/off vcn power profile mode" Date: Mon, 28 Aug 2023 17:56:14 +0530 Message-ID: <20230828122614.3815122-8-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230828122614.3815122-1-Arvind.Yadav@amd.com> References: <20230828122614.3815122-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3E:EE_|SJ1PR12MB6217:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e5e11a1-8f69-4ea2-04d3-08dba7c2821a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0pg2e8+ADbnP5ggZg/P46QkglybnWOYmnnae4JGniBsn8OaGlR8Un5Y8ef3oK5fYT8kiiHsozYtGGdCpv9ivecmfRCjSlg07DMwrcZE/qMfhH29/l/s+zXbZUApZSbNN08FWDFm39ZcE1QPJidbOOHfsatjrSxkHuPLs5L33SOHt+vepjYOiZgc2/495M1eC/qO2y6EIqGKB3gdc4FG4XJlgRi8zq/apHj8T9ggzZXr/HGt3hvRx2YULppdx3cBXCf7q+RgQ58nMqw2jZiQyQSnf5e4QTc7wpGQjRwyjPIAWfRutTjZchHZNRb5OmZJtn9LpejDxZ5MmfN4E35M9/8oLaqmINSptBGoZ8SlUJlQw4l7q0HcRLFDONcUA5jNi6Aq6Oa/1OX4NbKkl4wZSCkQTFrvAJHjcDZxSehKdXD3GBD9rBSRLtzxOwLtmaDk7ihME+8M2uP17z5t7lS5IdC+kx/xHH1RVhkAlSpc2KhdNEcS0+U9A6blZ7YBUHVpEl1utIDOM4guF2JZFaIKrf6hcT555WMDJ/SZQwjy7g937399Iv5zqJ2i8FBz1vtzulhb+91SfYJr3D0iWWk8qRWC9Ek68mZlSIE/EKA+//wO1YQ3DzgDF6/OqKWYqnjILhtZlKdBItOZQXFq8N/yobb5/UDs5PutTFTK1z3eS0WGMV0BfVfTGKTP/Jb6mokqZoQtz0AlYNPAXc6lRwZu2e1wiXsLLFJhLNROZIWwUW2OLaMwZ9dpsvbbCMKmSwJG7ZnHnxn41uMXC9F3L9FBZeQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(346002)(39860400002)(376002)(186009)(451199024)(1800799009)(82310400011)(46966006)(36840700001)(40470700004)(7696005)(6666004)(2616005)(86362001)(36756003)(40480700001)(40460700003)(82740400003)(356005)(47076005)(81166007)(36860700001)(83380400001)(1076003)(2906002)(16526019)(426003)(26005)(478600001)(70586007)(8936002)(110136005)(8676002)(4326008)(5660300002)(70206006)(316002)(336012)(41300700001)(54906003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2023 12:30:05.0200 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7e5e11a1-8f69-4ea2-04d3-08dba7c2821a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE3E.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6217 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This reverts commit 5ce71f59bb9bd3d8a09b96afdbc92975cb6dc303. Reason for revert: New amdgpu_workload_profile* api is added to switch on/off profile mode. These new api will allow to change the GPU power profile based on a submitted job. Cc: Christian Koenig Cc: Alex Deucher Acked-by: Shashank Sharma Signed-off-by: Arvind Yadav --- drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_vcn.c index 2d94f1b63bd6..70777fcfa626 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c @@ -363,7 +363,6 @@ static void amdgpu_vcn_idle_work_handler(struct work_st= ruct *work) container_of(work, struct amdgpu_device, vcn.idle_work.work); unsigned int fences =3D 0, fence[AMDGPU_MAX_VCN_INSTANCES] =3D {0}; unsigned int i, j; - int r =3D 0; =20 for (j =3D 0; j < adev->vcn.num_vcn_inst; ++j) { if (adev->vcn.harvest_config & (1 << j)) @@ -392,10 +391,6 @@ static void amdgpu_vcn_idle_work_handler(struct work_s= truct *work) if (!fences && !atomic_read(&adev->vcn.total_submission_cnt)) { amdgpu_device_ip_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCN, AMD_PG_STATE_GATE); - r =3D amdgpu_dpm_switch_power_profile(adev, PP_SMC_POWER_PROFILE_VIDEO, - false); - if (r) - dev_warn(adev->dev, "(%d) failed to disable video power profile mode\n"= , r); } else { schedule_delayed_work(&adev->vcn.idle_work, VCN_IDLE_TIMEOUT); } @@ -404,16 +399,11 @@ static void amdgpu_vcn_idle_work_handler(struct work_= struct *work) void amdgpu_vcn_ring_begin_use(struct amdgpu_ring *ring) { struct amdgpu_device *adev =3D ring->adev; - int r =3D 0; =20 atomic_inc(&adev->vcn.total_submission_cnt); =20 - if (!cancel_delayed_work_sync(&adev->vcn.idle_work)) { - r =3D amdgpu_dpm_switch_power_profile(adev, PP_SMC_POWER_PROFILE_VIDEO, - true); - if (r) - dev_warn(adev->dev, "(%d) failed to switch to video power profile mode\= n", r); - } + if (!cancel_delayed_work_sync(&adev->vcn.idle_work)) + amdgpu_gfx_off_ctrl(adev, false); =20 mutex_lock(&adev->vcn.vcn_pg_lock); amdgpu_device_ip_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCN, --=20 2.34.1