Quoting Mika Kuoppala (2019-06-11 18:27:24) > struct i915_page_table { > struct i915_page_dma base; > - atomic_t used_ptes; > + atomic_t used; > }; > > struct i915_page_directory { > struct i915_page_dma base; > - > - struct i915_page_table *page_table[I915_PDES]; /* PDEs */ > - atomic_t used_pdes; > - spinlock_t lock; > -}; > - > -struct i915_page_directory_pointer { > - struct i915_page_dma base; > - struct i915_page_directory **page_directory; > - atomic_t used_pdpes; > - spinlock_t lock; > -}; > - > -struct i915_pml4 { > - struct i915_page_dma base; > - struct i915_page_directory_pointer *pdps[GEN8_PML4ES_PER_PML4]; > + atomic_t used; > spinlock_t lock; > + void *entry[0]; > }; And always (albeit with a single bsw discrepancy) 512. At the very least you can alias a fixed sized variant over the top to remove the extra pointer chasing you added. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx