From mboxrd@z Thu Jan 1 00:00:00 1970 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CC04DC46CD2 for ; Tue, 9 Jan 2024 17:57:34 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 61DB710E0A7; Tue, 9 Jan 2024 17:57:34 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 953EA10E0A7 for ; Tue, 9 Jan 2024 17:57:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1704823052; x=1736359052; h=date:from:to:cc:subject:message-id:references: in-reply-to:mime-version; bh=/G9+H8asj8vvCTlKVM2oaguzqs0sDaSsjMXSrXfrNR8=; b=WAkH47mYnyS8OmT4SGiAb33SLxd6d1XIMCP9fmt/mXXl3Kf5UjhHBxTc 4WCSUpXgbAQBpwe+AfutdpQh1K7vqPGwhh2TA2YD66njlQQUSouwZDwng Iqxn0WPrDFqz1neQxN3h/skohBlPdCdxYPj+FyBXhwpPCUIqDjXLgGeFN FnAzqi2DBtu7MjV4E2AimBJV4UUevTN0DPxOz/omCmUXpiJtEm6Gbve49 f+ZPLWfwCKBi9X+RuqnGu6NCGZ0h2FBwSu69dG+B4d0v/jLIVFSfyIMPe PO7tAk3ypXKmI5bZF057Wv6M52ipfodMp4+h1ZNT/L6xLeAfIVzmQ2aK9 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10947"; a="464675183" X-IronPort-AV: E=Sophos;i="6.04,183,1695711600"; d="scan'208";a="464675183" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jan 2024 09:57:32 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10947"; a="900841502" X-IronPort-AV: E=Sophos;i="6.04,183,1695711600"; d="scan'208";a="900841502" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 09 Jan 2024 09:57:31 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 9 Jan 2024 09:57:31 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 9 Jan 2024 09:57:31 -0800 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.41) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 9 Jan 2024 09:57:30 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qva7btG6+z3sidI87+UYBnJ9pmUjW3bwyVJasNKGyi6cuaxFV6Rde/paKKfrk++9uitFS4Cwr84bBRfZXvLoAaQ3wMAtaEtJLMKdv95wG77KL2XT3mN1W7Cjr9TgD6AN/LkfB+EurV/aKU5J86vrp2ZuHZUggPy2h+Hs/GbGFNGFZnBh4VXvGoZq0RCVpLxmciw6Cllheg09hCeucbV+Yy4FOBQE5yVr1Du0VIrFxfRZMtBGymNUVPG0dd6E7ssLZLQsC308dl/F/+j03SAIcvFcYWe0LU5LXbpuLfs1dy/cMewMobnDKGxVvHjmbFZrLO6qHMnhsKjeuM2lB1yNwA== 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=bSmqkeqIFK/1816o4LnizzgGA3inXGrceXmt5RBi6yE=; b=ZCWZstgkkQxK8Ofdkl73WwzcfcNPvFX5NWm9oGatP0sPTLt01wuAvtcgJ+D9W+m69dgt4dOSyfJ4Hv6kswTq4/cUMe76wz9LjvS+rr8SFvmL7qhlO3djTCYK1czifBqsnmHokXw6NfT0Hy2zapKuUsQk1tEZ1xsiWszhr32etenCN57scqXDlnu3JWIusptazyk3+ix3FZEpS8t3dK+7mx6VzDNI9djrS3VbiXRpwWdgjM9dChG20sWDkXZQMCusPW1d3P1DqRWY2jyqPSEpEh83OGC9PBfdba1WqCubB21mZxACFwnsqqqb3fGLV+WcOZ452uAMxA4ZaK9ANQ0sBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from MN0PR11MB6059.namprd11.prod.outlook.com (2603:10b6:208:377::9) by DS7PR11MB6016.namprd11.prod.outlook.com (2603:10b6:8:75::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.23; Tue, 9 Jan 2024 17:57:27 +0000 Received: from MN0PR11MB6059.namprd11.prod.outlook.com ([fe80::a7f1:384c:5d93:1d1d]) by MN0PR11MB6059.namprd11.prod.outlook.com ([fe80::a7f1:384c:5d93:1d1d%4]) with mapi id 15.20.7159.020; Tue, 9 Jan 2024 17:57:27 +0000 Date: Tue, 9 Jan 2024 12:57:22 -0500 From: Rodrigo Vivi To: "Gupta, Anshuman" Subject: Re: [RFC 07/20] drm/xe: Runtime PM wake on every IOCTL Message-ID: References: <20231228021232.2366249-1-rodrigo.vivi@intel.com> <20231228021232.2366249-8-rodrigo.vivi@intel.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: BYAPR11CA0084.namprd11.prod.outlook.com (2603:10b6:a03:f4::25) To MN0PR11MB6059.namprd11.prod.outlook.com (2603:10b6:208:377::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN0PR11MB6059:EE_|DS7PR11MB6016:EE_ X-MS-Office365-Filtering-Correlation-Id: f47d07e3-1154-417b-25da-08dc113c70f7 X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UOvsdXw6FZ7z35+MVXe/MxixHtQCwtk5wJO0/TxJCFHFCYTVYDvuSeBxBJNf/OkHJaK/DCXmUtgAhvExeONE8cuzDQwoUhBDu3JlH6CrL29Y+DyMdGmVJoOtKoCo5yq3X/pjunw5nCWHQzFMTqGl2uHYMvcImJDHLaPPPYTsFZeWvmVLrAkNi0TLjckCvh9iZ7ILxhw2n/KQ2Ir+eAhtiPvfzK8qje3wSN7BJktHj4ju9LJgvbm9CVSxw4/we1dpyIblNl/7REZLlC9p8ZiMigUUlCYwdVO35+6Gqt1Ri/e++5gU29yj/lrNlf9X1mRAqkVtzUsOU+lBtrNVybKJfwOIQ+yRxreJFNT/WjDbLlQxahhDvPr/xFPygu9sg1B80t1y3VvPRMmJrQ0A7JuwGRlP/+oLDrC2ItnHAZGcq8YvJ5+MYb5qV7Vgwaf0hkSGMgyBPYOk7YuG9vwR+Ate5OV1D4IMkXrt0687yUdcWezLB6sQZDU8ny40T8YI6WcyMHUHTLWEf/FOrp4fEjGINZDWlI2P/wTEvJaz79gEZKXZvMAkqCwHoRXKKRQgkla5 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN0PR11MB6059.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(346002)(136003)(39860400002)(366004)(376002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(83380400001)(26005)(2616005)(107886003)(38100700002)(8936002)(4326008)(6862004)(8676002)(5660300002)(44832011)(2906002)(478600001)(37006003)(6506007)(54906003)(6512007)(6666004)(66946007)(66476007)(6486002)(6636002)(66556008)(53546011)(316002)(41300700001)(36756003)(82960400001)(86362001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TgheKgyZiHSK7RwNUbomNNprBLTYeVli1a61oN4GRQjxiZimTdbCmpBpjiJS?= =?us-ascii?Q?zDBHe0SszfCDsR6l2Fj4hzRTzKtHpi+eZNzZDH9h+I57nnoFuW50Q4ybuVBI?= =?us-ascii?Q?IAsOrYnTgZ/BhD+ZKslSCIWnxv3hAjB0UT1vxlOs7fK6T5YTtAk2yMxBmbDP?= =?us-ascii?Q?dr/g94OgDR3dOjFxZ9oyvkv7thk9wTP+LkAySrFdSFxVUtwcGE1WHXVy4ULw?= =?us-ascii?Q?mSXn+HNCaEquY53IYMI9qt+DdtIMfrb7In+/ei92xd1dEsFvpV6K11ovEeuG?= =?us-ascii?Q?Q1uK3NkUXSDG97VI7Bi++L21g+XBf5qHrVbb5k+6oDYEFpq9dCtvkf5q/SCJ?= =?us-ascii?Q?3r5qy9Ip/zoKc2sV+kwJ90MEPlqE1Q9C2k+KZuf99Rab4V2lR8/yZr8VVYN4?= =?us-ascii?Q?ht81z9uGlIKvNetxbSRO3jZBrTMteYAkzByebqGex3nHAbDmeV9TspxbhVyq?= =?us-ascii?Q?5ZVxUeG+L1Doj5Bv66q1vIYh0rlUTuOCScF+MSdICYhph/wyjPoJ+wjfxRPo?= =?us-ascii?Q?k04ZOVvdXR/3jxTchlanrkrjLQgEhn8Ff7Qg+tT83IAJXKdVWg/IL9zpQBgG?= =?us-ascii?Q?o+AfijvHr0j62NPHvXYeuMTxlntsvg1L9bWIGa9TZiyGcR3NwFJLGFcS70wg?= =?us-ascii?Q?+Kd+6NvTh+PZyOLOVwxZS49HP9MhhG8P7p48A4QHma25ap5EuU2QbJ6UVVda?= =?us-ascii?Q?9RIo5sHK5V0M/vWGHNE08KdOv/U7sHXY9xTFoizg/1Rg1bT+F+6Q9orZfT3m?= =?us-ascii?Q?WQPVneDfSsi+hPtKK7pAKKmS4Z1R2hIp0FfBxdjtRFDm6zs7M7wuzoNBoLBQ?= =?us-ascii?Q?UYafchXA0V0n5DSBIBbiJwTlYfRhxD4+GlLrkvGi/arXXOUFxsac8rGDciHV?= =?us-ascii?Q?gZGDRHWG6AQjZrPTBBIREXaRsvzmIuZcgBrKD1HxwTRaKCkxJMWJPTvKw42O?= =?us-ascii?Q?lJfVvydwPWogckyu/lx8+41KXBN6llS14TMjmNDDPnXN0zVVPe0XsoQeZ8DI?= =?us-ascii?Q?3okMgG3PCzcyBS7EFYXA+wYKp7HnFr8NFHm3yEsqIqRd22JsvzanehJvBDZi?= =?us-ascii?Q?qiYvrv2nSmhZEaQ/s5TzGKnNtcKtCL6/RKz3yV6YnRC4v45ng61iHyx0y3oz?= =?us-ascii?Q?aScCmioQ6DxtEDYOth174MjCsFD4mNzJxze3s2awOCOvo9wWtP4DmVe8KN5I?= =?us-ascii?Q?aA6tl0ZL1FfU3md9wyp88mgkzQ1fax04Kp7y+RSBuWincSPWIjPyYZBg1/Nc?= =?us-ascii?Q?1K9YLcw693leqv3eS2r1wmvlBwkIil9XKI8EXJ64ilfZVSxWePu2ucyDiCEg?= =?us-ascii?Q?DSqPK8qcqXD7NjUfKAJ8eKaUEayu/BfRTtWXFPYu1lvsITpaOfrtV3sWYPDQ?= =?us-ascii?Q?/B8axQgnu/oMSPgZUH/+W9DJiHk02uXlFkcO8uTL0B0U6Xsms0MzcM0nU6se?= =?us-ascii?Q?YK32kVa6A+bjeOswcxOG9oymdqyecXqCJuxNa3esXzRrdJMkB0XOe6+xssHT?= =?us-ascii?Q?Vs0PAIxvCtiacAgW5bHomObDM8D9YX9nrTz3s0FLI28I8k1+Fr2UV/6t6itV?= =?us-ascii?Q?0pK7gOtfG3sRYDms/OOXsm2p4/vilNnZ5CucEl5iJ+NDJVv7IENYRtY8II9i?= =?us-ascii?Q?Zw=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: f47d07e3-1154-417b-25da-08dc113c70f7 X-MS-Exchange-CrossTenant-AuthSource: MN0PR11MB6059.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2024 17:57:27.4938 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: d0xERJRJ6EKa1hpHfRvEcAua8+ij1evzFlx8xUvCBKCZNE5YrRDuqdbjAniUmbI1xg69hpssvWEIDGhvE0kmvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB6016 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Deak, Imre" , "intel-xe@lists.freedesktop.org" Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" On Tue, Jan 02, 2024 at 06:30:31AM -0500, Gupta, Anshuman wrote: > > > > -----Original Message----- > > From: Intel-xe On Behalf Of Rodrigo > > Vivi > > Sent: Thursday, December 28, 2023 7:42 AM > > To: intel-xe@lists.freedesktop.org > > Cc: Vivi, Rodrigo > > Subject: [RFC 07/20] drm/xe: Runtime PM wake on every IOCTL > > > > Let's ensure our PCI device is awaken on every IOCTL entry. > > Let's increase the runtime_pm protection and start moving that to the outer > > bounds. > IMO we need to decouple dc9 from runtime suspend as prev patch " [RFC,05/20] drm/xe: Prepare display for D3Cold" > added that. Let dc9 to be enable when all display are off. Otherwise blocking runtime PM on every ioctl will also block > DC9 unnecessary. Good catch. We need to decouple that somehow. I will take a look into that later. > Thanks, > Anshuman Gupta. > > > > Signed-off-by: Rodrigo Vivi > > --- > > drivers/gpu/drm/xe/xe_device.c | 32 > > ++++++++++++++++++++++++++++++-- > > drivers/gpu/drm/xe/xe_pm.c | 15 +++++++++++++++ > > drivers/gpu/drm/xe/xe_pm.h | 1 + > > 3 files changed, 46 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c > > index dc3721bb37b1e..ee9b6612eec43 100644 > > --- a/drivers/gpu/drm/xe/xe_device.c > > +++ b/drivers/gpu/drm/xe/xe_device.c > > @@ -140,15 +140,43 @@ static const struct drm_ioctl_desc xe_ioctls[] = { > > DRM_RENDER_ALLOW), > > }; > > > > +static long xe_drm_ioctl(struct file *file, unsigned int cmd, unsigned > > +long arg) { > > + struct drm_file *file_priv = file->private_data; > > + struct xe_device *xe = to_xe_device(file_priv->minor->dev); > > + long ret; > > + > > + ret = xe_pm_runtime_get_sync(xe); > > + if (ret >= 0) > > + ret = drm_ioctl(file, cmd, arg); > > + xe_pm_runtime_put(xe); > > + > > + return ret; > > +} > > + > > +static long xe_drm_compat_ioctl(struct file *file, unsigned int cmd, > > +unsigned long arg) { > > + struct drm_file *file_priv = file->private_data; > > + struct xe_device *xe = to_xe_device(file_priv->minor->dev); > > + long ret; > > + > > + ret = xe_pm_runtime_get_sync(xe); > > + if (ret >= 0) > > + ret = drm_compat_ioctl(file, cmd, arg); > > + xe_pm_runtime_put(xe); > > + > > + return ret; > > +} > > + > > static const struct file_operations xe_driver_fops = { > > .owner = THIS_MODULE, > > .open = drm_open, > > .release = drm_release_noglobal, > > - .unlocked_ioctl = drm_ioctl, > > + .unlocked_ioctl = xe_drm_ioctl, > > .mmap = drm_gem_mmap, > > .poll = drm_poll, > > .read = drm_read, > > - .compat_ioctl = drm_compat_ioctl, > > + .compat_ioctl = xe_drm_compat_ioctl, > > .llseek = noop_llseek, > > #ifdef CONFIG_PROC_FS > > .show_fdinfo = drm_show_fdinfo, > > diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c index > > 45114e4e76a5a..f599707413f18 100644 > > --- a/drivers/gpu/drm/xe/xe_pm.c > > +++ b/drivers/gpu/drm/xe/xe_pm.c > > @@ -411,6 +411,21 @@ void xe_pm_runtime_put(struct xe_device *xe) > > pm_runtime_put(xe->drm.dev); > > } > > > > +/** > > + * xe_pm_runtime_get_sync - Get a runtime_pm reference and resume > > +synchronously > > + * @xe: xe device instance > > + * > > + * Returns: Any number grater than or equal to 0 for success, negative > > +error > > + * code otherwise. > > + */ > > +int xe_pm_runtime_get_sync(struct xe_device *xe) { > > + if (WARN_ON(xe_pm_read_callback_task(xe) == current)) > > + return -ELOOP; > > + > > + return pm_runtime_get_sync(xe->drm.dev); } > > + > > /** > > * xe_pm_runtime_get_if_active - Get a runtime_pm reference if device active > > * @xe: xe device instance > > diff --git a/drivers/gpu/drm/xe/xe_pm.h b/drivers/gpu/drm/xe/xe_pm.h > > index 67a9bf3dd379b..d0e6011a80688 100644 > > --- a/drivers/gpu/drm/xe/xe_pm.h > > +++ b/drivers/gpu/drm/xe/xe_pm.h > > @@ -26,6 +26,7 @@ bool xe_pm_runtime_suspended(struct xe_device *xe); > > int xe_pm_runtime_suspend(struct xe_device *xe); int > > xe_pm_runtime_resume(struct xe_device *xe); void > > xe_pm_runtime_get(struct xe_device *xe); > > +int xe_pm_runtime_get_sync(struct xe_device *xe); > > void xe_pm_runtime_put(struct xe_device *xe); int > > xe_pm_runtime_get_if_active(struct xe_device *xe); bool > > xe_pm_runtime_get_if_in_use(struct xe_device *xe); > > -- > > 2.43.0 >