diff options
| -rw-r--r-- | kernel/gsp_sema_service.c | 17 |
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; } |
