This series is: Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>
Awesome to see this implemented! On Thu, Aug 31, 2017, at 11:44, Samuel Pitoiset wrote: > It's fairly simple for now, but this might be quite useful. > > Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> > --- > src/amd/vulkan/radv_debug.c | 13 +++++++++++++ > src/amd/vulkan/radv_private.h | 3 +++ > 2 files changed, 16 insertions(+) > > diff --git a/src/amd/vulkan/radv_debug.c b/src/amd/vulkan/radv_debug.c > index 4024f75da8..949eeea2f3 100644 > --- a/src/amd/vulkan/radv_debug.c > +++ b/src/amd/vulkan/radv_debug.c > @@ -28,6 +28,7 @@ > #include <stdlib.h> > #include <stdio.h> > > +#include "ac_debug.h" > #include "radv_debug.h" > > bool > @@ -44,6 +45,9 @@ radv_init_trace(struct radv_device *device) > if (!device->trace_id_ptr) > return false; > > + ac_vm_fault_occured(device->physical_device->rad_info.chip_class, > + &device->dmesg_timestamp, NULL); > + > return true; > } > > @@ -80,9 +84,18 @@ radv_gpu_hang_occured(struct radv_queue *queue) > void > radv_check_gpu_hangs(struct radv_queue *queue, struct radeon_winsys_cs > *cs) > { > + struct radv_device *device = queue->device; > + uint64_t addr; > + > if (!radv_gpu_hang_occured(queue)) > return; > > + if > (ac_vm_fault_occured(device->physical_device->rad_info.chip_class, > + &device->dmesg_timestamp, &addr)) { > + fprintf(stderr, "VM fault report.\n\n"); > + fprintf(stderr, "Failing VM page: 0x%08"PRIx64"\n\n", > addr); > + } > + > radv_dump_trace(queue->device, cs); > abort(); > } > diff --git a/src/amd/vulkan/radv_private.h > b/src/amd/vulkan/radv_private.h > index 73f7bdbe8a..28e70e6915 100644 > --- a/src/amd/vulkan/radv_private.h > +++ b/src/amd/vulkan/radv_private.h > @@ -555,6 +555,9 @@ struct radv_device { > uint32_t fmask_mrt_offset_counter; > struct list_head shader_slabs; > mtx_t shader_slab_mutex; > + > + /* For detecting VM faults reported by dmesg. */ > + uint64_t dmesg_timestamp; > }; > > struct radv_device_memory { > -- > 2.14.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev