X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_telemetry.h;h=a9fd4b75ff3581aa057cad56c9f4db918e2a669d;hb=c3e451f106e9594b46d7c3dd3c4fdd610d7a2c03;hp=80ac8746ab6cc764b68ad1ccc6394dbc200949a2;hpb=f3eb8bbb7c58c98b03797f2188e6c1d2a7610c15;p=palacios.git diff --git a/palacios/include/palacios/vmm_telemetry.h b/palacios/include/palacios/vmm_telemetry.h index 80ac874..a9fd4b7 100644 --- a/palacios/include/palacios/vmm_telemetry.h +++ b/palacios/include/palacios/vmm_telemetry.h @@ -22,40 +22,51 @@ #ifdef __V3VEE__ -#ifdef CONFIG_TELEMETRY +#ifdef V3_CONFIG_TELEMETRY #include #include struct guest_info; - +struct v3_vm_info; struct v3_telemetry_state { + uint32_t invoke_cnt; + uint64_t granularity; - uint64_t vmm_start_tsc; uint64_t prev_tsc; + struct list_head cb_list; +}; + + +struct v3_core_telemetry { uint_t exit_cnt; struct rb_root exit_root; - uint32_t invoke_cnt; - uint64_t granularity; + uint64_t vmm_start_tsc; + + struct v3_telemetry_state * vm_telem; - struct list_head cb_list; }; -void v3_init_telemetry(struct guest_info * info); +void v3_init_telemetry(struct v3_vm_info * vm); +void v3_init_core_telemetry(struct guest_info * info); +void v3_deinit_telemetry(struct v3_vm_info * vm); +void v3_deinit_core_telemetry(struct guest_info * core); void v3_telemetry_start_exit(struct guest_info * info); void v3_telemetry_end_exit(struct guest_info * info, uint_t exit_code); -void v3_print_telemetry(struct guest_info * info); +void v3_print_core_telemetry(struct guest_info * core); +void v3_print_global_telemetry(struct v3_vm_info * vm); +void v3_print_telemetry(struct v3_vm_info * vm, struct guest_info * core); -void v3_add_telemetry_cb(struct guest_info * info, - void (*telemetry_fn)(struct guest_info * info, void * private_data), - void * private_data); +void v3_add_telemetry_cb(struct v3_vm_info * vm, + void (*telemetry_fn)(struct v3_vm_info * vm, void * private_data, char * hdr), + void * private_data); #endif