From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1046526A0A7 for ; Sat, 25 Jul 2026 18:59:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785005994; cv=none; b=BJ2xSI8KCB4QVp0rozWdINwUAOLXB9Y5BAZxsUxLZU0YwxdBAHtsTBz9Uw2gnY8TG9sPMqs1w7icg1vR/CDvM6z2Grp9h5WohYVoWqf5yxXaM07aW4FS5K5xF/gK6USsjZGiVbpU8H9PtEkpg+d5D4+fg6YxlKUOdqkJlo4ptiw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785005994; c=relaxed/simple; bh=/SfETzo8LntEIvFlEndjFQZpeKGnTpixGEwMIys40go=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LAEde2d4BbuHGD9B4jxdxTjZsihsvgWGZDt348/aJ9b/cbmIXuZu+Ulz5+vJ+uoRZXOgCCFUfEH7thQ+KE7668fsCHElkSNvAo/r+RRfVOiRafhHmOzpouRd1556RK5tY1FcniFMp83cIot72sE3c6Nza2qkORqDxsbzopAVgss= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ne1We0NI; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ne1We0NI" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4954c08a7c8so2142125e9.3 for ; Sat, 25 Jul 2026 11:59:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785005991; x=1785610791; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=tM1JtjrYfwKl1JR6ayB3jShTzcrA3cap4jFHq8xO7i8=; b=Ne1We0NI3ykrjuYa+UADZkzgZnpGcxfD05d0UK/Pd4ZDaAuMT61wiAJaVhQDOst3je EbvAqB8oM8frMy7KHT1xWYwzyY0mGdUjk8XWV20POssoZUvWzy959zXFCHkl0TjtlyEY gZ0O9uFFKOAGi05URg2S6vD2p0WUc4DQX56PL/oqm2MWZomAzeN4V4iocLsP8Mhmwcq9 6og9AEcKlmIO66mzfdWP3+GNy3eTS9yRh4ZmUm3bGZOhTA/7Rhb9AJ8JATE0es89mbf+ YV8q80xVA+t7QCnkllJhcTkfGlGTltQN1KU4KGWrBR8VJXufF8/uOAwauhT9q2nEjUST mWYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785005991; x=1785610791; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=tM1JtjrYfwKl1JR6ayB3jShTzcrA3cap4jFHq8xO7i8=; b=jpzipTLS0Vq50X9eyDSVvZm+XuG634EL+FSN3OK3WiTc2IV3XndFjq5lrEhEzxKq6l 7UCIPGjXXGGatv77gD9xrrI1BeMjPOpHv2yBVposymd39uW5SaMGDgl5RAJ7k3WR/Bm3 545VgnrfJ39KDsZZ4+75Wilip1wEY8OqLxSNyRGz8pA6VKPPVzG7o+WKJUwl1/+aoyik lP6n1+JThxooGzVRw/Qqe1EzDyHYegEZP2jzzaw2jOyBL90kPhgpILW3p6P2vdIrhmDA RAN5aD1eZkr8iUFkptbNowtGuoKmaVCw+QHlqjeht20PqarIrXOJvzv3zF+DzsPtrdyw WiZQ== X-Forwarded-Encrypted: i=1; AHgh+RrBj8P0/aEA/YFN5Ekl/kh5uHNl2EJvnqkBvsf1BqWqXEFSnz9Sjic/9JJV1gV+GnXFN2nK8iL+43JpWSA=@vger.kernel.org X-Gm-Message-State: AOJu0YxLteFMZuX/TXuuR6/iP2zyK7XoaBBpyMis54OCIc1i9QIaC4tq twHUQQvWLj1MxoDwpvlcQjVdVsdEEiOvxnbzjHRAmwSBeLPzK/Ve+cij X-Gm-Gg: AR+sD105xGIPPJw/6a1jAvCSOlF9Z2C7U8DPIzH2U+Y+xUWaxqXPnNotrA+IDI5M6ty dWQEEhokNUm3Zmp++btyxF97kVGE2bSdQos7iqhykbA71u6XI6IYU1ct8nefusrWd9oc98oDH47 2mtzhUIdtMOsagG9RMB7Anqt1FmHHybY32Dnk9etNYTDSO2n5II6B6PM/Kg30yT5t9WfE5co2lt x0LPhp4Mh3qyZ+IW1Ic9LoQKXUwPgsxcHPYDspvDYa3KE4v2paW2qvBRtAL7aZNEC5qsI2dtl4w S1fzWqYpzivOJrclSuwE0xfVoDVZOARCdmrQRRL19/2pfEEWBGANr4wgtUb5zWQjwLhJ542Hf4f GFjVlU53dq11L3Fvw1LkHDFGW7FREyFvQJtEVnKMc7pALwBjnl6kbK6Er3Tzm07wLF7v2Ab6vAW sEbSZNTLAgF67HmcNPntYQjEfRfHLmlkFxlmxHoCU+wF2IvtgECV3v7AEKvuTFA223+Q== X-Received: by 2002:a05:600c:3b0e:b0:495:4044:11fc with SMTP id 5b1f17b1804b1-496b5754493mr21338865e9.7.1785005990958; Sat, 25 Jul 2026 11:59:50 -0700 (PDT) Received: from Neo.taile6b6ba.ts.net (ip-109-193-028-127.um39.pools.vodafone-ip.de. [109.193.28.127]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4957f9928fdsm120474785e9.1.2026.07.25.11.59.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Jul 2026 11:59:50 -0700 (PDT) From: Marek Czernohous X-Google-Original-From: Marek Czernohous To: nouveau@lists.freedesktop.org Cc: Lyude Paul , Danilo Krummrich , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 0/2] drm/nouveau: nv04 FIFO cleanup + recovery for Tesla Date: Sat, 25 Jul 2026 20:59:48 +0200 Message-ID: <20260725185948.219510-1-marek@czernohous.de> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260513175014.96599-1-marek@czernohous.de> References: <20260513175014.96599-1-marek@czernohous.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Please do not apply this series. Since sending it I have been running it on the reference machine and found three defects in it, one of which is a guaranteed crash on exactly the hardware it targets. 1) Patch 2/2 calls nvkm_chan_error(chan, true). nv50 and g84 channels have no .preempt callback and the call site in nvkm_chan_error() is not guarded, so this dereferences a NULL function pointer under chan->lock in interrupt context. It fired here on 2026-06-02 on the first CACHE_ERROR after a VRAM stress test: fifo: CACHE_ERROR - ch 2 [labwc[3950]] subc 3 mthd 0f00 data 0000007b nv04_fifo_intr_cache_error+0x111 -> nv04_fifo_recover+0x80 -> nvkm_chan_error+0x99 RIP: 0010:0x0 The oops escalated to a panic and the watchdog reset the machine. 2) Killing the channel on the first fault is wrong. There is a single PFIFO cache puller and on a fault it names the channel that is resident, not necessarily the one that caused it, as nv04_fifo_pause() already documents. Here this killed the Wayland compositor twice for faults it did not cause. 3) On Tesla a killed channel is not survivable at all. The channel-killed event is only subscribed for FERMI_CHANNEL_GPFIFO and newer, so nouveau_fence_context_kill() never runs and the pending fences of the killed channel are never signalled. The display commit tail and the TTM delayed-delete workers then wait forever, uninterruptibly. The series as posted therefore trades a recoverable fault for an unrecoverable hang. v2 fixes all three and adds a prerequisite patch for the event subscription. It is written and rebased, but I am not sending it yet: the new escalation logic has only hours of runtime here and no fault has hit it so far. I would rather restore the debugfs fault injector I used for the original validation and demonstrate the corrected paths with injected faults than post a second series that is short on evidence. That is what I am doing next. Lyude: v2 will carry the Assisted-by trailers, as offered in my reply to your question in May. Sorry for the noise, and thanks for not having applied it yet. Marek