On 04/04/2012 02:52 PM, Anthony Liguori wrote:
On 04/04/2012 05:53 AM, Dor Laor wrote:
On 04/04/2012 01:37 PM, Michael Roth wrote:
On Apr 4, 2012 2:42 AM, "Paolo Bonzini" <pbonz...@redhat.com
<mailto:pbonz...@redhat.com>> wrote:
>
> Il 04/04/2012 03:18, Michael Roth ha scritto:
> > Attacking the IDL/schema side first is the more rationale approach.
From
> > there we can potentially generate ASN.1 BER/DER visitors for the
protocol
> > side, or potentially even just vmstate bindings as a start. I've
recently
> > started looking into the latter... it's completely feasible, the
only
> > downside is it complicates the IDL due requiring support for a
lot of
> > what are very much vmstate-specific items, but it should be
possible to
> > do this in a manner where those annotations are self-contained and
> > ignorable if we opted to replace vmstate-style declarations.
>
> We can also keep the current vmstate descriptions, but access fields
> from the automatically-generated visitors instead of struct fields.
> This keeps the IDL simple.
It may be worthwhile as an incremental step though, one nice thing about
automatically generated bindings is that with the QIDL Anthony
prototyped a while back we assume we serialize by default, so changes in
annotated structs automatically trigger changes in the generated
bindings unless you explicitly mark fields as immutable/derivable/etc,
which we can tie into the build or make check to automatically detect
and bring attention to changes in vmstate. This may be worth the effort
if we adopt the proposed 4 year migration support cycle for pc-1.0,
since that'll continue to rely on vmstate even after we move on to an
IDL and newer protocol.
Beyond ASL/IDL I like to be sure that we're not just translating one
format to
other representation but instead we introduce some new functionality
like:
- Ability to negotiate the protocol version
Ack.
- Bi-direction data exchange, the sender will send data as a function
of the target release
The reason bi-direction data exchange doesn't exist is because it would
add latency to the critical path. I think we should avoid bi-directional
Not necessarily, there is not need to do the exchange on the down time,
you can do it ahead of time during the initial connection and few
additional msec or even a second won't change much.
data exchange unless there's an extremely compelling reason to do so.
The key advantage is that you'll be able to migrate to an old qemu that
may not be compatible w/ the standard protocol and the source will be
able to discover this and adjust.
At the moment I don't have anything more concrete than that but I think
that's happen in the past and will continue to happen and we can add the
required hook into the protocol.
- Include the machine type too
- Synchronize the entire qemu cmdline and don't relay on management to
set it up.
- Along the way, deal w/ hotplug events.
This will be address via QOM. As we convert backends and machine types,
we should be able to dump out the full configuration and send it over
the wire.
Regards,
Anthony Liguori
>
> Paolo
>