From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51067) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dAIMB-0003Q2-LB for qemu-devel@nongnu.org; Mon, 15 May 2017 11:56:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dAIM8-0005I3-Ks for qemu-devel@nongnu.org; Mon, 15 May 2017 11:56:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44328) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dAIM8-0005Hs-Cg for qemu-devel@nongnu.org; Mon, 15 May 2017 11:56:20 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 13E343B74A for ; Mon, 15 May 2017 15:56:19 +0000 (UTC) From: Juan Quintela In-Reply-To: <6ad3d1a1-ae63-b01d-b6a0-72a017b343aa@redhat.com> (Eric Blake's message of "Mon, 15 May 2017 09:24:56 -0500") References: <20170511163228.6666-1-quintela@redhat.com> <20170511163228.6666-2-quintela@redhat.com> <0bbb5f93-83bb-47b9-e7dd-d0824f3d8b61@redhat.com> <87pofafoek.fsf@secure.mitica> <20170515094655.GC2089@work-vm> <6ad3d1a1-ae63-b01d-b6a0-72a017b343aa@redhat.com> Reply-To: quintela@redhat.com Date: Mon, 15 May 2017 17:56:08 +0200 Message-ID: <87r2zqdsh3.fsf@secure.mitica> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH 1/3] migration: Create block capabilities for shared and enable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: "Dr. David Alan Gilbert" , qemu-devel@nongnu.org, lvivier@redhat.com, peterx@redhat.com Eric Blake wrote: > On 05/15/2017 04:46 AM, Dr. David Alan Gilbert wrote: >> * Juan Quintela (quintela@redhat.com) wrote: >>> Eric Blake wrote: >>>> On 05/11/2017 11:32 AM, Juan Quintela wrote: >>>>> Those two capabilities were added through the command line. Notice that >>>>> we just created them. This is just the boilerplate. >>>>> >>>>> Signed-off-by: Juan Quintela >>>>> Reviewed-by: Eric Blake >>>>> >>>>> -- >>>>> >>>>> Make migrate_set_block_* take a boolean argument. >>>> >>>> Question - do we support the orthogonal selection of all 4 combinations >>>> under HMP 'migrate' (no argument, -b alone, -i alone, -b and -i >>>> together), or are there only 3 actual states? If the latter, should we >>>> represent this as a single enum-valued property, rather than as two >>>> independent boolean properties? >>> >>> { 'enum': 'MigrationCapability', >>> 'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks', >>> 'compress', 'events', 'postcopy-ram', 'x-colo', 'release-ram'] } >>> >>> >>> My understanding is that we can only have boolean capabilities here. >>> Or, how could we put a non-boolean capability? > > If we want a non-boolean, then we make it a migration parameter rather > than a migration capability. There may be other advantages to using > MigrationParameter instead of MigrationCapability (such as making it > easier to figure out whether the parameter settings are persistent or > apply per-migration). Block migration is a capability as far as I can see/understand. The block shared bit could be a parameter, though. Not sure if that would be better/worse. > >> >> Lets keep this simple and stick with the booleans. >> >> Dave >> >>> There are three states as far as I can see. > > I'll leave it up to you as maintainers which way you prefer, I'm just > offering the potential design tradeoffs for simplicity of booleans (but > complexity in an unused state) vs. simplicity of design (but complexity > in code). As I expect to deprecate the old interface, I think that the best thing to do is to use two capabilities or a capability(block enabled) and a parameter (block shared). What do you think? Later, Juan.