Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp13474740ybl; Sun, 29 Dec 2019 12:47:39 -0800 (PST) X-Google-Smtp-Source: APXvYqy4kWAV3h9rQt16kpV6/XIzb13wkiS2Pl/x1vz9q+eCtGlsIS8VgPxqWI7SwMCacjN4TLDj X-Received: by 2002:a05:6830:1487:: with SMTP id s7mr47928163otq.269.1577652459533; Sun, 29 Dec 2019 12:47:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577652459; cv=none; d=google.com; s=arc-20160816; b=ntoik5Blvhql4+5yWp7Y4OLFcmVTtoBapA3VXMPtd2iR17HyMPsVLMPPyOD/FytJx3 0RjjS34XvqlDAUoEQDAd31pdaE6YH5JIHxic13RV4OSUZRDt9UM/HQ/8wT+RgHjfhNbe LYqwQxmQx5aYAPhpoVrDet3IK+ACRviMtf4bO1wrrMpclnSqZVNvyqGn8kuONLkkGelf 6dfhgC4MLlc5tdWqeI7mgPWK4BkcI/gSkj4NKOBw0OvYqpvD87UdrNDVb5MH1+umNcXB JciU51aMOZQS1LSEszwBoPBN9MYkAgOqAc/3h72wAz2H3x/mBIxsrCsj1HriBCeg5+Jz vf+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=3s7munEhbcLjTbssPl2u3HhbJNFU17MuWeE1jAVq/yk=; b=ioO9JHNE1GQ/RLZkgxkYv71uGB56YeimGIdH8Y4PYJBLTmCNzQon6FS/eOAogpfXEG 1XvYBoJqsorHnUgPD4NOsadkKJRD0Y9wdEabjK9Co66OgSSp7LvoQ+HBlNElGxjyaW0H 1svwMleT7vNFp4lHsG9XSPQg/vd3pUqZbt02eAjTL0WqwOfSzNyqXlU6bI2GpATslF74 s5BUSIYi+B2tLa+88Q5xtZT9cCnHBHjCntv43cam1HOcbz4v8/BGf5kNSpcJVk/ZR3Ep Ovjao4ZweS/h39sriipzBqT0crsA0vfHL25ycZDU7X9auxbKBssP3LpTu2kf1lQlLR+9 Qvag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PYFU1U8m; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r10si22375842otn.241.2019.12.29.12.47.28; Sun, 29 Dec 2019 12:47:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PYFU1U8m; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732243AbfL2RwT (ORCPT + 99 others); Sun, 29 Dec 2019 12:52:19 -0500 Received: from mail.kernel.org ([198.145.29.99]:38264 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732227AbfL2RwN (ORCPT ); Sun, 29 Dec 2019 12:52:13 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 90224206DB; Sun, 29 Dec 2019 17:52:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1577641933; bh=/MGZMritNQOwXndeVzohQvOB7mj9LAIEocrmTIbrBfc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PYFU1U8mV/KW0HXLntxbAN3DeyTAlS8EW0K+T3nB+EjSnqC5pppu3rV9Dgog6U+Vx T5UJpn+6FrK3sB4M9E/Gp7d6vNvw1M4xBUpMHlHY71Ul8DlPDT2nxhg5f0yPTj1bhq 9tBZUzFy1JAR+qYKwK4YCyx5/wemeXnMoAOuxmXA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Andrey Grodzovsky , =?UTF-8?q?Christian=20K=C3=B6nig?= , Alex Deucher , Sasha Levin Subject: [PATCH 5.4 271/434] drm/amdgpu: Avoid accidental thread reactivation. Date: Sun, 29 Dec 2019 18:25:24 +0100 Message-Id: <20191229172719.940429557@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191229172702.393141737@linuxfoundation.org> References: <20191229172702.393141737@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andrey Grodzovsky [ Upstream commit a28fda312a9fabdf0e5f5652449d6197c9fb0a90 ] Problem: During GPU reset we call the GPU scheduler to suspend it's thread, those two functions in amdgpu also suspend and resume the sceduler for their needs but this can collide with GPU reset in progress and accidently restart a suspended thread before time. Fix: Serialize with GPU reset. Signed-off-by: Andrey Grodzovsky Reviewed-by: Christian König Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c index 5652cc72ed3a..81842ba8cd75 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c @@ -859,6 +859,9 @@ static int amdgpu_debugfs_test_ib(struct seq_file *m, void *data) struct amdgpu_device *adev = dev->dev_private; int r = 0, i; + /* Avoid accidently unparking the sched thread during GPU reset */ + mutex_lock(&adev->lock_reset); + /* hold on the scheduler */ for (i = 0; i < AMDGPU_MAX_RINGS; i++) { struct amdgpu_ring *ring = adev->rings[i]; @@ -884,6 +887,8 @@ static int amdgpu_debugfs_test_ib(struct seq_file *m, void *data) kthread_unpark(ring->sched.thread); } + mutex_unlock(&adev->lock_reset); + return 0; } @@ -1036,6 +1041,9 @@ static int amdgpu_debugfs_ib_preempt(void *data, u64 val) if (!fences) return -ENOMEM; + /* Avoid accidently unparking the sched thread during GPU reset */ + mutex_lock(&adev->lock_reset); + /* stop the scheduler */ kthread_park(ring->sched.thread); @@ -1075,6 +1083,8 @@ failure: /* restart the scheduler */ kthread_unpark(ring->sched.thread); + mutex_unlock(&adev->lock_reset); + ttm_bo_unlock_delayed_workqueue(&adev->mman.bdev, resched); if (fences) -- 2.20.1