From nobody Thu Nov 13 09:11:21 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1579008196; cv=none; d=zohomail.com; s=zohoarc; b=PMv4l/RVzTW1I2n2laDJNnNyObPY+d7Uqz0C/3YJ0I8v4AN29qS54Vrt7KBFjqMPh7cl2FfqCitHqUatiuGBncXVkNFuxv5T7rk0VVdH5Xsa26uo/tIAdPMGSdTYKqdCeWAt4jO208vlM4hOGo1HuDRzS89eKDJnqiaKcqbVzmo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1579008196; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WKNiJnjAFJa2vhNGxGRB9XZG1JZ0UkZB55Yk7BZwoSE=; b=ZBM33Os0f5BBD2hUD2arVp3xMMMRyvOgsBRlu5sxYFLXNKkgum0FroZVk84xlnhLeM70yAm6Ku0Rpa76TPD/vPtqOUeKfb2v5ROPxmp7JQwrWru0y7Y3B4WL6IVO6yvZ+HAnLkD1t1PNw4uDHpKNWIpf5T+8ZPe/yta9XZbCtlg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1579008196662435.8274797811655; Tue, 14 Jan 2020 05:23:16 -0800 (PST) Received: from localhost ([::1]:39460 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1irMA7-0005KM-95 for importer@patchew.org; Tue, 14 Jan 2020 08:23:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41630) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1irLk2-0003sn-6j for qemu-devel@nongnu.org; Tue, 14 Jan 2020 07:56:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1irLjy-0002Cq-FW for qemu-devel@nongnu.org; Tue, 14 Jan 2020 07:56:18 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:23167 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1irLjv-0002CU-F9 for qemu-devel@nongnu.org; Tue, 14 Jan 2020 07:56:11 -0500 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-72-Ktts2onxOGG8-Gr9j2VFlw-1; Tue, 14 Jan 2020 07:56:09 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9E01C107ACCC; Tue, 14 Jan 2020 12:56:07 +0000 (UTC) Received: from secure.mitica (ovpn-116-207.ams2.redhat.com [10.36.116.207]) by smtp.corp.redhat.com (Postfix) with ESMTP id 853E55D9E5; Tue, 14 Jan 2020 12:55:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579006571; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WKNiJnjAFJa2vhNGxGRB9XZG1JZ0UkZB55Yk7BZwoSE=; b=TDUylQMHJLcEHDBtBH11iMbmbHUTOFW2d1jlt2uGxIGlhKuvp1BDoh4EBj8Kxb91Cd/y9q /xNm174O/CjzvIafh3a87imgFEwzWyIBmv0DJUC9PdLCW4Tg7e9+PK5hPYJRspOoKV2u9+ 5ncJaPvGpppGY1XGyCS52MRUdsYXWlo= From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PULL 22/30] migration/multifd: clean pages after filling packet Date: Tue, 14 Jan 2020 13:52:46 +0100 Message-Id: <20200114125254.4515-23-quintela@redhat.com> In-Reply-To: <20200114125254.4515-1-quintela@redhat.com> References: <20200114125254.4515-1-quintela@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-MC-Unique: Ktts2onxOGG8-Gr9j2VFlw-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 205.139.110.120 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: , Cc: Laurent Vivier , Peter Maydell , Thomas Huth , Corey Minyard , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Eduardo Habkost , Juan Quintela , Stefan Weil , Jason Wang , "Michael S. Tsirkin" , "Dr. David Alan Gilbert" , Stefan Berger , qemu-arm@nongnu.org, qemu-ppc@nongnu.org, Wei Yang , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , Richard Henderson , David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Wei Yang This is a preparation for the next patch: not use multifd during postcopy. Without enabling postcopy, everything looks good. While after enabling postcopy, migration may fail even not use multifd during postcopy. The reason is the pages is not properly cleared and *old* target page will continue to be transferred. After clean pages, migration succeeds. Signed-off-by: Wei Yang Reviewed-by: Juan Quintela Signed-off-by: Juan Quintela --- migration/ram.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index fd1155f735..561961ef24 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -955,10 +955,10 @@ static int multifd_send_pages(RAMState *rs) } qemu_mutex_unlock(&p->mutex); } - p->pages->used =3D 0; + assert(!p->pages->used); + assert(!p->pages->block); =20 p->packet_num =3D multifd_send_state->packet_num++; - p->pages->block =3D NULL; multifd_send_state->pages =3D p->pages; p->pages =3D pages; transferred =3D ((uint64_t) pages->used) * TARGET_PAGE_SIZE + p->packe= t_len; @@ -1154,6 +1154,8 @@ static void *multifd_send_thread(void *opaque) p->flags =3D 0; p->num_packets++; p->num_pages +=3D used; + p->pages->used =3D 0; + p->pages->block =3D NULL; qemu_mutex_unlock(&p->mutex); =20 trace_multifd_send(p->id, packet_num, used, flags, --=20 2.24.1