uint64_t *vcpu_blocktime_start;
/* blocktime per vCPU */
uint64_t *vcpu_blocktime_total;
+ /* count of faults per vCPU */
+ uint64_t *vcpu_faults_count;
/* page address per vCPU */
uintptr_t *vcpu_addr;
/* total blocktime when all vCPUs are stopped */
{
g_free(ctx->vcpu_blocktime_start);
g_free(ctx->vcpu_blocktime_total);
+ g_free(ctx->vcpu_faults_count);
g_free(ctx->vcpu_addr);
g_free(ctx);
}
ctx->vcpu_blocktime_start = g_new0(uint64_t, smp_cpus);
ctx->vcpu_blocktime_total = g_new0(uint64_t, smp_cpus);
+ ctx->vcpu_faults_count = g_new0(uint64_t, smp_cpus);
ctx->vcpu_addr = g_new0(uintptr_t, smp_cpus);
ctx->exit_notifier.notify = migration_exit_cb;
qemu_add_exit_notifier(&ctx->exit_notifier);
dc->last_begin = current;
dc->vcpu_blocktime_start[cpu] = current;
dc->vcpu_addr[cpu] = addr;
+ dc->vcpu_faults_count[cpu]++;
/*
* The caller should only inject a blocktime entry when the page is