summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_sema_service.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_sema_service.c')
-rw-r--r--kernel/gsp_sema_service.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c
index 8a60b6e..bafe5c1 100644
--- a/kernel/gsp_sema_service.c
+++ b/kernel/gsp_sema_service.c
@@ -2088,6 +2088,23 @@ static int svc_copy(struct nv_vgpu_device *vgpu, u64 dst, u64 src, size_t total,
(void)i;
o += chunk;
}
+
+ if (gsp_sema_copy_watch && total == gsp_sema_copy_watch &&
+ svc.copy_watch_log <= 64) {
+ u8 da[8] = {0};
+
+ if (dst_aperture == CE_APERTURE_VID) {
+ u8 *base = vgpu->bars[1].vaddr;
+
+ if (base && dst + 8 <= vgpu->bars[1].size)
+ memcpy(da, base + dst, 8);
+ } else {
+ svc_read(vgpu, dst, da, 8);
+ }
+ pr_info("sema-copy-watch: dst8_after=%02x %02x %02x %02x %02x %02x %02x %02x (dst=0x%llx)\n",
+ da[0], da[1], da[2], da[3], da[4], da[5], da[6],
+ da[7], dst);
+ }
return 0;
}