From nobody Sun May 12 11:40:54 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=suse.de ARC-Seal: i=1; a=rsa-sha256; t=1711052006; cv=none; d=zohomail.com; s=zohoarc; b=HsDZ6YStfCsCiJBDSG79RoSzY2Al+L1jSzPLYy3KaUu//XqauFJoYFhQObA8Q9rX2gL026fRJo9eawEeAh6WmNGdIdg00s5FTXdK/AdAUHv2OOWogIh954A8ocT9itVMkuZ71V+DSKeknzz0xBDpSwZqjjW01KXevMS9XqMFwd4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1711052006; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SOJMIwp8p6Z7dSXDaTOyjfgw1f1dQ+NCC450ewsAuiw=; b=lpDdi9J3eSGMCUlIXU4ohIOKJXA7nq9MYYYv7aCulL9ne5WMvc/xfREAxZQGKOKwHflnVX9OKFvu0tyopBgrqZhJreJ8Db4ctWPqj7eBjA7exIanQYmw7YflPgm9FoFZY8mvlTYfUNVE81QWtB617zKEEisi/aezYmbFdz6ndhI= 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 1711052006787960.3014190117281; Thu, 21 Mar 2024 13:13:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rnOmX-0003E9-Ar; Thu, 21 Mar 2024 16:12:57 -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 1rnOmT-0003Dl-D8 for qemu-devel@nongnu.org; Thu, 21 Mar 2024 16:12:53 -0400 Received: from smtp-out1.suse.de ([195.135.223.130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rnOmQ-0006LL-UF for qemu-devel@nongnu.org; Thu, 21 Mar 2024 16:12:52 -0400 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 5AED33799B; Thu, 21 Mar 2024 20:12:46 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 26BB9138A1; Thu, 21 Mar 2024 20:12:44 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap1.dmz-prg2.suse.org with ESMTPSA id 8778NryU/GV7XwAAD6G6ig (envelope-from ); Thu, 21 Mar 2024 20:12:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1711051968; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=SOJMIwp8p6Z7dSXDaTOyjfgw1f1dQ+NCC450ewsAuiw=; b=SzPParyak4jsmBll/sw5V40DuHfIXxZZePfiLpon1RZUQQQw39Z3/w7xzdNNERxlyuhByd dXW6oFaCjatB0+iUZetp0b5UpJG4gwUVxBq+OSC+PPOqbTh1Z2+ut3AQfSSVxJCdDgS1UK AeMA1M94YAdY/akmDTLzvMBnw4nBv7E= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1711051968; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=SOJMIwp8p6Z7dSXDaTOyjfgw1f1dQ+NCC450ewsAuiw=; b=eWZnu4URGPMrt8VIUryzFdrNTSQjcOrKd3+NVmXwpUaGMDr9UQIvAb2jtfstxhUAxDl80f HCP1cGLJqzBiUKCQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1711051966; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=SOJMIwp8p6Z7dSXDaTOyjfgw1f1dQ+NCC450ewsAuiw=; b=NyjTCPsy2Bh0b2BcO2uk4o6Bvx8r6dAhgfFSzikvoTa6S6XrumYW7Umc8UM5HxS+S/34b+ kKdgrMU32Gb68hVxOCtKQxaLBxzb7EO05pyIPjYt5xcwu+hcjO2Qqt2NfU1M1ndIWMdGWa gZZyx+Ozy6mAFSMqIZweHVPvgc8mNBs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1711051966; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=SOJMIwp8p6Z7dSXDaTOyjfgw1f1dQ+NCC450ewsAuiw=; b=ZkZK6FZhf7jKYg1xCzsFaIoQv2YYo+eHWU4ZIqJHdcV2jbGGi2T6abDTixGMEn29hsmQ4Z Ah9uvqTXrbN1E6Ag== From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: Hao Xiang , Peter Xu Subject: [PATCH] migration/multifd: Fix clearing of mapped-ram zero pages Date: Thu, 21 Mar 2024 17:12:42 -0300 Message-Id: <20240321201242.6009-1-farosas@suse.de> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: / Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=NyjTCPsy; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=ZkZK6FZh X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [0.80 / 50.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_SOME(0.00)[]; R_MISSING_CHARSET(2.50)[]; BROKEN_CONTENT_TYPE(1.50)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[suse.de:+]; MX_GOOD(-0.01)[]; NEURAL_HAM_SHORT(-0.20)[-0.999]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; BAYES_HAM(-0.69)[83.22%]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; MID_CONTAINS_FROM(1.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:email,gitlab.com:url]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: 0.80 X-Rspamd-Queue-Id: 5AED33799B 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=195.135.223.130; envelope-from=farosas@suse.de; helo=smtp-out1.suse.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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.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 @suse.de) (identity @suse.de) X-ZM-MESSAGEID: 1711052007355100001 Content-Type: text/plain; charset="utf-8" When the zero page detection is done in the multifd threads, we need to iterate the second part of the pages->offset array and clear the file bitmap for each zero page. The piece of code we merged to do that is wrong. The reason this has passed all the tests is because the bitmap is initialized with zeroes already, so clearing the bits only really has an effect during live migration and when a data page goes from having data to no data. Fixes: 303e6f54f9 ("migration/multifd: Implement zero page transmission on = the multifd thread.") Signed-off-by: Fabiano Rosas --- CI run: https://gitlab.com/farosas/qemu/-/pipelines/1222882269 --- migration/multifd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/migration/multifd.c b/migration/multifd.c index d2f0238f70..2802afe79d 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -111,7 +111,6 @@ void multifd_send_channel_created(void) static void multifd_set_file_bitmap(MultiFDSendParams *p) { MultiFDPages_t *pages =3D p->pages; - uint32_t zero_num =3D p->pages->num - p->pages->normal_num; =20 assert(pages->block); =20 @@ -119,7 +118,7 @@ static void multifd_set_file_bitmap(MultiFDSendParams *= p) ramblock_set_file_bmap_atomic(pages->block, pages->offset[i], true= ); } =20 - for (int i =3D p->pages->num; i < zero_num; i++) { + for (int i =3D p->pages->normal_num; i < p->pages->num; i++) { ramblock_set_file_bmap_atomic(pages->block, pages->offset[i], fals= e); } } --=20 2.35.3