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 64415E8B392 for ; Wed, 4 Feb 2026 03:02:27 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B6A1B10E352; Wed, 4 Feb 2026 03:02:26 +0000 (UTC) Received: from us-smtp-delivery-44.mimecast.com (us-smtp-delivery-44.mimecast.com [205.139.111.44]) by gabe.freedesktop.org (Postfix) with ESMTPS id 01AF510E34C for ; Wed, 4 Feb 2026 03:02:24 +0000 (UTC) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-512-5H6akBSqObi778w1uoJwiQ-1; Tue, 03 Feb 2026 22:02:22 -0500 X-MC-Unique: 5H6akBSqObi778w1uoJwiQ-1 X-Mimecast-MFC-AGG-ID: 5H6akBSqObi778w1uoJwiQ_1770174141 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BA5941956096; Wed, 4 Feb 2026 03:02:21 +0000 (UTC) Received: from dreadlord.redhat.com (unknown [10.67.32.75]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id A1C3630001A7; Wed, 4 Feb 2026 03:02:19 +0000 (UTC) From: Dave Airlie To: dri-devel@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org Subject: [PATCH 2/3] nouveau/vmm: increase size of vmm pte tracker struct to u32 (v2) Date: Wed, 4 Feb 2026 13:00:06 +1000 Message-ID: <20260204030208.2313241-3-airlied@gmail.com> In-Reply-To: <20260204030208.2313241-1-airlied@gmail.com> References: <20260204030208.2313241-1-airlied@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: qFmQZAVym_0dqm6LXr581aa1DuvdJn6j9B8I10bpSsA_1770174141 X-Mimecast-Originator: gmail.com Content-Transfer-Encoding: quoted-printable content-type: text/plain; charset=WINDOWS-1252; x-default=true 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" From: Dave Airlie We need to tracker large counts of spte than previously due to unref getting delayed sometimes. This doesn't fix LPT tracking yet, it just creates space for it. Signed-off-by: Dave Airlie --- v2: fix memset32 wrong length --- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 6 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c b/drivers/gpu/dr= m/nouveau/nvkm/subdev/mmu/vmm.c index efc334f6104c..44daeec0aa6d 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c @@ -387,7 +387,7 @@ nvkm_vmm_sparse_ptes(const struct nvkm_vmm_desc *desc, =09} else =09if (desc->type =3D=3D LPT) { =09=09union nvkm_pte_tracker sparse =3D { .s.sparse =3D 1 }; -=09=09memset(&pgt->pte[ptei].u, sparse.u, ptes); +=09=09memset32(&pgt->pte[ptei].u, sparse.u, ptes); =09} } =20 @@ -399,7 +399,7 @@ nvkm_vmm_sparse_unref_ptes(struct nvkm_vmm_iter *it, bo= ol pfn, u32 ptei, u32 pte =09=09memset(&pt->pde[ptei], 0x00, sizeof(pt->pde[0]) * ptes); =09else =09if (it->desc->type =3D=3D LPT) -=09=09memset(&pt->pte[ptei].u, 0x00, sizeof(pt->pte[0]) * ptes); +=09=09memset32(&pt->pte[ptei].u, 0x00, ptes); =09return nvkm_vmm_unref_ptes(it, pfn, ptei, ptes); } =20 @@ -458,7 +458,7 @@ nvkm_vmm_ref_hwpt(struct nvkm_vmm_iter *it, struct nvkm= _vmm_pt *pgd, u32 pdei) =09=09=09=09=09desc->func->sparse(vmm, pt, pteb, ptes); =09=09=09=09else =09=09=09=09=09desc->func->invalid(vmm, pt, pteb, ptes); -=09=09=09=09memset(&pgt->pte[pteb], 0x00, ptes); +=09=09=09=09memset32(&pgt->pte[pteb].u, 0x00, ptes); =09=09=09} else { =09=09=09=09desc->func->unmap(vmm, pt, pteb, ptes); =09=09=09=09while (ptes--) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h b/drivers/gpu/dr= m/nouveau/nvkm/subdev/mmu/vmm.h index a6312a0e6b84..a8b08126e8dc 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h @@ -5,11 +5,12 @@ enum nvkm_memory_target; =20 union nvkm_pte_tracker { -=09u8 u; +=09u32 u; =09struct { -=09=09u8 sparse:1; -=09=09u8 spte_valid:1; -=09=09u8 sptes:6; +=09=09u32 sparse:1; +=09=09u32 spte_valid:1; +=09=09u32 padding:14; +=09=09u32 sptes:16; =09} s; }; =20 --=20 2.52.0