From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48367) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dkfDR-0003Ts-JK for qemu-devel@nongnu.org; Wed, 23 Aug 2017 19:37:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dkfDO-0007eq-G7 for qemu-devel@nongnu.org; Wed, 23 Aug 2017 19:37:41 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50364) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dkfDO-0007eJ-9m for qemu-devel@nongnu.org; Wed, 23 Aug 2017 19:37:38 -0400 Date: Thu, 24 Aug 2017 07:37:32 +0800 From: Fam Zheng Message-ID: <20170823233732.GA16947@lemon> References: <1503471071-2233-1-git-send-email-peterx@redhat.com> <1503471071-2233-5-git-send-email-peterx@redhat.com> <20170823174411.GG2648@work-vm> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170823174411.GG2648@work-vm> Subject: Re: [Qemu-devel] [RFC v2 4/8] QAPI: new QMP command option "without-bql" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert" Cc: Peter Xu , qemu-devel@nongnu.org, Paolo Bonzini , "Daniel P . Berrange" , Juan Quintela , mdroth@linux.vnet.ibm.com, Eric Blake , Laurent Vivier , Markus Armbruster On Wed, 08/23 18:44, Dr. David Alan Gilbert wrote: > * Peter Xu (peterx@redhat.com) wrote: > > Introducing this new parameter for QMP commands in general to mark out > > when the command does not need BQL. Normally QMP command executions are > > done with the protection of BQL in QEMU. However the truth is that not > > all the QMP commands require the BQL. > > > > This new parameter provides a way to allow QMP commands to run in > > parallel when possible, without the contention on the BQL. > > > > Since the default value of "without-bql" is still false, so now all QMP > > commands are still protected by BQL still. > > > > Signed-off-by: Peter Xu > > We should define what a 'without-bql' command is allowed to do: > 'Commands that have without-bql set _may_ be called without the bql > being taken. They must not take the bql or any other lock that may > become dependent on the bql.' > (Do we need to say anything about RCU?) > > Also, 'no-bql' is shorter :-) Or rather "need-bql" that defaults to true to avoid double negative (TM) with "no-bql = false"? Fam