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 X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D2061C433DB for ; Thu, 14 Jan 2021 15:46:20 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 78E7E23A9F for ; Thu, 14 Jan 2021 15:46:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 78E7E23A9F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=vmware.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D833289A14; Thu, 14 Jan 2021 15:46:19 +0000 (UTC) X-Greylist: delayed 905 seconds by postgrey-1.36 at gabe; Thu, 14 Jan 2021 15:46:18 UTC Received: from EX13-EDG-OU-002.vmware.com (ex13-edg-ou-002.vmware.com [208.91.0.190]) by gabe.freedesktop.org (Postfix) with ESMTPS id B84D189A14 for ; Thu, 14 Jan 2021 15:46:18 +0000 (UTC) Received: from sc9-mailhost3.vmware.com (10.113.161.73) by EX13-EDG-OU-002.vmware.com (10.113.208.156) with Microsoft SMTP Server id 15.0.1156.6; Thu, 14 Jan 2021 07:31:07 -0800 Received: from [0.0.0.0] (oddjob.vmware.com [10.253.4.32]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id CA2AF20539; Thu, 14 Jan 2021 07:31:10 -0800 (PST) Subject: Re: [PATCH 1/3] drm/vmwgfx: Drop svga_lock To: Daniel Vetter , DRI Development References: <20201211162942.3399050-1-daniel.vetter@ffwll.ch> From: Roland Scheidegger Message-ID: Date: Thu, 14 Jan 2021 16:31:09 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.5.0 MIME-Version: 1.0 In-Reply-To: Content-Language: de-DE Received-SPF: None (EX13-EDG-OU-002.vmware.com: sroland@vmware.com does not designate permitted sender hosts) X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , VMware Graphics Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi, looking at it, seems alright. Not sure why the lock was supposedly needed, maybe it was at some point (it seems like all usage of this lock was introduced way back in 2015, commit 153b3d5b037ee). For the series: Reviewed-by: Roland Scheidegger Roland Am 12.01.21 um 09:49 schrieb Daniel Vetter: > Hi Roland, > > Hopefully you had a nice start into the new year! Ping for some > review/testing on this series. > > Thanks, Daniel > > On Fri, Dec 11, 2020 at 5:29 PM Daniel Vetter wrote: >> >> This isn't actually protecting anything becuase: >> - when running, ttm_resource_manager->use_type is protected through >> vmw_private->reservation_semaphore against concurrent execbuf or >> well anything else that might evict or reserve buffers >> - during suspend/resume there's nothing else running, hence >> vmw_pm_freeze and vmw_pm_restore do not need to take the same lock. >> - this also holds for the SVGA_REG_ENABLE register write >> >> Hence it is safe to just remove that spinlock. >> >> Signed-off-by: Daniel Vetter >> Cc: VMware Graphics >> Cc: Roland Scheidegger >> --- >> drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 10 +--------- >> drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 1 - >> 2 files changed, 1 insertion(+), 10 deletions(-) >> >> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> index 0008be02d31c..204f7a1830f0 100644 >> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c >> @@ -672,7 +672,6 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) >> spin_lock_init(&dev_priv->hw_lock); >> spin_lock_init(&dev_priv->waiter_lock); >> spin_lock_init(&dev_priv->cap_lock); >> - spin_lock_init(&dev_priv->svga_lock); >> spin_lock_init(&dev_priv->cursor_lock); >> >> for (i = vmw_res_context; i < vmw_res_max; ++i) { >> @@ -1189,12 +1188,10 @@ static void __vmw_svga_enable(struct vmw_private *dev_priv) >> { >> struct ttm_resource_manager *man = ttm_manager_type(&dev_priv->bdev, TTM_PL_VRAM); >> >> - spin_lock(&dev_priv->svga_lock); >> if (!ttm_resource_manager_used(man)) { >> vmw_write(dev_priv, SVGA_REG_ENABLE, SVGA_REG_ENABLE); >> ttm_resource_manager_set_used(man, true); >> } >> - spin_unlock(&dev_priv->svga_lock); >> } >> >> /** >> @@ -1220,14 +1217,12 @@ static void __vmw_svga_disable(struct vmw_private *dev_priv) >> { >> struct ttm_resource_manager *man = ttm_manager_type(&dev_priv->bdev, TTM_PL_VRAM); >> >> - spin_lock(&dev_priv->svga_lock); >> if (ttm_resource_manager_used(man)) { >> ttm_resource_manager_set_used(man, false); >> vmw_write(dev_priv, SVGA_REG_ENABLE, >> SVGA_REG_ENABLE_HIDE | >> SVGA_REG_ENABLE_ENABLE); >> } >> - spin_unlock(&dev_priv->svga_lock); >> } >> >> /** >> @@ -1254,17 +1249,14 @@ void vmw_svga_disable(struct vmw_private *dev_priv) >> */ >> vmw_kms_lost_device(dev_priv->dev); >> ttm_write_lock(&dev_priv->reservation_sem, false); >> - spin_lock(&dev_priv->svga_lock); >> if (ttm_resource_manager_used(man)) { >> ttm_resource_manager_set_used(man, false); >> - spin_unlock(&dev_priv->svga_lock); >> if (ttm_resource_manager_evict_all(&dev_priv->bdev, man)) >> DRM_ERROR("Failed evicting VRAM buffers.\n"); >> vmw_write(dev_priv, SVGA_REG_ENABLE, >> SVGA_REG_ENABLE_HIDE | >> SVGA_REG_ENABLE_ENABLE); >> - } else >> - spin_unlock(&dev_priv->svga_lock); >> + } >> ttm_write_unlock(&dev_priv->reservation_sem); >> } >> >> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h >> index 5b9a28157dd3..715f2bfee08a 100644 >> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h >> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h >> @@ -596,7 +596,6 @@ struct vmw_private { >> >> bool stealth; >> bool enable_fb; >> - spinlock_t svga_lock; >> >> /** >> * PM management. >> -- >> 2.29.2 >> > > _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel