From patchwork Mon Aug 14 07:34:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arvind Yadav X-Patchwork-Id: 135233 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp2606865vqi; Mon, 14 Aug 2023 01:48:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFHzwC7uAY2pwh1W/3otnigth0VREEjbhG5TZsqZVeJ+xoxUzSmeB4ZoQSoC/5iufV0FH3L X-Received: by 2002:a05:6a21:7983:b0:11c:fc27:cda4 with SMTP id bh3-20020a056a21798300b0011cfc27cda4mr10656126pzc.11.1692002908324; Mon, 14 Aug 2023 01:48:28 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1692002908; cv=pass; d=google.com; s=arc-20160816; b=DBwFQk3xJfDnyvrRRpkDFTBmhRlZ4w4JdhOezSUmppI7c+aJYwdAUGiEJIMHiHDCXP Ll943i1qbdfkHv+tA70Xf78/AqxNc+ZYrP274Dd5Ay2zsJfHgLrV/H01delnt10O2CCJ IoiHzFU8RrcYL3DcGYE3BP8KTeNBApgLbBO9XGBG9BzlIgAvGgGkkFR3a3nG1/MsFSS4 BR3kCknP4ywOTaYkpa3phq3RCKeM0J3Fu4v2HbNkx83c4nae1q4ZeANMPgw7+qLqKD5J jGTDaXDMyDCOG/w42Fox+eKdDC/1ck6g6e8RF60zAwdgVUoimGKs9QBvuBikSFWMGl7h hbdA== ARC-Message-Signature: i=2; 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 :dkim-signature; bh=br7LQvRKU/PLh0cNoDuPOGljUilZBoJQ2kdWuSrICrM=; fh=he+r7XCflhMA8M+0V6Y29LlgYnLk6AiT9XaRGZHazK8=; b=WOx11vwH63+x/FS7RLqMTMprqcfDr4a1PmojwX3JwIaadE8bYYcWeu+6wCauUbm6S2 hFZBgv3eKOGjz0/oEawwNlSpkzEESW35n0to3fen5mZy82mwLeTCdLNIYgkChTSHKbgH VaGvPqVh7IAOiipSnlTf6ySlGfGbgF8+fULiANRdEt6q9NQn1ruVbZOTfTyezyR5Wdjx xfFaVWHNAFbmWBTt+j8THwilT98deSnIlQgZAx23UQ/PXT01oNnNz76+sZ+LXnGBHegA Z/jf+CCL3SeuKIG1tO4oizvbQo/TUVeNSF4gZpFKZ81k90yA5JgBl2lIYmIgT6FsrSLH Fsjg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=2HA2FbqO; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c17-20020a63da11000000b00553c2f85095si7474102pgh.832.2023.08.14.01.48.15; Mon, 14 Aug 2023 01:48:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=2HA2FbqO; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234172AbjHNHfn (ORCPT + 99 others); Mon, 14 Aug 2023 03:35:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234292AbjHNHfe (ORCPT ); Mon, 14 Aug 2023 03:35:34 -0400 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2068.outbound.protection.outlook.com [40.107.220.68]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 37D09E73 for ; Mon, 14 Aug 2023 00:35:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z0Ib7nRdV/vFTeyYmMFCTzq56A1IUrGRQPXYDgn4Vsr0MsugNojuTp2OwjfO3BYi/yyF7JUCbyyAUThw2bWs+aNNX2sOolYlh9Q20pHrOBtilm/JufjzaH0ufhRrG4kZQ1ME/AqSilzNa/0DfPjIHndml/3rgXeipvv7nUZ8Aky0dPte/ttb+SP3OTdNKiyFlfnUTFYzr7uu/hfIbFo44CUxEb641VqWMGwvphlfSJjfnn+f9czYvbTJ8snwdtEwotqlTdxtbd9FTu/lM3g8VVdl4LoCgAHsKDB3IBTP5Ts/W1NgG0cxXEUcSsGUm2ZgvN6ZKfpaNEedUJyPxnhAvQ== 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=br7LQvRKU/PLh0cNoDuPOGljUilZBoJQ2kdWuSrICrM=; b=QCeqmhc68kaz8hoHLP9rEatWlyPLnRIKDCOyxd45jxx9KVwggzXhYa1o8BEd2GwP6tc5DX18mWcOJ10P9PMSdLhnXCbBNoI1CQqaDgkDEktFgMujqefeaJP2VIpgp8iklfMkTZRF6A/zm1akiD/oBMBEFsbKI2Pu9JtBOrQ53GBi3hjEP8ZDjIf9voE1dY2Eot368yyHqqYWZ8zFwG2BOJ+7zSdWHiOx5QK75+GN9PEP+9SIcCQPbS53avkHzB0MFUjIgBIU83/RedfP5okLiW+25bxqeoVo7W+skyDchewgsPSz2sHaixAgacCc/ZHcUYjBbdMwS9GYpj/8N8BmyA== 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=br7LQvRKU/PLh0cNoDuPOGljUilZBoJQ2kdWuSrICrM=; b=2HA2FbqO4/1RjYlaRB7peUk5/fNqdW7HhLACQVn3Kk/n2zx/aCDCxfBaz+G4B5EGB9D+n7YuZG8O57y8uLIZbwWDpp2ylyUnEuzvZpj3F+lj6hpmhTxVyAMzsTOa8KDomhHt+8QWgQ/vYe0f//BT/XOouJzJSlSorgLg7Lek6g4= Received: from DM6PR10CA0033.namprd10.prod.outlook.com (2603:10b6:5:60::46) by CH3PR12MB8849.namprd12.prod.outlook.com (2603:10b6:610:178::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6678.24; Mon, 14 Aug 2023 07:35:30 +0000 Received: from CY4PEPF0000EE34.namprd05.prod.outlook.com (2603:10b6:5:60:cafe::41) by DM6PR10CA0033.outlook.office365.com (2603:10b6:5:60::46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.33 via Frontend Transport; Mon, 14 Aug 2023 07:35:30 +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 CY4PEPF0000EE34.mail.protection.outlook.com (10.167.242.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6699.12 via Frontend Transport; Mon, 14 Aug 2023 07:35:30 +0000 Received: from rtg-System-Product-Name.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, 14 Aug 2023 02:35:26 -0500 From: Arvind Yadav To: , , , , , , , , CC: Arvind Yadav , Christian Koenig Subject: [PATCH 1/3] drm/amdgpu: Add new api to switch on/off power profile mode Date: Mon, 14 Aug 2023 13:04:36 +0530 Message-ID: <20230814073438.10682-2-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230814073438.10682-1-Arvind.Yadav@amd.com> References: <20230814073438.10682-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 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: CY4PEPF0000EE34:EE_|CH3PR12MB8849:EE_ X-MS-Office365-Filtering-Correlation-Id: 9e5d9ae3-5854-470e-6a3f-08db9c99095f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LjIUP2m+ysM+OFDhpWs0QvS4rmTynSKN7XAFpHeELGJXEIH03fzrx6Vcs+/sjOJ1cQLNa920DWJ38gHsTGtFpsJ8R05B/E4EkZpm4XFIlk7SGE2ImDNVADeyiXUpLGPcKh3b/X7yoysETchvvhBXE+gRbegswe/vRGk8hMmupOULuBwACXBvbsHIW664KyIoNIt+E11Aa9Op5x0phRd9IOsliIFJlXNgCKsM2dy8uizXZQBs6/lspy+bNPXlCrtBivYf03OFs6fmpTK/eQJeKDB2OKv/skLD1LBep5OCVhfII678eMNrvobBKIFpu1Y8ZraSuqktpWN3rK6kaW1czzbo6rarCAUzkve7O3hrkh5TI1jkUQ9T22bIgkprB7sdnvHvSwAgGrIiVWJf0Gk1GnBJeA4O52jGqFVXWEThiGHDpbs4RWXZuhtHif+MS45OyDlRMDav1wbRmgBw7mxQsVlVt8oYmmxdPd3/sCaF+YGvGPnBFpvF35vzRwwO9834LNtGfMadH36rSmmR1gpaA51qNfDBHJplyGdk+DyWcmsAExRAAokwtzcSjfwE8vTxEIEuVgxmHzbPPocgfjbLhZSREpeWptliFEOevBtMSS84UeXkATjtYmVVoLuhfLacBYKVatrbZtKEGKbfd4C8+3Y4ORWz5XP+IO3TOhJjGm3JOUo54W4oRnl/bkNz0Cc8ukZRr1lTp67dnHKOLjLrvnn2nHK5sTqvl5mvMy8SEhI+n/4ztKe126gRzCcK9LIyuQEYwX5fdI4YDed5FG539g== 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:(13230028)(4636009)(376002)(39860400002)(346002)(396003)(136003)(82310400008)(1800799006)(186006)(451199021)(40470700004)(46966006)(36840700001)(16526019)(83380400001)(36860700001)(36756003)(1076003)(26005)(336012)(54906003)(478600001)(110136005)(7696005)(6666004)(426003)(2616005)(47076005)(82740400003)(86362001)(356005)(81166007)(5660300002)(41300700001)(316002)(4326008)(70586007)(70206006)(2906002)(40480700001)(66899021)(40460700003)(8936002)(8676002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2023 07:35:30.3140 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9e5d9ae3-5854-470e-6a3f-08db9c99095f 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: CY4PEPF0000EE34.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8849 X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774193641944674473 X-GMAIL-MSGID: 1774193641944674473 This patch adds a function which will allow to change the GPU power profile based on a submitted job. This can optimize the power performance when the workload is on. Cc: Shashank Sharma Cc: Christian Koenig Cc: Alex Deucher 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 | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c | 156 ++++++++++++++++++ drivers/gpu/drm/amd/include/amdgpu_workload.h | 44 +++++ 5 files changed, 206 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/amdgpu/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 += 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 amdgpu-$(CONFIG_PROC_FS) += amdgpu_fdinfo.o diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/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" #define MAX_GPU_INSTANCE 16 @@ -1050,6 +1051,8 @@ struct amdgpu_device { bool job_hang; bool dc_enabled; + + struct amdgpu_smu_workload smu_workload; }; 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/amd/amdgpu/amdgpu_device.c index 5c7d40873ee2..0ec18b8fe29f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -3672,6 +3672,8 @@ int amdgpu_device_init(struct amdgpu_device *adev, INIT_WORK(&adev->xgmi_reset_work, amdgpu_device_xgmi_reset_func); + amdgpu_smu_workload_init(adev); + adev->gfx.gfx_off_req_count = 1; adev->gfx.gfx_off_residency = 0; adev->gfx.gfx_off_entrycount = 0; 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..ce0339d75c12 --- /dev/null +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_workload.c @@ -0,0 +1,156 @@ +// 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 limitation + * 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" + +/* 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) +{ + 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 void +amdgpu_power_profile_set(struct amdgpu_device *adev, + enum PP_SMC_POWER_PROFILE profile) +{ + int ret = amdgpu_dpm_switch_power_profile(adev, profile, true); + + if (ret == 0) { + /* Set the bit for the submitted workload profile */ + adev->smu_workload.submit_workload_status |= (1 << profile); + atomic_inc(&adev->smu_workload.power_profile_ref[profile]); + } else { + DRM_ERROR("Failed to set power profile, error %d\n", ret); + } + +} + +static void +amdgpu_power_profile_clear(struct amdgpu_device *adev, + enum PP_SMC_POWER_PROFILE profile) +{ + int ret = amdgpu_dpm_switch_power_profile(adev, profile, false); + + if (ret == 0) { + /* Clear the bit for the submitted workload profile */ + adev->smu_workload.submit_workload_status &= ~(1 << profile); + } else + DRM_ERROR("Failed to clear power profile, error %d\n", ret); + +} + +static void amdgpu_smu_idle_work_handler(struct work_struct *work) +{ + + struct amdgpu_smu_workload *wl = container_of(work, + struct amdgpu_smu_workload, + smu_delayed_work.work); + struct amdgpu_device *adev = wl->adev; + bool reschedule = false; + + mutex_lock(&adev->smu_workload.workload_lock); + for (int index = fls(adev->smu_workload.submit_workload_status); + index >= 0; index--) { + if (!atomic_read(&adev->smu_workload.power_profile_ref[index]) && + adev->smu_workload.submit_workload_status & (1 << index)) { + amdgpu_power_profile_clear(adev, index); + } else if (atomic_read(&adev->smu_workload.power_profile_ref[index])) + reschedule = true; + } + + if (reschedule) + schedule_delayed_work(&adev->smu_workload.smu_delayed_work, + SMU_IDLE_TIMEOUT); + + mutex_unlock(&adev->smu_workload.workload_lock); +} + +void amdgpu_put_workload_profile(struct amdgpu_device *adev, + uint32_t ring_type) +{ + + enum PP_SMC_POWER_PROFILE profile = ring_to_power_profile(ring_type); + + if (profile == PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT) + return; + + mutex_lock(&adev->smu_workload.workload_lock); + atomic_dec(&adev->smu_workload.power_profile_ref[profile]); + schedule_delayed_work(&adev->smu_workload.smu_delayed_work, SMU_IDLE_TIMEOUT); + mutex_unlock(&adev->smu_workload.workload_lock); +} + +void amdgpu_set_workload_profile(struct amdgpu_device *adev, + uint32_t ring_type) +{ + enum PP_SMC_POWER_PROFILE profile = ring_to_power_profile(ring_type); + + if (profile == PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT) + return; + + mutex_lock(&adev->smu_workload.workload_lock); + cancel_delayed_work_sync(&adev->smu_workload.smu_delayed_work); + + amdgpu_power_profile_set(adev, profile); + + /* Clear the already finished jobs of higher power profile*/ + for (int index = fls(adev->smu_workload.submit_workload_status); + index > profile; index--) { + if (!atomic_read(&adev->smu_workload.power_profile_ref[index]) && + adev->smu_workload.submit_workload_status & (1 << index)) { + amdgpu_power_profile_clear(adev, index); + } + } + + mutex_unlock(&adev->smu_workload.workload_lock); +} + +void amdgpu_smu_workload_init(struct amdgpu_device *adev) +{ + struct amdgpu_smu_workload wl; + + wl.adev = adev; + wl.submit_workload_status = 0; + adev->smu_workload = wl; + + mutex_init(&adev->smu_workload.workload_lock); + INIT_DELAYED_WORK(&adev->smu_workload.smu_delayed_work, amdgpu_smu_idle_work_handler); +} diff --git a/drivers/gpu/drm/amd/include/amdgpu_workload.h b/drivers/gpu/drm/amd/include/amdgpu_workload.h new file mode 100644 index 000000000000..09804c3d2869 --- /dev/null +++ b/drivers/gpu/drm/amd/include/amdgpu_workload.h @@ -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 limitation + * 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 smu_delayed_work; + uint32_t submit_workload_status; + atomic_t power_profile_ref[PP_SMC_POWER_PROFILE_COUNT]; +}; + +void amdgpu_set_workload_profile(struct amdgpu_device *adev, + uint32_t ring_type); + +void amdgpu_put_workload_profile(struct amdgpu_device *adev, + uint32_t ring_type); + +void amdgpu_smu_workload_init(struct amdgpu_device *adev); + +#endif From patchwork Mon Aug 14 07:34:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arvind Yadav X-Patchwork-Id: 135214 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp2597702vqi; Mon, 14 Aug 2023 01:23:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG+KvEVqX1eUAiEZYItzXfU/c2MR0lw/FlI7pbnPrmUB/lWbrvSbiygPi8Gu/1Aw+2csQCY X-Received: by 2002:a17:90a:9e2:b0:26b:c5b:bb44 with SMTP id 89-20020a17090a09e200b0026b0c5bbb44mr8125541pjo.13.1692001426163; Mon, 14 Aug 2023 01:23:46 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1692001426; cv=pass; d=google.com; s=arc-20160816; b=GJyJUT/uo9C8Ero48OlYATRXX7s8pclj04SXRBE9VujIa8GdNn8qSGDz28MyeR7Neu UUrmmZKq9YZ/3vYPjcrpnrWdDf1IJ0C8wLJDsERHq5TkFYLONFz745OhHUOAl+kjzDZ0 xDC6rTvire0iI4Opwcil1NexkyCKuOGSB4NfF8cuzxgYGUvZKvdPSC92Rv+hzqMHdEhc jmYO1Sq5+IxcJZ5iO3I83izfje42IKns9opXiOD7K5A9JSyAB+1l5PUiY3CkWimZjCxF vYdtN6sp5HTPvj63XrMEZgXctHHR1ML6W/hnEGHC6SqO3XY6cfVYcwcod4AsF9Ta+xjK wgOg== ARC-Message-Signature: i=2; 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 :dkim-signature; bh=ssPZDeV4HZQy47PEfCjEFtGh6x1WaVTJhUl3ZPJp8q8=; fh=he+r7XCflhMA8M+0V6Y29LlgYnLk6AiT9XaRGZHazK8=; b=bVVYyiVRzW5CG/fQjcDC/dmpHPB4xlQ2tylC30fpm7u5+IB9Q1Ntge4ACBJUXMAqSe qMcUZZzqMcvBTS7WOX8QPyhBh91ooL95ia6x2VhD2xmISs4+XUwtOMKDJVvF8beDIRDc 97erctFqRGRCP4H02avmMuZOly4fMp97rIdUtnkF257QMl0UUjaWD1z7DKxxfbtfn4gi j2CfnhIRoHYwdrOT3+ijVHbu7n1cmBVLHXKtxpR6WGnX/CRexmshcTTnzody3ZdraJkd GB/MKNXKPqQ+Hndtr5Q/TnDEmdpoLG91zYlzCTDalDwAlhUKb76wD1v+VYLSY418b9M+ JFAQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=amJ3Arbb; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q13-20020a170902f34d00b001bbc7ed95efsi7473363ple.44.2023.08.14.01.23.33; Mon, 14 Aug 2023 01:23:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=amJ3Arbb; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233710AbjHNHgq (ORCPT + 99 others); Mon, 14 Aug 2023 03:36:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38454 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231593AbjHNHgM (ORCPT ); Mon, 14 Aug 2023 03:36:12 -0400 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2044.outbound.protection.outlook.com [40.107.94.44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D3791E5B for ; Mon, 14 Aug 2023 00:36:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nmqrXxPZMjapiYT5y0RT78F9a+vDUcp2Z2QXKCRKFD1rbu+AbpcWn2JcraIXLU2m++8MI24ynAgxpbIvk57ZriRc7AYh1TBCf2igjNozlDfqPezhd8jRREMwKAtJWo1vs4fbqGs2OvMIUyEGYd/6tWHEYorhUlF/bY+xTR/nsV1AwDxm8tUINRvu2eR5ETZMRN+d+AVU9HMsYe2wKml3FCToq2oKu8j3YHoHXfWJJxRbLyl6ibg3V9EgXWkweMuihQgZpL+ZcNuP52b+w7YD3jc/vFJEB8+knIuu+TWoVZM0H4TU7BdrPEqj4JdOelAbq38gTzqbHmBTl82FCqszUg== 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=ssPZDeV4HZQy47PEfCjEFtGh6x1WaVTJhUl3ZPJp8q8=; b=PTrdmyZbKoHlLzupchDgecn8YjiNtGipBuX7ONXsakabucqEaH4E9Zo0WNO1sJvpGBMQrtrJvy5AA9LRoFA2tJzN/zymw9eCLjc4fZa08ypkuYcdwczJNjY8g81bEoiK7dm8+rHX2nkh3JUUA1QRpaslEdwuKABa4g6k67ZW2wK8fTYnfwk4S/Hr5TqSIDc/OBQoh00oDR9Dof8WNeF6pFLsR45PTM153Us1pHskNItN85f0PaXnGVZCeVUK5u2AajChZW7X3Yrq7FcDQt3cj+vX9hbXXj6DMXAhHgqJ9hZKi8QVWzvuqXAl1OsAObwlvUZ/WlfkmhC+mrH0oc8RCw== 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=ssPZDeV4HZQy47PEfCjEFtGh6x1WaVTJhUl3ZPJp8q8=; b=amJ3ArbbuDfU/Rk8Xa1/CNvP/2CarRWHmAKYppMM9VBXxBtGGID+20RL1GWJbn8VMOeIBE3rAcf2Y/fZBIW3EWShhZa7+sI0WxuzXktivMxmog+7jokf1yzBES7j+sAMswV2FY9TB1ESs3BrRez9138/aAAxD+AUxAcS8fNPTDg= Received: from CY5PR10CA0027.namprd10.prod.outlook.com (2603:10b6:930:1c::26) by SJ2PR12MB8927.namprd12.prod.outlook.com (2603:10b6:a03:547::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6678.24; Mon, 14 Aug 2023 07:36:09 +0000 Received: from CY4PEPF0000EE33.namprd05.prod.outlook.com (2603:10b6:930:1c:cafe::91) by CY5PR10CA0027.outlook.office365.com (2603:10b6:930:1c::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.33 via Frontend Transport; Mon, 14 Aug 2023 07:36: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 CY4PEPF0000EE33.mail.protection.outlook.com (10.167.242.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6699.12 via Frontend Transport; Mon, 14 Aug 2023 07:36:09 +0000 Received: from rtg-System-Product-Name.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, 14 Aug 2023 02:35:32 -0500 From: Arvind Yadav To: , , , , , , , , CC: Arvind Yadav , Christian Koenig Subject: [PATCH 2/3] drm/amdgpu: Switch on/off GPU workload profile Date: Mon, 14 Aug 2023 13:04:37 +0530 Message-ID: <20230814073438.10682-3-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230814073438.10682-1-Arvind.Yadav@amd.com> References: <20230814073438.10682-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 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: CY4PEPF0000EE33:EE_|SJ2PR12MB8927:EE_ X-MS-Office365-Filtering-Correlation-Id: 53770b98-16a1-41c0-f1f0-08db9c992080 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0AVLfVrE1zU+jlgftu48t13Fktr20ejCpI14EhguS7EjJmaQmCy8hCrk1ZN3nxHf6iz+pYWuHqhfinWUvI60ayDFKAQFu21HOLDVFbfO161bODsvW8LJq90K7f0r66xBHjqs+E7lZvlKL8BdSZ9hCRjsvmtLjQUrFAaDdfBSVJ98OULA8EAY3BN2dyJVgQML/cfXVuHts6vyIoiVjxfpQGkE5f9F+sznqEkfnGqzs0hTsZ0P7iZnPm1ypwFAdPtVURQK0TXEGtOxm8I2Vmc4Un2i0MtR1sdzwxvYotshG2eTa/0TJSiKpWCbjtO/OZOVOdZetrPjcyA1pI6z+aR/4Scz/R0+POv8lVOgbWky64xqlbOlhpEB6BdcM+U/Nkb8QtpsD0M7yRDr9iRBuAy3aAlpmp+Wh7ksIbF6d+8V9sL2rOS7jPb+m/RE5iHMhUKCer1dY2IYipunONHmK3XyxsqEpJusHjKkJP1leob5IOh/JhyY/pbFEWU5FvtGZb6I49hOAJ1iHYG+UA9P/cf8a//LnhlM5RyE7API4rd7V/cMZ/t3GvvNUgrCIAcZgQtaJiTPw7G8OzIFxjTQgdojnYpBnkZvpecmURPux71LYp8XFyv+MAy7+p7nDoDBzU09HloUFEf+tSltOa6yAUkY84sdZpYJxKnfD3hLuFrS1MOqewvX7zOX8LHv7KY35gsGnST0p2u+3T/09mvY5Muz+HbNebosZ+h07XQLROrrItlLNCK4Nt4ar5+gHTiFDANJ5GkujliBaqJP+TvKZPWLDw== 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:(13230028)(4636009)(136003)(346002)(39860400002)(376002)(396003)(1800799006)(186006)(82310400008)(451199021)(40470700004)(36840700001)(46966006)(7696005)(36756003)(356005)(81166007)(82740400003)(47076005)(36860700001)(86362001)(26005)(1076003)(2906002)(54906003)(110136005)(40480700001)(426003)(2616005)(16526019)(336012)(478600001)(8676002)(41300700001)(8936002)(70206006)(5660300002)(40460700003)(70586007)(316002)(4326008)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2023 07:36:09.1214 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 53770b98-16a1-41c0-f1f0-08db9c992080 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: CY4PEPF0000EE33.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8927 X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774192087522281618 X-GMAIL-MSGID: 1774192087522281618 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. Cc: Shashank Sharma Cc: Christian Koenig Cc: Alex Deucher 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..8457d2468fd8 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 = to_amdgpu_job(s_job); + struct amdgpu_ring *ring = to_amdgpu_ring(s_job->sched); + + amdgpu_put_workload_profile(ring->adev, ring->funcs->type); drm_sched_job_cleanup(s_job); @@ -295,6 +298,8 @@ static struct dma_fence *amdgpu_job_run(struct drm_sched_job *sched_job) DRM_ERROR("Error scheduling IBs (%d)\n", r); } + amdgpu_set_workload_profile(ring->adev, ring->funcs->type); + job->job_run_counter++; amdgpu_job_free_resources(job); From patchwork Mon Aug 14 07:34:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arvind Yadav X-Patchwork-Id: 135257 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp2624120vqi; Mon, 14 Aug 2023 02:32:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHv2VJh0f5CPzbgfqyIaCzZCh1FnSh66z/SJ9G24zzt4oqGc2W2h+x+4FAXLcihHhioZAU0 X-Received: by 2002:a05:6a21:61c:b0:12b:fe14:907e with SMTP id ll28-20020a056a21061c00b0012bfe14907emr11394790pzb.20.1692005523210; Mon, 14 Aug 2023 02:32:03 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1692005523; cv=pass; d=google.com; s=arc-20160816; b=YlNZmQ1e1Fjvw3Z6I2oUssdk2oWNAeMNb8lwmwALvBOOb/YnS9xmLBXFiicWoGvlD9 WOoXrsuypH98P61D06tWxfCzx3/4P68dqmTv7V9fYyKGQSc6jRN2FMZExgTcIm7dnuVe u9nrOWvWU7nXePvW4J7V5MPi4QizEAkx4kTJsUHAA5HwK0SdxMeW7u4PveLqkcfMXD3p 6ZBJtCfO2wEbMA81HMHEhuuyedrVoiefXd7ywObpOzmlfGmMvPmS/Vf/xykVvZEOOxvp 22qcwXhUhvwh9IH3Gj7AQ7Eyi23It7GW11OjLQgdwtyo6wxX7dbiQF7LhLeBzdWEOHB4 0A8A== ARC-Message-Signature: i=2; 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 :dkim-signature; bh=dpcUuG3d+eURPz4+/B67XaE+lKMluvbEUgqJqvaY12Y=; fh=he+r7XCflhMA8M+0V6Y29LlgYnLk6AiT9XaRGZHazK8=; b=qdSrkcbY59yNrow2fbfcx778XJG15jmrDfo6RSlHiwB4Akb0QUyAvAHzioSBeT9ghW 51KTWhbROZ0kFBhSTmhdB1vDMfm/QbSjtYIo9EAjGa8c8yvdLaZqm9k468zbnAr7GDrZ EnFZHjKUD1bZ1YUwGFtbeZVvwP92QrefjpHKWlhHrEn9pCGfpE9oBtW+rm2pTglk3A4p LnI9v+4PCy3Sd6X9+QwZpRTDrZN7JETZ80afbhCQ7w//GSm2NWHS717sEqIwy6qDJ8xS KesTe93ly4Nc7ajdrPuW4y8ZZuMrWX20RDwD9m8QoSuiDa/vXoWdrPv1XK++D1LYTbkU RKrQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=HtSjKWlw; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l192-20020a6391c9000000b005653378ef3dsi7538440pge.514.2023.08.14.02.31.50; Mon, 14 Aug 2023 02:32:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=HtSjKWlw; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233541AbjHNHhT (ORCPT + 99 others); Mon, 14 Aug 2023 03:37:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234232AbjHNHgu (ORCPT ); Mon, 14 Aug 2023 03:36:50 -0400 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2049.outbound.protection.outlook.com [40.107.244.49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 06C5D10CE for ; Mon, 14 Aug 2023 00:36:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A2PrKrZq7kawOe82BG57zTtV5G1WDmS1jX0XGoLP53UNoHTdKDPF1QDxHTRUhYX24kL2URMTxZjNB0Nb1vZLdfZQ7K80JnVnWJLHs21lf816P35wgFfge0+KqLTKDilhh6GMy6DIgWv/vFeWE/8UXkmMdSEIyVBMbJQwhHZ1OSmH/NQq4CUdbflTctpYHgHTXLjiU1YdhjB4y8aVecftN0sCDjP57/qaoZjJAZu+kYulyHUnnQdi4SXmwp41LR3Jx8PdYTqk1SxvnUcinoJ3FL1Q5jy1FVp0aZ4wQlWfe0OHMdAbwS5twWV5XNI0DbM+W3ZSyK3uYABQFIyRKiAAzQ== 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=dpcUuG3d+eURPz4+/B67XaE+lKMluvbEUgqJqvaY12Y=; b=V8KGfn5KLiVIPHBztJSDZKcbYwRbyMY5D8xIgiPyKam1j2L1LJHh3zwsaaIuCAHWm4jRFAQQo5dVHQk9VbV5J9iIxFO29TJTw7ceVnoWJsOaC/tgVSEEDye/EHNW8gohdSW5GiI6MKx215yUyTJxld7gPKnXCqBo9Qbs86SMd7JB+ANfh3eeIowolyonYBchiqTrZ4v5f9ENWdChPeJm+HYiXQu7DegQx9c0BWiRxmjBsqq1p2VoSl/38oYUs8pENuW+HJCEu9JL232TURjhl4Nuu58CJCKAXwKhqm3AEIv+uXgf+Tfmw6Mts45RVkfwREmpxdST9ttNMB2fM6uHIg== 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=dpcUuG3d+eURPz4+/B67XaE+lKMluvbEUgqJqvaY12Y=; b=HtSjKWlwJslFhcO7EBWhRndvf/EV2sip+QHIfRY6l/OEglhWIvw5Ue5gxipL6V/sF1G7qhtaCZnHaUyWvMulvBqNsrzS1kAj9JI2RMDLB8hlH0KyfZQILPm/mUUjzXhlFsqp1Jq/AK8W0DP0pF8PzBxj7vxWWINI5NCdj3q7Fzk= Received: from CYZPR11CA0019.namprd11.prod.outlook.com (2603:10b6:930:8d::19) by DM6PR12MB4332.namprd12.prod.outlook.com (2603:10b6:5:21e::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6678.24; Mon, 14 Aug 2023 07:36:41 +0000 Received: from CY4PEPF0000EE32.namprd05.prod.outlook.com (2603:10b6:930:8d:cafe::16) by CYZPR11CA0019.outlook.office365.com (2603:10b6:930:8d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.33 via Frontend Transport; Mon, 14 Aug 2023 07:36:41 +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 CY4PEPF0000EE32.mail.protection.outlook.com (10.167.242.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6699.12 via Frontend Transport; Mon, 14 Aug 2023 07:36:41 +0000 Received: from rtg-System-Product-Name.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, 14 Aug 2023 02:36:37 -0500 From: Arvind Yadav To: , , , , , , , , CC: Arvind Yadav , Christian Koenig Subject: [PATCH 3/3] Revert "drm/amd/amdgpu: switch on/off vcn power profile mode" Date: Mon, 14 Aug 2023 13:04:38 +0530 Message-ID: <20230814073438.10682-4-Arvind.Yadav@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230814073438.10682-1-Arvind.Yadav@amd.com> References: <20230814073438.10682-1-Arvind.Yadav@amd.com> MIME-Version: 1.0 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: CY4PEPF0000EE32:EE_|DM6PR12MB4332:EE_ X-MS-Office365-Filtering-Correlation-Id: 64df0bf8-f9b5-4a5e-f7db-08db9c9933bc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Csa+q3moajfueVAcbramvbPt0GYmnRvwMoYdy/lYUS/t9Yg3KAlFwx2Jc0o3zApImJXfEfrmoXy2oGsEf794yn5t6+YMEql2lAPoS7xs4HgAiM+xPj4wsQFxC9jLSPNT0R9Kc4aKNkIBrT+tRdgZkh1fy5UnDwcJCY6MSvmIQPEdgzyyXdSMmCrBntDs4RRS2Zzu9KJ50hWqSDleQ2fAiXDbKuz51hce7aqEOpb0nVrNge2lAZ+dmna8laTlyHbesW/7ovFE0fOjHsMfo3X3Jut8MgxtuYqwtw5OnF3AmwCiEpeSYsxPmCYK09QcPyGrM6RiUP0a1I5I6T+X5OH0vqK4WPI9hRW2alcu+EyayvJYB5DMLdTrOlBgfTr/74CKB7tUmW8XWkeTLDUxnB/r2EkMmIRYPCxhP9dJkD8jqQs+eMMvxXOqf499VYgkg5HgMZtCjgWdgc0p2WR5yi8I2dHCL9QWdv8nfaSMhc3Nh1BmXRmy/XCkH8l+xd8CdtlyJnprPtkBSsYfESKpaxLgfZwKlONheTw5d8K6V8qm/beT/STkj0OKSmfvlo4247tUGji+2yR0Aa5/GI2PIP5Q2nxNUIjq2vJsYVm28L1baNa+DJdy8216GYaemUMPFZbrqnY7SIVIr7UmM068WXuKYfhu49etTBlUhz5AY3LtTY9dSJV1isytTgJF+W5MVnfC+hYQS6a3eo++uezFPaCqppssMEj2qZRFXeKQP5WmDPhD5j/Sd3lOq3XCnn/weeW+a4jY1OIhXs8b5h3VlkSAxQ== 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:(13230028)(4636009)(39860400002)(376002)(346002)(136003)(396003)(1800799006)(186006)(82310400008)(451199021)(40470700004)(36840700001)(46966006)(336012)(16526019)(1076003)(26005)(41300700001)(8936002)(70586007)(70206006)(316002)(8676002)(36860700001)(83380400001)(426003)(47076005)(2616005)(7696005)(81166007)(40460700003)(478600001)(40480700001)(110136005)(54906003)(36756003)(86362001)(4326008)(82740400003)(356005)(5660300002)(2906002)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2023 07:36:41.3914 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 64df0bf8-f9b5-4a5e-f7db-08db9c9933bc 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: CY4PEPF0000EE32.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4332 X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774196383320469598 X-GMAIL-MSGID: 1774196383320469598 This reverts commit 5ce71f59bb9bd3d8a09b96afdbc92975cb6dc303. Reason for revert: New amdgpu_smu* 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: Shashank Sharma Cc: Christian Koenig Cc: Alex Deucher 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_struct *work) container_of(work, struct amdgpu_device, vcn.idle_work.work); unsigned int fences = 0, fence[AMDGPU_MAX_VCN_INSTANCES] = {0}; unsigned int i, j; - int r = 0; for (j = 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_struct *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 = 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 = ring->adev; - int r = 0; atomic_inc(&adev->vcn.total_submission_cnt); - if (!cancel_delayed_work_sync(&adev->vcn.idle_work)) { - r = 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); mutex_lock(&adev->vcn.vcn_pg_lock); amdgpu_device_ip_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCN,