From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4F49DC12002 for ; Wed, 21 Jul 2021 10:59:04 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E69666023F for ; Wed, 21 Jul 2021 10:59:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E69666023F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:54592 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m69wM-0003yd-U0 for qemu-devel@archiver.kernel.org; Wed, 21 Jul 2021 06:59:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57960) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m69vJ-0001ip-Ll for qemu-devel@nongnu.org; Wed, 21 Jul 2021 06:57:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:60124) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m69vD-0001qc-Kq for qemu-devel@nongnu.org; Wed, 21 Jul 2021 06:57:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1626865070; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references; bh=g5c3R01aFj93JWP6SUgk3mIk3oKSDYA7Yb7PKq77ukg=; b=NRSa4FhdVSG3tN0sJGZjDilVIBnEzIdQ93CkxF/Vt9KdMGhWhwZhWMQO9wRKkeF6J5FRVb aWBnQbKXtHGHSutX7FENx09fgTeuDOcqVof+iuOu1s5uSej+YTjMbosF2VBkRwgOeGs9eF nqojxAoBGOkpU1ww8Guksu0l1kTki44= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-103-Znj_B02gNu2X1L8wu1YP4g-1; Wed, 21 Jul 2021 06:57:48 -0400 X-MC-Unique: Znj_B02gNu2X1L8wu1YP4g-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B6FD05A064; Wed, 21 Jul 2021 10:57:47 +0000 (UTC) Received: from redhat.com (ovpn-114-135.ams2.redhat.com [10.36.114.135]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3A6C35453A; Wed, 21 Jul 2021 10:57:42 +0000 (UTC) Date: Wed, 21 Jul 2021 11:57:39 +0100 From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= To: "Dr. David Alan Gilbert" Subject: Re: [PATCH 4/5] migration: Teach QEMUFile to be QIOChannel-aware Message-ID: References: <20210721012134.792845-1-peterx@redhat.com> <20210721012134.792845-5-peterx@redhat.com> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/2.0.7 (2021-05-04) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Received-SPF: pass client-ip=216.205.24.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.459, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= Cc: Peter Maydell , Lukas Straub , Juan Quintela , qemu-devel@nongnu.org, Peter Xu , Leonardo Bras Soares Passos Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" On Wed, Jul 21, 2021 at 11:27:44AM +0100, Dr. David Alan Gilbert wrote: > * Peter Xu (peterx@redhat.com) wrote: > > migration uses QIOChannel typed qemufiles. In follow up patches, we'll need > > the capability to identify this fact, so that we can get the backing QIOChannel > > from a QEMUFile. > > > > We can also define types for QEMUFile but so far since we only need to be able > > to identify QIOChannel, introduce a boolean which is simpler. > > > > No functional change. > > > > Signed-off-by: Peter Xu > > This is messy but I can't see another quick way; the better way would be > to add an OBJECT or QIOCHannel wrapper for BlockDriverState. I looked at making a QIOChannel for BlockDriverState but it was not as easy as it might seem. The problem is that the QEMUFile get_buffer / write_buffer methods take a offset at which the I/O operation is required to be applied. For the existing QIOChannel impl for migration, we simply ignore the 'pos' argument entirely, since it is irrelevant for the main migration channel doing streaming. For a BlockDriverState based impl though I think we need to honour "pos" in some manner. I think it ought to be possible to rewrite the savevm code so that it uses 'seek' in the few places it needs to, and then we can drop "pos" from get_buffer/write_buffer, but that requires careful consideration. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|