From nobody Sun Nov 10 20:48:08 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=1697451156; cv=none; d=zohomail.com; s=zohoarc; b=Sv0DEdr5LcMg/zaJuWu4t3wbxTQk4Gcjnt8tWtdu7U+vqs4ppOxWgPkcmGwD4Zrlghb3n5ApwQjZfpQILTQq4zsoeQtbx5CY/beVQlCPp2L/egMXxwHxuskugJ6A0nWERMcJvnYflwLJTMP47P/IUljcRfH0bP0xzWhj5t1bVBc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1697451156; 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=b4rI2YBbNoLDRETHA/IHNLDNm237o+PQkfZNTOumI8Q=; b=YyiMo0czdtly1pQ6ViSa0aSlRRxn7AEQ4BHYMDKxpfdtyiVvvvV1O34EOMmEuvZvGbWlcOmPnrOSWYtwZpXRptWOkckH41QLoMnNX5DbZitqM+FeN+PgLvpCFqT/RnqNUgz+qU2APhj4LT+nvua8fhpJCaXVi1MTw0cy8c0uEis= 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 1697451156176987.0588392644032; Mon, 16 Oct 2023 03:12:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qsKXk-0006X7-7s; Mon, 16 Oct 2023 06:09:48 -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 1qsKXD-0004uX-7L for qemu-devel@nongnu.org; Mon, 16 Oct 2023 06:09:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qsKX8-0007tI-8n for qemu-devel@nongnu.org; Mon, 16 Oct 2023 06:09:14 -0400 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-642-MPxirYzUPnuNW_YqXHt5rg-1; Mon, 16 Oct 2023 06:08:55 -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 1AE0C29AA2E6; Mon, 16 Oct 2023 10:08:55 +0000 (UTC) Received: from secure.mitica (unknown [10.39.194.127]) by smtp.corp.redhat.com (Postfix) with ESMTP id 86DEB63F45; Mon, 16 Oct 2023 10:08:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1697450948; 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=b4rI2YBbNoLDRETHA/IHNLDNm237o+PQkfZNTOumI8Q=; b=CeZ4mElDarmVSYmtAy8fMXxszSjv1QzR1ZeCQ8EDFgm5UgRhE5/KN+u/e4RjDn8qfQMi8C wUL2aa6Q8W93D15CThPmbb0/c8qrf/cYE+cPGHdibFwoxEIYRRPX5aJ4SBBWh/n7GS0oqC GLB6lQ1CcNCI0Z/Z3HB7LIfnxE0XJOs= X-MC-Unique: MPxirYzUPnuNW_YqXHt5rg-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 35/38] migration/ram: Merge save_zero_page functions Date: Mon, 16 Oct 2023 12:07:03 +0200 Message-ID: <20231016100706.2551-36-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.133.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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 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: 1697451158171100003 Content-Type: text/plain; charset="utf-8" From: Fabiano Rosas We don't need to do this in two pieces. One single function makes it easier to grasp, specially since it removes the indirection on the return value handling. Reviewed-by: Peter Xu Signed-off-by: Fabiano Rosas Reviewed-by: Juan Quintela Signed-off-by: Juan Quintela Message-ID: <20231011184604.32364-7-farosas@suse.de> --- migration/ram.c | 46 +++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 33 deletions(-) diff --git a/migration/ram.c b/migration/ram.c index 229cad5c74..c844151ee9 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -1137,32 +1137,6 @@ void ram_release_page(const char *rbname, uint64_t o= ffset) ram_discard_range(rbname, offset, TARGET_PAGE_SIZE); } =20 -/** - * save_zero_page_to_file: send the zero page to the file - * - * Returns the size of data written to the file, 0 means the page is not - * a zero page - * - * @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_to_file(PageSearchStatus *pss, RAMBlock *block, - ram_addr_t offset) -{ - uint8_t *p =3D block->host + offset; - QEMUFile *file =3D pss->pss_channel; - int len =3D 0; - - if (buffer_is_zero(p, TARGET_PAGE_SIZE)) { - len +=3D save_page_header(pss, file, block, offset | RAM_SAVE_FLAG= _ZERO); - qemu_put_byte(file, 0); - len +=3D 1; - ram_release_page(block->idstr, offset); - } - return len; -} - /** * save_zero_page: send the zero page to the stream * @@ -1176,12 +1150,19 @@ static int save_zero_page_to_file(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); + uint8_t *p =3D block->host + offset; + QEMUFile *file =3D pss->pss_channel; + int len =3D 0; =20 - if (!len) { - return -1; + if (!buffer_is_zero(p, TARGET_PAGE_SIZE)) { + return 0; } =20 + len +=3D save_page_header(pss, file, block, offset | RAM_SAVE_FLAG_ZER= O); + qemu_put_byte(file, 0); + len +=3D 1; + ram_release_page(block->idstr, offset); + stat64_add(&mig_stats.zero_pages, 1); ram_transferred_add(len); =20 @@ -1195,7 +1176,7 @@ static int save_zero_page(RAMState *rs, PageSearchSta= tus *pss, RAMBlock *block, XBZRLE_cache_unlock(); } =20 - return 1; + return len; } =20 /* @@ -2152,9 +2133,8 @@ static int ram_save_target_page_legacy(RAMState *rs, = PageSearchStatus *pss) return 1; } =20 - res =3D save_zero_page(rs, pss, block, offset); - if (res > 0) { - return res; + if (save_zero_page(rs, pss, block, offset)) { + return 1; } =20 /* --=20 2.41.0