From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34159) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTWsR-0000FI-BC for qemu-devel@nongnu.org; Wed, 10 Feb 2016 10:40:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aTWsO-0004Sa-19 for qemu-devel@nongnu.org; Wed, 10 Feb 2016 10:40:23 -0500 Received: from mx2.parallels.com ([199.115.105.18]:59058) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aTWsN-0004S3-RV for qemu-devel@nongnu.org; Wed, 10 Feb 2016 10:40:19 -0500 References: <1454151394-52320-1-git-send-email-vsementsov@virtuozzo.com> <1454151394-52320-3-git-send-email-vsementsov@virtuozzo.com> <20160210100825.GA7317@stefanha-x1.localdomain> <56BB41AE.8090609@virtuozzo.com> <56BB56C2.40409@redhat.com> <56BB58E7.7090307@virtuozzo.com> <56BB5956.4090602@redhat.com> From: "Denis V. Lunev" Message-ID: <56BB59D3.2060607@virtuozzo.com> Date: Wed, 10 Feb 2016 18:40:03 +0300 MIME-Version: 1.0 In-Reply-To: <56BB5956.4090602@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/6] qmp: add query-block-dirty-bitmap-ranges List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow , Stefan Hajnoczi , Vladimir Sementsov-Ogievskiy Cc: kwolf@redhat.com, famz@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com On 02/10/2016 06:37 PM, John Snow wrote: > > On 02/10/2016 10:36 AM, Denis V. Lunev wrote: >> On 02/10/2016 06:26 PM, John Snow wrote: >>> On 02/10/2016 08:57 AM, Denis V. Lunev wrote: >>>> On 02/10/2016 01:08 PM, Stefan Hajnoczi wrote: >>>>> On Sat, Jan 30, 2016 at 01:56:30PM +0300, Vladimir Sementsov-Ogievskiy >>>>> wrote: >>>>>> Add qmp command to query dirty bitmap contents. This is needed for >>>>>> external backup. >>>>>> >>>>>> Signed-off-by: Vladimir Sementsov-Ogievskiy >>>>>> --- >>>>>> block/dirty-bitmap.c | 55 >>>>>> +++++++++++++++++++++++++++++++++++++++ >>>>>> blockdev.c | 62 >>>>>> ++++++++++++++++++++++++++++++++++++++++++++ >>>>>> include/block/dirty-bitmap.h | 7 +++++ >>>>>> qapi/block-core.json | 54 >>>>>> ++++++++++++++++++++++++++++++++++++++ >>>>>> qmp-commands.hx | 33 +++++++++++++++++++++++ >>>>>> 5 files changed, 211 insertions(+) >>>>> This API produces large replies and/or requires many calls to fetch all >>>>> bitmap data. The worst case is a 101010... bitmap. >>>>> >>>>> I consider the dirty bitmap to be data (vs control) and not something >>>>> that should be sent over a control channel like the QMP monitor. >>>>> >>>>> How about writing the dirty bitmap to a file? The new bitmap file >>>>> format that Fam is working on could be used. That way the dirty bitmap >>>>> can be saved asynchronously without hogging the QMP monitor. >>>> Reasonable point. >>>> >>>> May be it would be better to setup "special" NBD server inside >>>> QEMU which will allow to directly "read" bitmap data. >>>> >>>> Any opinion? >>>> >>>> Den >>> Or perhaps something like migration, where the client receiving the data >>> opens a socket of some sort, and QEMU connects to that socket to send >>> the data. >> no. The point is that QEMU should be queried for data. >> May be even via several sockets to provide it in >> parallel. >> >> Den > I don't follow. > > You'd use a QMP command to tell QEMU where to connect to send the data. > You're still "querying" QEMU, it's just not acting as the server for the > data channel. ok, I have understood you wrong. This looks working at the first glance.