On Tue, Sep 19, 2017 at 17:43:06 -0400, [email protected] wrote:
> += Synchronizing the virtual clock with an external source =
> +
> +QEMU has a protocol for synchronizing its virtual clock
> +with the clock of a simulator in which QEMU is embedded
> +as a component. This options is enabled with the -qqq
> +argument, and it should generally be accompanied by the
> +following additional command line arguments:
> +
> +-icount 1,sleep=off -rtc clock=vm
> + or
> +-enable-kvm -rtc clock=vm
> +
> +The -qqq argument is used to supply a file descriptor
> +for a Unix socket, which is used for synchronization.
> +The procedure for launching QEMU in is synchronization
> +mode has three steps:
> +
> +(1) Create a socket pair with the Linux socketpair function.
> + The code segment that does this might look like
I thought a little bit about this patch. I think the feature is useful
and should eventually be provided by QEMU.
The part I'm not sure about is the socket interface; for instance,
it isn't cross-platform.
A better alternative might be to expose this functionality to plugins,
and let the plugins deal with the external world--socket or whatever
IPC is appropriate on the platform they're meant to be run.
Of course the plugin interface is still under discussion. I think though
it should be fairly easy to expose this functionality to plugins. I'll take
a look at in the next few weeks, hopefully also supporting MTTCG instances
(with some collaboration/hack from the plugin, I'm afraid).
Thanks,
Emilio