intel/dump_gpu: Fix corner cases in PPGTT range calculations
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 17 Jul 2018 22:55:07 +0000 (15:55 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 18 Jul 2018 15:42:38 +0000 (08:42 -0700)
commit6953d7f5d253028e41af1d0e4a60d0407e91a831
tree57345d5b09b00be48b070d107a9838c058d64040
parent322fa3e5be5cd08ce752075f4fbff15019b8d6c7
intel/dump_gpu: Fix corner cases in PPGTT range calculations

For large buffers which span an entire l1 page table, we got the range
calculations wrong.  In this case, we end up with an l1_start which is
the first byte represented by the given l1 table and an l1_end which is
the first byte after the range represented by the l1 table.  Then
l2_start_index == L2_index(l2_end) due to roll-over.  Instead, compute
lN_end using (1Ull << shift) - 1 so that lN_end is the last byte in the
range represented by the Nth level page table.  When we do this, we
don't need the conditional expression anymore.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/intel/tools/intel_dump_gpu.c