[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v10 29/30] cpu: Convert CpuInfo into flat union
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v10 29/30] cpu: Convert CpuInfo into flat union |
Date: |
Wed, 11 Nov 2015 18:00:56 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Eric Blake <address@hidden> writes:
> On 11/11/2015 03:19 AM, Markus Armbruster wrote:
>
>>>> Do we need this to make 2.5?
>>>
>>> It's true that the introspection will change (instead of seeing flat
>>> optional members, you now have to chase down variants). But I don't
>>> think it is pressing enough to rush into 2.5; the change is
>>> backwards-compatible no matter when we do it, and introspection clients
>>> are going to have to get used to the idea of chasing down different
>>> paths to find all members of a struct (that is, if we don't change this
>>> until 2.6, I'm sure it won't be the last case of introspection changing
>>> while keeping QMP wire format back-compatible as formerly non-variant
>>> fields become variant).
>>
>> We can mess with the schema as long as the QMP wire format stays
>> compatible.
>>
>> With introspection, schema changes get exposed in QMP that weren't
>> exposed before. Begs the question whether the ABI promise extends to
>> the introspection value.
>>
>> I think we don't want to extend it, at least for now. In other words,
>> we refuse to put additional constraints on schema changes to keep the
>> introspection value stable. Makes introspection a bit harder to use.
>> Not ideal, but better than committing to constraints we don't even fully
>> understand, yet.
>>
>> I think we should spell this out introspection documentation.
>
> Sounds like I need to prep a doc patch for 2.5 then.
Yes, please!
>> Our only example so far is converting between optional members and flat
>> unions. Can we think of others? Hmm, you found one below.
>
> Converting from optional non-variant to variant, converting from string
> to enum, converting from single type to alternate. Might be other
> conversions, and the set of conversions for input types may differ from
> those of output conversions.
>
>> Okay. I guess finding all the examples that matter may take a few
>> development cycles. Perhaps we want to commit to some additional
>> compatibility promises for introspection then.
>
> Maybe, but until clients are no longer worried about older clients, it
> may be several years before taking advantage of whatever we later
> document
That's life.
I fully expect the consumers of QMP introspection to get a few things
wrong initially, requiring their users to upgrade to fixed versions.
That's life, too.
> (as it is, upstream libvirt is just now bumping minimum qemu
> support up to 0.12 [thanks to RHEL 6] and discarding older qemu from
> RHEL 5 - quite a few years behind upstream qemu 2.5, although it is
> finding a lot of code in libvirt that is no longer necessary).
In my opinion, attempting to support old versions of QEMU is a complete
waste of resources unless you actually test them to stop the bit-rot.
RHEL-6 0.12 is by now quite different from upstream 0.12. Unlike
upstream 0.12, it's actually still relevant and useful today.
I encourage you to identify relevant upstream and downstream versions,
keep them tested, and drop support for the rest.
- [Qemu-devel] [PATCH v10 30/30] qapi: Forbid case-insensitive clashes, (continued)
[Qemu-devel] [PATCH v10 26/30] qapi: Remove outdated tests related to QMP/branch collisions, Eric Blake, 2015/11/06
[Qemu-devel] [PATCH v10 20/30] qapi: Eliminate QAPISchemaObjectType.check() variable members, Eric Blake, 2015/11/06
Re: [Qemu-devel] [PATCH v10 00/30] qapi member collision (post-introspection cleanups, subset C'), Markus Armbruster, 2015/11/06
- Re: [Qemu-devel] [PATCH v10 00/30] qapi member collision (post-introspection cleanups, subset C'), Eric Blake, 2015/11/06
- Re: [Qemu-devel] [PATCH v10 00/30] qapi member collision (post-introspection cleanups, subset C'), Markus Armbruster, 2015/11/09
- Re: [Qemu-devel] [PATCH v10 00/30] qapi member collision (post-introspection cleanups, subset C'), Eric Blake, 2015/11/09
- Re: [Qemu-devel] [PATCH v10 00/30] qapi member collision (post-introspection cleanups, subset C'), Markus Armbruster, 2015/11/09
- Re: [Qemu-devel] [PATCH v10 00/30] qapi member collision (post-introspection cleanups, subset C'), Markus Armbruster, 2015/11/10
- Re: [Qemu-devel] [PATCH v10 00/30] qapi member collision (post-introspection cleanups, subset C'), Eric Blake, 2015/11/11