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 88897E63F3F for ; Mon, 16 Feb 2026 08:50:37 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B614C10E06F; Mon, 16 Feb 2026 08:50:36 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=collabora.com header.i=@collabora.com header.b="DlWOHPSU"; dkim-atps=neutral Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4E98D10E06F for ; Mon, 16 Feb 2026 08:50:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1771231833; bh=qRLnzj6lOk+KX82B/qyVocsbBtL9J5l2RuuGoyz6klY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=DlWOHPSUDQBu66c/1N/B4GksUwvyD64grWiY15rEDHpKrLGKgg3v5l6uUkgNfsIhI ZCWUJztPQ0aSQSC2/9/e8oETGwhs7vEm5cn0677zFiiClrB60QeUwA5gHPx7PIb8sf lFNehCj8rM7QueBUhNCKZWfANSKRtvxDosj/3Xm/YrdBF/KprLhLdFoSFCSknJlX4T KQI0stf+h6gRwUSuDdKr7bXGlFgei+413+ziw/nr7gNwGtM9IZ5Mt/+AzToy2ldMYQ oYB/NzCaCl6ilVFW9fWEIj8PkZlGPmPVg52fiLAAVGOxVn6fNveEmNkv95bN3tjsVC ZjRdK0AfAEWYA== Received: from fedora (unknown [IPv6:2a01:e0a:2c:6930:d919:a6e:5ea1:8a9f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: bbrezillon) by bali.collaboradmins.com (Postfix) with ESMTPSA id B623F17E1406; Mon, 16 Feb 2026 09:50:32 +0100 (CET) Date: Mon, 16 Feb 2026 09:50:28 +0100 From: Boris Brezillon To: Chia-I Wu Cc: Steven Price , Liviu Dudau , =?UTF-8?B?QWRyacOhbg==?= Larumbe , dri-devel@lists.freedesktop.org, David Airlie , Simona Vetter , Akash Goel , Rob Clark , Sean Paul , Konrad Dybcio , Akhil P Oommen , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Dmitry Osipenko , Chris Diamand , Danilo Krummrich , Matthew Brost , Thomas =?UTF-8?B?SGVsbHN0csO2bQ==?= , Alice Ryhl , kernel@collabora.com Subject: Re: [PATCH v3 9/9] drm/panthor: Add a GEM shrinker Message-ID: <20260216095028.122f43c1@fedora> In-Reply-To: References: <20260211080343.1887134-1-boris.brezillon@collabora.com> <20260211080343.1887134-10-boris.brezillon@collabora.com> Organization: Collabora X-Mailer: Claws Mail 4.3.1 (GTK 3.24.51; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Thu, 12 Feb 2026 16:43:29 -0800 Chia-I Wu wrote: > On Wed, Feb 11, 2026 at 12:22=E2=80=AFAM Boris Brezillon > wrote: > [...] > > +void panthor_vm_update_bo_reclaim_lru_locked(struct panthor_gem_object= *bo) > > +{ > > + struct panthor_device *ptdev =3D container_of(bo->base.dev, str= uct panthor_device, base); > > + struct panthor_vm *vm =3D NULL; > > + struct drm_gpuvm_bo *vm_bo; > > + > > + dma_resv_assert_held(bo->base.resv); > > + lockdep_assert_held(&bo->base.gpuva.lock); > > + > > + drm_gem_for_each_gpuvm_bo(vm_bo, &bo->base) { > > + /* We're only supposed to have one vm_bo in the list if= we get there. */ =20 > A bo that is validated in one vm but evicted in another is considered > PANTHOR_GEM_GPU_MAPPED_PRIVATE by is_gpu_mapped. We should check for > vm_bo->evicted too. Absolutely, I'll fix it in v4. >=20 >=20 > > + drm_WARN_ON(&ptdev->base, vm); > > + vm =3D container_of(vm_bo->vm, struct panthor_vm, base); > > + > > + mutex_lock(&ptdev->reclaim.lock); > > + drm_gem_lru_move_tail_locked(&vm->reclaim.lru, &bo->bas= e); > > + if (list_empty(&vm->reclaim.lru_node)) > > + list_move(&vm->reclaim.lru_node, &ptdev->reclai= m.vms); > > + mutex_unlock(&ptdev->reclaim.lock); > > + } > > +} =20