From nobody Sun Nov 10 20:47:58 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1697451274; cv=none; d=zohomail.com; s=zohoarc; b=bjRHE6XaIGIL4iTu3rfv7NeC4zr1jCYmUWXzYlMhJ1JkLDDY9Lv5zGuMzFubzFlQALhR6NxdOb/rFTPCiJuGOrIaVjAzLOVw9CNsU7PudQ7jJdJg3/i6QFNX62M9fofuJRB58aplgnpRCT/W8sqiPIN++5LXLJfTDPZVYAW+0a8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1697451274; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=pz6NvAlGZ381RFyPcRI1ZC88cLxxXxRlnofiW9awMeo=; b=NtC78NzwXm1aRdTmlC9xH3oKi4egwBWqUShvpVCj8fYF/remiSYHdSM4gE/nZvM1k0lRf58Nmsq//nUk7FJ9wANMyH//8BJbm19diGhwArrXuJkf93FD6pMqWsXBIYccOKH1WrKjGZSz9KP5/FzsUnpO1Ck1qDRoFEY4j0R7pt0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1697451274611383.07794945589967; Mon, 16 Oct 2023 03:14:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qsKXe-0005Rm-3x; Mon, 16 Oct 2023 06:09:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qsKX0-000499-U3 for qemu-devel@nongnu.org; Mon, 16 Oct 2023 06:09:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qsKWu-0007kO-MC for qemu-devel@nongnu.org; Mon, 16 Oct 2023 06:09:02 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-59-8vZaJYuNMDG_iQCqjrlRgw-1; Mon, 16 Oct 2023 06:08:52 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 45971800162; Mon, 16 Oct 2023 10:08:52 +0000 (UTC) Received: from secure.mitica (unknown [10.39.194.127]) by smtp.corp.redhat.com (Postfix) with ESMTP id B571363F21; Mon, 16 Oct 2023 10:08:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697450935; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pz6NvAlGZ381RFyPcRI1ZC88cLxxXxRlnofiW9awMeo=; b=RMVycOAtjHfWXeu43AZnQfaRAoQbgMyx6uqq/RksD8eT62oGht3j1K/VcjugRBAutCMJgf kzQT3j2UOTsHEGn2cOpuVwSfUZnsWg6hUylR6LFKx3R06KEH8NDAw1+Z6uGPfJ8sMRAl9p 6abX1zvdL44wafHV++NxMiMq3zJTA4I= X-MC-Unique: 8vZaJYuNMDG_iQCqjrlRgw-1 From: Juan Quintela To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, Paolo Bonzini , Vladimir Sementsov-Ogievskiy , Fam Zheng , Cleber Rosa , Eric Blake , Li Zhijian , Peter Xu , Markus Armbruster , John Snow , Stefan Hajnoczi , Juan Quintela , Leonardo Bras , Laurent Vivier , Fabiano Rosas , Thomas Huth Subject: [PULL 34/38] migration/ram: Move xbzrle zero page handling into save_zero_page Date: Mon, 16 Oct 2023 12:07:02 +0200 Message-ID: <20231016100706.2551-35-quintela@redhat.com> In-Reply-To: <20231016100706.2551-1-quintela@redhat.com> References: <20231016100706.2551-1-quintela@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 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; Received-SPF: pass client-ip=170.10.129.124; envelope-from=quintela@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1697451276987100003 Content-Type: text/plain; charset="utf-8" From: Fabiano Rosas It makes a bit more sense to have the zero page handling of xbzrle right where we save the zero page. Also invert the exit condition to remove one level of indentation which makes the next patch easier to grasp. Reviewed-by: Peter Xu Signed-off-by: Fabiano Rosas Reviewed-by: Juan Quintela Signed-off-by: Juan Quintela Message-ID: <20231011184604.32364-6-farosas@suse.de> --- migration/ram.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index 2ec28c4507..229cad5c74 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -1168,21 +1168,34 @@ static int save_zero_page_to_file(PageSearchStatus = *pss, RAMBlock *block, * * Returns the number of pages written. * + * @rs: current RAM state * @pss: current PSS channel * @block: block that contains the page we want to send * @offset: offset inside the block for the page */ -static int save_zero_page(PageSearchStatus *pss, RAMBlock *block, +static int save_zero_page(RAMState *rs, PageSearchStatus *pss, RAMBlock *b= lock, ram_addr_t offset) { int len =3D save_zero_page_to_file(pss, block, offset); =20 - if (len) { - stat64_add(&mig_stats.zero_pages, 1); - ram_transferred_add(len); - return 1; + if (!len) { + return -1; } - return -1; + + stat64_add(&mig_stats.zero_pages, 1); + ram_transferred_add(len); + + /* + * Must let xbzrle know, otherwise a previous (now 0'd) cached + * page would be stale. + */ + if (rs->xbzrle_started) { + XBZRLE_cache_lock(); + xbzrle_cache_zero_page(block->offset + offset); + XBZRLE_cache_unlock(); + } + + return 1; } =20 /* @@ -2139,16 +2152,8 @@ static int ram_save_target_page_legacy(RAMState *rs,= PageSearchStatus *pss) return 1; } =20 - res =3D save_zero_page(pss, block, offset); + res =3D save_zero_page(rs, pss, block, offset); if (res > 0) { - /* Must let xbzrle know, otherwise a previous (now 0'd) cached - * page would be stale - */ - if (rs->xbzrle_started) { - XBZRLE_cache_lock(); - xbzrle_cache_zero_page(block->offset + offset); - XBZRLE_cache_unlock(); - } return res; } =20 --=20 2.41.0