memory: Add tracepoint for dirty sync
Trace at memory_region_sync_dirty_bitmap() for log_sync() or global_log_sync() on memory regions. One trace line should suffice when it finishes, so as to estimate the time used for each log sync process. Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20210817013706.30986-1-peterx@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
142518bda5
commit
fcb3ab341a
@ -2154,6 +2154,7 @@ static void memory_region_sync_dirty_bitmap(MemoryRegion *mr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
flatview_unref(view);
|
flatview_unref(view);
|
||||||
|
trace_memory_region_sync_dirty(mr ? mr->name : "(all)", listener->name, 0);
|
||||||
} else if (listener->log_sync_global) {
|
} else if (listener->log_sync_global) {
|
||||||
/*
|
/*
|
||||||
* No matter whether MR is specified, what we can do here
|
* No matter whether MR is specified, what we can do here
|
||||||
@ -2161,6 +2162,7 @@ static void memory_region_sync_dirty_bitmap(MemoryRegion *mr)
|
|||||||
* sync in a finer granularity.
|
* sync in a finer granularity.
|
||||||
*/
|
*/
|
||||||
listener->log_sync_global(listener);
|
listener->log_sync_global(listener);
|
||||||
|
trace_memory_region_sync_dirty(mr ? mr->name : "(all)", listener->name, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ memory_region_subpage_read(int cpu_index, void *mr, uint64_t offset, uint64_t va
|
|||||||
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"
|
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"
|
||||||
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"
|
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"
|
||||||
memory_region_ram_device_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"
|
memory_region_ram_device_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"
|
||||||
|
memory_region_sync_dirty(const char *mr, const char *listener, int global) "mr '%s' listener '%s' synced (global=%d)"
|
||||||
flatview_new(void *view, void *root) "%p (root %p)"
|
flatview_new(void *view, void *root) "%p (root %p)"
|
||||||
flatview_destroy(void *view, void *root) "%p (root %p)"
|
flatview_destroy(void *view, void *root) "%p (root %p)"
|
||||||
flatview_destroy_rcu(void *view, void *root) "%p (root %p)"
|
flatview_destroy_rcu(void *view, void *root) "%p (root %p)"
|
||||||
|
Loading…
Reference in New Issue
Block a user