baa609832e
Setup a negative feedback system when vCPU thread handling KVM_EXIT_DIRTY_RING_FULL exit by introducing throttle_us_per_full field in struct CPUState. Sleep throttle_us_per_full microseconds to throttle vCPU if dirtylimit is in service. Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn> Reviewed-by: Peter Xu <peterx@redhat.com> Message-Id: <977e808e03a1cef5151cae75984658b6821be618.1656177590.git.huangy81@chinatelecom.cn> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
41 lines
2.7 KiB
Plaintext
41 lines
2.7 KiB
Plaintext
# See docs/devel/tracing.rst for syntax documentation.
|
|
|
|
# balloon.c
|
|
# Since requests are raised via monitor, not many tracepoints are needed.
|
|
balloon_event(void *opaque, unsigned long addr) "opaque %p addr %lu"
|
|
|
|
# ioport.c
|
|
cpu_in(unsigned int addr, char size, unsigned int val) "addr 0x%x(%c) value %u"
|
|
cpu_out(unsigned int addr, char size, unsigned int val) "addr 0x%x(%c) value %u"
|
|
|
|
# memory.c
|
|
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'"
|
|
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'"
|
|
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"
|
|
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_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_destroy(void *view, void *root) "%p (root %p)"
|
|
flatview_destroy_rcu(void *view, void *root) "%p (root %p)"
|
|
global_dirty_changed(unsigned int bitmask) "bitmask 0x%"PRIx32
|
|
|
|
# softmmu.c
|
|
vm_stop_flush_all(int ret) "ret %d"
|
|
|
|
# vl.c
|
|
vm_state_notify(int running, int reason, const char *reason_str) "running %d reason %d (%s)"
|
|
load_file(const char *name, const char *path) "name %s location %s"
|
|
runstate_set(int current_state, const char *current_state_str, int new_state, const char *new_state_str) "current_run_state %d (%s) new_state %d (%s)"
|
|
system_wakeup_request(int reason) "reason=%d"
|
|
qemu_system_shutdown_request(int reason) "reason=%d"
|
|
qemu_system_powerdown_request(void) ""
|
|
|
|
#dirtylimit.c
|
|
dirtylimit_state_initialize(int max_cpus) "dirtylimit state initialize: max cpus %d"
|
|
dirtylimit_state_finalize(void)
|
|
dirtylimit_throttle_pct(int cpu_index, uint64_t pct, int64_t time_us) "CPU[%d] throttle percent: %" PRIu64 ", throttle adjust time %"PRIi64 " us"
|
|
dirtylimit_set_vcpu(int cpu_index, uint64_t quota) "CPU[%d] set dirty page rate limit %"PRIu64
|
|
dirtylimit_vcpu_execute(int cpu_index, int64_t sleep_time_us) "CPU[%d] sleep %"PRIi64 " us"
|