On Wed, Feb 04, 2026 at 01:00:04PM +1000, Dave Airlie wrote: > [This is a repost with a fix for a bug noticed in patch 2 from yesterday.] > > The nouveau page table has dual page tables with special states for > tracking small vs large pages at the bottom level. However the current > code isn't designed with the higher level large page support in mind. > > The nouveau_uvmm/gpuvm code can cause unrefs to get delayed, so things > like ref SPT, map SPT, unmap SPT, ref LPT, map LPT, unref SPT can happen. > > unrefs can end up quite delayed and it shouldn't matter as unref should > just affect reference counts. > > However at least the SPT unref path was overwriting the LPT value when > all SPT were unreffed even if an LPT was referenced in between. > > This series refactors the code to use a union, then increases the size > as I think even with the current code there was enough ref counts for SPTE. > The last patch adds LPTE tracking. > > Dave. >
I extensively tested this today (on GA107 and AD107) with compression reenabled on mesa side, everything is working as expected and the MMU faults are gone. Reviewed-by: Mary Guillemard <[email protected]> Tested-by: Mary Guillemard <[email protected]> Regards, Mary
