From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34569) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bL9Xe-00050n-7i for qemu-devel@nongnu.org; Thu, 07 Jul 2016 09:40:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bL9XZ-0000Db-R9 for qemu-devel@nongnu.org; Thu, 07 Jul 2016 09:40:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34761) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bL9XZ-0000DQ-Iv for qemu-devel@nongnu.org; Thu, 07 Jul 2016 09:40:29 -0400 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E9AAF64076 for ; Thu, 7 Jul 2016 13:40:28 +0000 (UTC) From: Markus Armbruster References: <1467514729-29366-1-git-send-email-eblake@redhat.com> Date: Thu, 07 Jul 2016 15:40:26 +0200 In-Reply-To: <1467514729-29366-1-git-send-email-eblake@redhat.com> (Eric Blake's message of "Sat, 2 Jul 2016 20:58:33 -0600") Message-ID: <87bn29mur9.fsf@dusky.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH for-2.7 v8 00/16] qapi netdev_add introspection (post-introspection cleanups subset F) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: qemu-devel@nongnu.org Eric Blake 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.