Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3698474pxv; Mon, 26 Jul 2021 09:39:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz0KbF5ohD26ZpM0vo1Fn7ONjT/D4EqW6b6ETvSNswlbOpmSQsxiPsZAui+J9MauLCS44qD X-Received: by 2002:aa7:dc18:: with SMTP id b24mr22735407edu.343.1627317511201; Mon, 26 Jul 2021 09:38:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627317511; cv=none; d=google.com; s=arc-20160816; b=wYITG5hi2CocEwUL6eYT2H1dspVS52Rga/k1fP1vqBVEeh6K3X7V1kYwyCpvZIqDzl h4OLoW70r5YPwMNanIOiGopFsXTDx8lk2iAWAKPiGgahk1kd1u5lauC6/p2At63Zu+DX cx0uDsJJS2ItwmZEQjAtkX2RFDS5MZ9yR8o+oyj2AL174/dB5ZYlklrsb9LfDseQYtcw tcBuMVBilEgoKOLqF5nUcM3bzAqhgDP1PUWoafEuhyoAYPR54bGrrZuZmoVJq0MsJ+ji y4Scw/V2WZo7mB4O3S4iapwCpAS2hg4OAjz3Wf4ILUZVVXIsy+nIHeQ45KqW1lVOHtOs ihog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=roz9olt0TxXtEFa430fo9C9Ya0cVH4mWkjAI6KuYFGc=; b=jRDZ02wkpe71Qp04+8iCZmBCL7sCdElC3N1xdkDFUTU8zYZxHU3TCNbYVCCtajypMm xJI28YIhSIDllctbQ4M08S8Ti4lPIP0BOem/fz3e+GfkJLcziXADdUiFEqfc2QBVyHjV NlAw3WWx4xHvwSYM7c/yx9eY9HpFV4Y823P9zaEPH1rUBHsWM8c+7uLkiyRJsm+2mZhA jpgu+EENvxLNDlweq27jx1+zt7GCrepglBvogwoiggJi/87sbMPMO1fGTnObGmDUMfA1 NrPg/ZUxLpA1DCvEfk7BRzcN2HOLDx8J9hUPzNz0mYe9gARYt9p1tFH0JIVUgI2Otgwj BHOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZDXZMJlG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l1si402629ejo.68.2021.07.26.09.38.08; Mon, 26 Jul 2021 09:38:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZDXZMJlG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240647AbhGZPzy (ORCPT + 99 others); Mon, 26 Jul 2021 11:55:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:52722 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235328AbhGZPfV (ORCPT ); Mon, 26 Jul 2021 11:35:21 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8189660FF3; Mon, 26 Jul 2021 16:15:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1627316150; bh=NnqGcyb87Eoqj4pubuzy8qphkivV2as+9hrfJ1OyJAQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZDXZMJlGn0o7TuGziW3f5W0Rv/JoCVNty5sqXSRoIeWV0cxUt955SkESPd3FsJvsu lkq8KkIyxIcHM/FZ4uGNM3Sw8tjvvDAYncXiYuC//IgJs2sjfbOGpBeumZjTQtKSJf 5NosYLywUOzAp8Q4wHkuUo+J6Jj9tEQdWuRcPtEs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jason Ekstrand , Marcin Slusarz , Jason Ekstrand , Daniel Vetter , Jon Bloomfield , Rodrigo Vivi Subject: [PATCH 5.13 208/223] Revert "drm/i915: Propagate errors on awaiting already signaled fences" Date: Mon, 26 Jul 2021 17:40:00 +0200 Message-Id: <20210726153852.994949126@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210726153846.245305071@linuxfoundation.org> References: <20210726153846.245305071@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jason Ekstrand commit 3761baae908a7b5012be08d70fa553cc2eb82305 upstream. This reverts commit 9e31c1fe45d555a948ff66f1f0e3fe1f83ca63f7. Ever since that commit, we've been having issues where a hang in one client can propagate to another. In particular, a hang in an app can propagate to the X server which causes the whole desktop to lock up. Error propagation along fences sound like a good idea, but as your bug shows, surprising consequences, since propagating errors across security boundaries is not a good thing. What we do have is track the hangs on the ctx, and report information to userspace using RESET_STATS. That's how arb_robustness works. Also, if my understanding is still correct, the EIO from execbuf is when your context is banned (because not recoverable or too many hangs). And in all these cases it's up to userspace to figure out what is all impacted and should be reported to the application, that's not on the kernel to guess and automatically propagate. What's more, we're also building more features on top of ctx error reporting with RESET_STATS ioctl: Encrypted buffers use the same, and the userspace fence wait also relies on that mechanism. So it is the path going forward for reporting gpu hangs and resets to userspace. So all together that's why I think we should just bury this idea again as not quite the direction we want to go to, hence why I think the revert is the right option here. For backporters: Please note that you _must_ have a backport of https://lore.kernel.org/dri-devel/20210602164149.391653-2-jason@jlekstrand.net/ for otherwise backporting just this patch opens up a security bug. v2: Augment commit message. Also restore Jason's sob that I accidentally lost. v3: Add a note for backporters Signed-off-by: Jason Ekstrand Reported-by: Marcin Slusarz Cc: # v5.6+ Cc: Jason Ekstrand Cc: Marcin Slusarz Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3080 Fixes: 9e31c1fe45d5 ("drm/i915: Propagate errors on awaiting already signaled fences") Acked-by: Daniel Vetter Reviewed-by: Jon Bloomfield Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20210714193419.1459723-3-jason@jlekstrand.net (cherry picked from commit 93a2711cddd5760e2f0f901817d71c93183c3b87) Signed-off-by: Rodrigo Vivi Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/i915/i915_request.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) --- a/drivers/gpu/drm/i915/i915_request.c +++ b/drivers/gpu/drm/i915/i915_request.c @@ -1426,10 +1426,8 @@ i915_request_await_execution(struct i915 do { fence = *child++; - if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) { - i915_sw_fence_set_error_once(&rq->submit, fence->error); + if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) continue; - } if (fence->context == rq->fence.context) continue; @@ -1527,10 +1525,8 @@ i915_request_await_dma_fence(struct i915 do { fence = *child++; - if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) { - i915_sw_fence_set_error_once(&rq->submit, fence->error); + if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) continue; - } /* * Requests on the same timeline are explicitly ordered, along