Skip to content

Commit 9bb5405

Browse files
philmdvivier
authored andcommitted
memory: Display MemoryRegion name in read/write ops trace events
MemoryRegion names is cached on first call to memory_region_name(), so displaying the name is trace events is cheap. Add it for read / write ops. Signed-off-by: Philippe Mathieu-Daudé <[email protected]> Reviewed-by: Laurent Vivier <[email protected]> Message-Id: <[email protected]> Signed-off-by: Laurent Vivier <[email protected]>
1 parent 0849cb5 commit 9bb5405

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

softmmu/memory.c

+8-4
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,8 @@ static MemTxResult memory_region_read_accessor(MemoryRegion *mr,
442442
trace_memory_region_subpage_read(get_cpu_index(), mr, addr, tmp, size);
443443
} else if (trace_event_get_state_backends(TRACE_MEMORY_REGION_OPS_READ)) {
444444
hwaddr abs_addr = memory_region_to_absolute_addr(mr, addr);
445-
trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, size);
445+
trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, size,
446+
memory_region_name(mr));
446447
}
447448
memory_region_shift_read_access(value, shift, mask, tmp);
448449
return MEMTX_OK;
@@ -464,7 +465,8 @@ static MemTxResult memory_region_read_with_attrs_accessor(MemoryRegion *mr,
464465
trace_memory_region_subpage_read(get_cpu_index(), mr, addr, tmp, size);
465466
} else if (trace_event_get_state_backends(TRACE_MEMORY_REGION_OPS_READ)) {
466467
hwaddr abs_addr = memory_region_to_absolute_addr(mr, addr);
467-
trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, size);
468+
trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, size,
469+
memory_region_name(mr));
468470
}
469471
memory_region_shift_read_access(value, shift, mask, tmp);
470472
return r;
@@ -484,7 +486,8 @@ static MemTxResult memory_region_write_accessor(MemoryRegion *mr,
484486
trace_memory_region_subpage_write(get_cpu_index(), mr, addr, tmp, size);
485487
} else if (trace_event_get_state_backends(TRACE_MEMORY_REGION_OPS_WRITE)) {
486488
hwaddr abs_addr = memory_region_to_absolute_addr(mr, addr);
487-
trace_memory_region_ops_write(get_cpu_index(), mr, abs_addr, tmp, size);
489+
trace_memory_region_ops_write(get_cpu_index(), mr, abs_addr, tmp, size,
490+
memory_region_name(mr));
488491
}
489492
mr->ops->write(mr->opaque, addr, tmp, size);
490493
return MEMTX_OK;
@@ -504,7 +507,8 @@ static MemTxResult memory_region_write_with_attrs_accessor(MemoryRegion *mr,
504507
trace_memory_region_subpage_write(get_cpu_index(), mr, addr, tmp, size);
505508
} else if (trace_event_get_state_backends(TRACE_MEMORY_REGION_OPS_WRITE)) {
506509
hwaddr abs_addr = memory_region_to_absolute_addr(mr, addr);
507-
trace_memory_region_ops_write(get_cpu_index(), mr, abs_addr, tmp, size);
510+
trace_memory_region_ops_write(get_cpu_index(), mr, abs_addr, tmp, size,
511+
memory_region_name(mr));
508512
}
509513
return mr->ops->write_with_attrs(mr->opaque, addr, tmp, size, attrs);
510514
}

softmmu/trace-events

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ cpu_in(unsigned int addr, char size, unsigned int val) "addr 0x%x(%c) value %u"
99
cpu_out(unsigned int addr, char size, unsigned int val) "addr 0x%x(%c) value %u"
1010

1111
# memory.c
12-
memory_region_ops_read(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u"
13-
memory_region_ops_write(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u"
12+
memory_region_ops_read(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size, const char *name) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u name '%s'"
13+
memory_region_ops_write(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size, const char *name) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u name '%s'"
1414
memory_region_subpage_read(int cpu_index, void *mr, uint64_t offset, uint64_t value, unsigned size) "cpu %d mr %p offset 0x%"PRIx64" value 0x%"PRIx64" size %u"
1515
memory_region_subpage_write(int cpu_index, void *mr, uint64_t offset, uint64_t value, unsigned size) "cpu %d mr %p offset 0x%"PRIx64" value 0x%"PRIx64" size %u"
1616
memory_region_ram_device_read(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u"

0 commit comments

Comments
 (0)