On Mon, Jun 09, 2025 at 03:12:54PM -0400, Peter Xu wrote: > +static void migration_dump_blocktime(Monitor *mon, MigrationInfo *info) > +{ > + if (info->has_postcopy_blocktime) { > + monitor_printf(mon, "Postcopy Blocktime (ms): %" PRIu32 "\n", > + info->postcopy_blocktime); > + } > + > + if (info->has_postcopy_vcpu_blocktime) { > + uint32List *item = info->postcopy_vcpu_blocktime; > + const char *sep = ""; > + int count = 0; > + > + monitor_printf(mon, "Postcopy vCPU Blocktime (ms): \n ["); > + > + while (item) { > + monitor_printf(mon, "%s%"PRIu32, sep, item->value); > + item = item->next; > + /* Each line 10 vcpu results, newline if there's more */ > + sep = ((++count % 10 == 0) && item) ? ",\n " : ", "; > + } > + monitor_printf(mon, "]\n"); > + } > + > + if (info->has_postcopy_latency) { > + monitor_printf(mon, "Postcopy Latency (us): %" PRIu64 "\n", > + info->postcopy_latency); > + } > + > + if (info->has_postcopy_vcpu_latency) { > + uint64List *item = info->postcopy_vcpu_latency; > + int count = 0; > + > + monitor_printf(mon, "Postcopy vCPU Latencies (us): \n ["); > + > + while (item) { > + monitor_printf(mon, "%"PRIu64", ", item->value); > + item = item->next; > + /* Each line 10 vcpu results, newline if there's more */ > + if ((++count % 10 == 0) && item) { > + monitor_printf(mon, "\n "); > + } > + } > + monitor_printf(mon, "\b\b]\n");
In the review of the other series I posted, Markus pointed out we should avoid using "\b" and suggested a better way. I fixed it there, but I overlooked I have this similar use case in this series. I'll fix this too when posting v3 with similar approach. > + } > +} -- Peter Xu