qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-2.7 v8 00/16] qapi netdev_add introspection


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH for-2.7 v8 00/16] qapi netdev_add introspection (post-introspection cleanups subset F)
Date: Thu, 07 Jul 2016 15:40:26 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Eric Blake <address@hidden> writes:

> It's time to expose QMP 'netdev_add' through introspection, and
> to add boxed commands/events so that we can drastically reduce
> the number of C parameters needed to implement a command that
> matches a large QAPI type.
>
> Prerequistes:
> Markus' qapi-next branch (including my clone visitor)
>
> available as a tag at:
> git fetch git://repo.or.cz/qemu/ericb.git qapi-cleanupv8f
> or as part of my qapi branch:
> git fetch git://repo.or.cz/qemu/ericb.git qapi
>
> v7 was here:
> https://lists.gnu.org/archive/html/qemu-devel/2016-05/msg03569.html
>
> Since then, I've addressed a lot of Markus' comments:
> - drop 1/15
> - split out a couple of patches
> - wording tweaks, more justifications in some commit messages
> - rebase to master
> - allow boxed alternates, in addition to boxed unions
> - forbid empty anonymous branches for now
>
> 001/16:[----] [--] 'net: use Netdev instead of NetClientOptions in client 
> init'
> 002/16:[----] [--] 'qapi: Require all branches of flat union enum to be 
> covered'
> 003/16:[----] [--] 'qapi: Hide tag_name data member of variants'
> 004/16:[0006] [FC] 'qapi: Add type.is_empty() helper'
> 005/16:[down] 'qapi: Drop useless gen_err_check()'
> 006/16:[down] 'qapi-event: Simplify visit of non-implicit data'
> 007/16:[0028] [FC] 'qapi: Plumb in 'box' to qapi generator lower levels'
> 008/16:[0121] [FC] 'qapi: Implement boxed types for commands/events'
> 009/16:[0002] [FC] 'block: Simplify block_set_io_throttle'
> 010/16:[0023] [FC] 'block: Simplify drive-mirror'
> 011/16:[0026] [FC] 'qapi-event: Reduce chance of collision with event data'
> 012/16:[0042] [FC] 'qapi: Change Netdev into a flat union'
> 013/16:[----] [--] 'net: Use correct type for bool flag'
> 014/16:[0008] [FC] 'net: Complete qapi-fication of netdev_add'
> 015/16:[0037] [FC] 'qapi: Allow anonymous branch types in flat union'
> 016/16:[----] [--] 'schema: Drop pointless empty type CpuInfoOther'

Let's focus on PATCH 01-14 for now.  I think we have a decent chance to
merge them quickly.  15 and 16 provide a nice extra, but I need to stare
at 15 a bit more to decide whether I like it, or how to do it
differently.

> Other patches on my QAPI queue:
> - posted, but needs another respin and might not make 2.7:
> JSON output visitor

I don't think this one's blocking anything.

> - not posted, and therefore most likely not 2.7 material:
> anything we need to do to make 'blockdev-add' work smoothly
> (we may want to allow a flat union with a default value for its
> discriminator, and/or add a way to express mutually-exclusive
> members in a qapi dict)

I'd like us to think through the needs blockdev-add may have before
rushing to add more QAPI features.

> Other potential general QAPI patches, but not necessarily that I will write:
> - Marc-Andre's cleanups

Next in line :)

> - convert more clients to use boxed commands

Can be done in parallel.

> - get rid of has_FOO when FOO is pointer

Shouldn't be hard.

> - support default values (and get rid of has_FOO when FOO has default)

I like the idea, but I think we should do some of the other things
first.

> - QAPI-fy device_add

Need something to talk about in Toronto ;)

> - ???

- Fold semantic analysis into QAPISchema (a TODO in qapi.py)

This is just paying back technical debt.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]