From nobody Sun Nov 24 07:27:56 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=1724857051; cv=none; d=zohomail.com; s=zohoarc; b=Q617MfneN43eEcsIFcihxtCcSYaSq3DJS6dwOOPHTJk4wgiC9hG41sEk1ZAjvaSa2nCTv+2biCse1DAWM/T69fjHlMozOSqrAow7mKc1DV/zZOHoDbT7Vo2JO9VkFJruAwZqZBvWZGrPPdtCDPGPrChjvznspvIbvMiNiT0zwQI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1724857051; h=Content-Type: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=UP+7srMjrosEIrUzHZWN1svuA5ODS+yKmeGwisfan0k=; b=EL93RiuuYkMMagKvq+2+aD5DzmNqkHUOVseAlVEaLI3eaZS5XeLYI9Osa1NX9y8c8sGpf2fUiUKmtYN2OQrykRYc/xEfKfxN6GfqEfZV3B81qgP5th9yOmh5vsgqMpVLRYlm9noPbby85yG5Ds1mqsPdAHn2oUjoYs6f9ZmEvOo= 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 1724857050999918.0738550678311; Wed, 28 Aug 2024 07:57:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sjK6Z-0002U9-7o; Wed, 28 Aug 2024 10:57:03 -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 1sjK6V-0002ND-Rv for qemu-devel@nongnu.org; Wed, 28 Aug 2024 10:56:59 -0400 Received: from smtp-out2.suse.de ([195.135.223.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sjK6U-00027h-6M for qemu-devel@nongnu.org; Wed, 28 Aug 2024 10:56:59 -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-out2.suse.de (Postfix) with ESMTPS id 2510F1FC31; Wed, 28 Aug 2024 14:56:56 +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 F1BAE1398F; Wed, 28 Aug 2024 14:56:54 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 4J6ALbY6z2YnRgAAD6G6ig (envelope-from ); Wed, 28 Aug 2024 14:56:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724857016; h=from:from:reply-to: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=UP+7srMjrosEIrUzHZWN1svuA5ODS+yKmeGwisfan0k=; b=BgEeMkYdU30qvRx84SJdLd/RJwW4AEFgG5xTHQIeT4LDXBhvcSC+t/dztJ74tb2FA8igOO 3TMmXih+5TV+coiTQh4icL+K+yzUg6b6k/96LQwb0b3ia7IogyiNCXsCLZUjFYSW7x0kUq WMKoF0BLEinQAQ92LhsZ9dxze2dsETk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724857016; h=from:from:reply-to: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=UP+7srMjrosEIrUzHZWN1svuA5ODS+yKmeGwisfan0k=; b=Sx0DOL9TrBgxHOqJjBoLdbbvTBTFZppUnq+Q4zXhXYZlBxHEU8C5sIOhL604Y2o9AVCrqX DaVyeA/CcYl+vSCQ== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=BgEeMkYd; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=Sx0DOL9T DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724857016; h=from:from:reply-to: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=UP+7srMjrosEIrUzHZWN1svuA5ODS+yKmeGwisfan0k=; b=BgEeMkYdU30qvRx84SJdLd/RJwW4AEFgG5xTHQIeT4LDXBhvcSC+t/dztJ74tb2FA8igOO 3TMmXih+5TV+coiTQh4icL+K+yzUg6b6k/96LQwb0b3ia7IogyiNCXsCLZUjFYSW7x0kUq WMKoF0BLEinQAQ92LhsZ9dxze2dsETk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724857016; h=from:from:reply-to: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=UP+7srMjrosEIrUzHZWN1svuA5ODS+yKmeGwisfan0k=; b=Sx0DOL9TrBgxHOqJjBoLdbbvTBTFZppUnq+Q4zXhXYZlBxHEU8C5sIOhL604Y2o9AVCrqX DaVyeA/CcYl+vSCQ== From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: Peter Xu , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v7 1/4] migration/multifd: Stop changing the packet on recv side Date: Wed, 28 Aug 2024 11:56:47 -0300 Message-Id: <20240828145650.15879-2-farosas@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240828145650.15879-1-farosas@suse.de> References: <20240828145650.15879-1-farosas@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 2510F1FC31 X-Spam-Score: -5.51 X-Rspamd-Action: no action X-Spamd-Result: default: False [-5.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_SOME(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; RCVD_TLS_ALL(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[linaro.org:email,suse.de:dkim,suse.de:mid,suse.de:email,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DKIM_TRACE(0.00)[suse.de:+] X-Rspamd-Server: rspamd1.dmz-prg2.suse.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; Received-SPF: pass client-ip=195.135.223.131; envelope-from=farosas@suse.de; helo=smtp-out2.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, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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) X-ZM-MESSAGEID: 1724857053042116600 As observed by Philippe, the multifd_ram_unfill_packet() function currently leaves the MultiFDPacket structure with mixed endianness. This is harmless, but ultimately not very clean. Stop touching the received packet and do the necessary work using stack variables instead. While here tweak the error strings and fix the space before semicolons. Also remove the "100 times bigger" comment because it's just one possible explanation for a size mismatch and it doesn't even match the code. CC: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Fabiano Rosas Reviewed-by: Peter Xu --- migration/multifd-nocomp.c | 29 ++++++++++++----------------- migration/multifd.c | 20 +++++++++----------- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/migration/multifd-nocomp.c b/migration/multifd-nocomp.c index f294d1b0b2..07c63f4a72 100644 --- a/migration/multifd-nocomp.c +++ b/migration/multifd-nocomp.c @@ -220,33 +220,28 @@ int multifd_ram_unfill_packet(MultiFDRecvParams *p, E= rror **errp) MultiFDPacket_t *packet =3D p->packet; uint32_t page_count =3D multifd_ram_page_count(); uint32_t page_size =3D multifd_ram_page_size(); + uint32_t pages_per_packet =3D be32_to_cpu(packet->pages_alloc); int i; =20 - packet->pages_alloc =3D be32_to_cpu(packet->pages_alloc); - /* - * If we received a packet that is 100 times bigger than expected - * just stop migration. It is a magic number. - */ - if (packet->pages_alloc > page_count) { - error_setg(errp, "multifd: received packet " - "with size %u and expected a size of %u", - packet->pages_alloc, page_count) ; + if (pages_per_packet > page_count) { + error_setg(errp, "multifd: received packet with %u pages, expected= %u", + pages_per_packet, page_count); return -1; } =20 p->normal_num =3D be32_to_cpu(packet->normal_pages); - if (p->normal_num > packet->pages_alloc) { - error_setg(errp, "multifd: received packet " - "with %u normal pages and expected maximum pages are %u= ", - p->normal_num, packet->pages_alloc) ; + if (p->normal_num > pages_per_packet) { + error_setg(errp, "multifd: received packet with %u non-zero pages,= " + "which exceeds maximum expected pages %u", + p->normal_num, pages_per_packet); return -1; } =20 p->zero_num =3D be32_to_cpu(packet->zero_pages); - if (p->zero_num > packet->pages_alloc - p->normal_num) { - error_setg(errp, "multifd: received packet " - "with %u zero pages and expected maximum zero pages are= %u", - p->zero_num, packet->pages_alloc - p->normal_num) ; + if (p->zero_num > pages_per_packet - p->normal_num) { + error_setg(errp, + "multifd: received packet with %u zero pages, expected = maximum %u", + p->zero_num, pages_per_packet - p->normal_num); return -1; } =20 diff --git a/migration/multifd.c b/migration/multifd.c index b89715fdc2..2a8cd9174c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -230,22 +230,20 @@ void multifd_send_fill_packet(MultiFDSendParams *p) =20 static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) { - MultiFDPacket_t *packet =3D p->packet; + const MultiFDPacket_t *packet =3D p->packet; + uint32_t magic =3D be32_to_cpu(packet->magic); + uint32_t version =3D be32_to_cpu(packet->version); int ret =3D 0; =20 - packet->magic =3D be32_to_cpu(packet->magic); - if (packet->magic !=3D MULTIFD_MAGIC) { - error_setg(errp, "multifd: received packet " - "magic %x and expected magic %x", - packet->magic, MULTIFD_MAGIC); + if (magic !=3D MULTIFD_MAGIC) { + error_setg(errp, "multifd: received packet magic %x, expected %x", + magic, MULTIFD_MAGIC); return -1; } =20 - packet->version =3D be32_to_cpu(packet->version); - if (packet->version !=3D MULTIFD_VERSION) { - error_setg(errp, "multifd: received packet " - "version %u and expected version %u", - packet->version, MULTIFD_VERSION); + if (version !=3D MULTIFD_VERSION) { + error_setg(errp, "multifd: received packet version %u, expected %u= ", + version, MULTIFD_VERSION); return -1; } =20 --=20 2.35.3 From nobody Sun Nov 24 07:27:56 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=1724857051; cv=none; d=zohomail.com; s=zohoarc; b=bmGl70bg5BX/V6NvoiPenULDVsSx2h4of6tAs68juSePHjKmwiLuNSwm/DXr3iz0+21G/XdBm3I1r29yE+isuim/9YQ4I6yv/OhqzFTT2RvlyHsZ+5UBAVrdr6KKoDdb7j+atvUuU2202tso20KLG9M4cFx6168IzArpl3aePt0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1724857051; 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=UI9nhhU0+z9UmAzui+fQPbgnK1DOQlBouwrZU0rQWYU=; b=K1ohBKnqivtQLEKMbt24Hwb1N2B8lfFBKSVKVoAqwFVOVr74s+HberKE4X8SxtWGacAf3VQXnHmKknw/5tB2uZLEuXszXEqogh29+I9Bgu7dqmns3m/WLHoi5dh2g/en6v/ekDyPBwefxTwXY0LHE3LC12UglILFD5D7UFlv/+I= 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 1724857050992353.1287211732913; Wed, 28 Aug 2024 07:57:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sjK6a-0002eU-Ql; Wed, 28 Aug 2024 10:57:04 -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 1sjK6W-0002O1-NJ for qemu-devel@nongnu.org; Wed, 28 Aug 2024 10:57:00 -0400 Received: from smtp-out2.suse.de ([195.135.223.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sjK6V-00027q-94 for qemu-devel@nongnu.org; Wed, 28 Aug 2024 10:57:00 -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-out2.suse.de (Postfix) with ESMTPS id BB56F1FC83; Wed, 28 Aug 2024 14:56:57 +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 965241398F; Wed, 28 Aug 2024 14:56:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id YEw3F7g6z2YnRgAAD6G6ig (envelope-from ); Wed, 28 Aug 2024 14:56:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724857017; 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: in-reply-to:in-reply-to:references:references; bh=UI9nhhU0+z9UmAzui+fQPbgnK1DOQlBouwrZU0rQWYU=; b=cuOAq/qDrSDIgK+YtVnrcTHbggCXAZu/qsEVKd2ArOMxgtcinZYiitBFlj3jbE3kNhShzI j2moh1NLgQ0H6oD8RLBUGNVFnrT/fOdy2svnghQtA5rGGWhLPDX77blbB+KZRtajguD4u5 revbPBSNTxLGzHYO3fu9X8Yi7V1pzQI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724857017; 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: in-reply-to:in-reply-to:references:references; bh=UI9nhhU0+z9UmAzui+fQPbgnK1DOQlBouwrZU0rQWYU=; b=J/LEBq34Nl0ubCH6GyScTL6/MMX/tC84ivYIMaQ8S3K/pWHI029RKnYiqH/TxMoo0E+DPI 4blhaD5GKTuJPyDw== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b="cuOAq/qD"; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="J/LEBq34" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724857017; 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: in-reply-to:in-reply-to:references:references; bh=UI9nhhU0+z9UmAzui+fQPbgnK1DOQlBouwrZU0rQWYU=; b=cuOAq/qDrSDIgK+YtVnrcTHbggCXAZu/qsEVKd2ArOMxgtcinZYiitBFlj3jbE3kNhShzI j2moh1NLgQ0H6oD8RLBUGNVFnrT/fOdy2svnghQtA5rGGWhLPDX77blbB+KZRtajguD4u5 revbPBSNTxLGzHYO3fu9X8Yi7V1pzQI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724857017; 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: in-reply-to:in-reply-to:references:references; bh=UI9nhhU0+z9UmAzui+fQPbgnK1DOQlBouwrZU0rQWYU=; b=J/LEBq34Nl0ubCH6GyScTL6/MMX/tC84ivYIMaQ8S3K/pWHI029RKnYiqH/TxMoo0E+DPI 4blhaD5GKTuJPyDw== From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: Peter Xu , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v7 2/4] migration/multifd: Fix p->iov leak in multifd-uadk.c Date: Wed, 28 Aug 2024 11:56:48 -0300 Message-Id: <20240828145650.15879-3-farosas@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240828145650.15879-1-farosas@suse.de> References: <20240828145650.15879-1-farosas@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: BB56F1FC83 X-Spamd-Result: default: False [-5.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_HAS_DN(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; RCVD_COUNT_TWO(0.00)[2]; RCPT_COUNT_THREE(0.00)[3]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.de:+]; TO_DN_SOME(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo, imap1.dmz-prg2.suse.org:rdns, suse.de:email, suse.de:dkim, suse.de:mid] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action X-Spam-Score: -5.01 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.131; envelope-from=farosas@suse.de; helo=smtp-out2.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, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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) X-ZM-MESSAGEID: 1724857052983116600 Content-Type: text/plain; charset="utf-8" The send_cleanup() hook should free the p->iov that was allocated at send_setup(). This was missed because the UADK code is conditional on the presence of the accelerator, so it's not tested by default. Fixes: 819dd20636 ("migration/multifd: Add UADK initialization") Reported-by: Peter Xu Signed-off-by: Fabiano Rosas Reviewed-by: Peter Xu --- migration/multifd-uadk.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/migration/multifd-uadk.c b/migration/multifd-uadk.c index 89f6a72f0e..6e6a290ae9 100644 --- a/migration/multifd-uadk.c +++ b/migration/multifd-uadk.c @@ -132,6 +132,8 @@ static void multifd_uadk_send_cleanup(MultiFDSendParams= *p, Error **errp) =20 multifd_uadk_uninit_sess(wd); p->compress_data =3D NULL; + g_free(p->iov); + p->iov =3D NULL; } =20 static inline void prepare_next_iov(MultiFDSendParams *p, void *base, --=20 2.35.3 From nobody Sun Nov 24 07:27:56 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=1724857079; cv=none; d=zohomail.com; s=zohoarc; b=oEhDHrM9NDeY05Jnc3qK1rSEsuK2iHG3XmBrYFB+byYKCkwlBqx2UxlRFPuM0CopV7hyRsvrGD5aRYSXlKTsibU4j7tLnei6fzVlw8D8JHTS8eHTX+vk5Pl3jxpUaUufxAq/D35AnFcnxEoSIliWsy7Rci7tv24SaDtD+UChzu8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1724857079; 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=yiJYFxpnlmFU2BlSY6AT3drR1Sqk0mINgi9hVhsZh9E=; b=Voip+vhqZox8p1qunEfyLrZ7Ua18Yxs41joayMd69LgtzbWlLSmFO0poAZ3GZMmcMlz21AitQcwJq/PRPIcesLNtOJxT0LGeRh3v+gpuCSSHe+tj+FuWFNYqb67TQb3uyPwnpN70OKbPw1hxPGXTHF4zzfbluL/W/38rXWTKRRM= 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 1724857079682169.83580494196792; Wed, 28 Aug 2024 07:57:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sjK6j-00033w-Ko; Wed, 28 Aug 2024 10:57:13 -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 1sjK6i-00032o-HF for qemu-devel@nongnu.org; Wed, 28 Aug 2024 10:57:12 -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 1sjK6W-000286-MK for qemu-devel@nongnu.org; Wed, 28 Aug 2024 10:57:12 -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 5E12F21B61; Wed, 28 Aug 2024 14:56:59 +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 37CE61398F; Wed, 28 Aug 2024 14:56:58 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id sIEyALo6z2YnRgAAD6G6ig (envelope-from ); Wed, 28 Aug 2024 14:56:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724857019; 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: in-reply-to:in-reply-to:references:references; bh=yiJYFxpnlmFU2BlSY6AT3drR1Sqk0mINgi9hVhsZh9E=; b=NuEBwah71XHMkzHpCoW2DMd9CrMwPtX8PBSQpHIzGewuDRCcVI6jTfAKQu5hrDCnxk/PUz oE1vlg9PW4+5smu/PFtGUD2j7A1EWJdUEDk5w1MmhUxYqnU7sDa/7cKXVQ4AKWlHkkxoKv j2ynttGzuMcP/O4to3ecABZLyf1EcJQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724857019; 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: in-reply-to:in-reply-to:references:references; bh=yiJYFxpnlmFU2BlSY6AT3drR1Sqk0mINgi9hVhsZh9E=; b=G77zHjX58M0Jk/5mj2J41kN08bvC3k1ZtmNzBtd3D1QmOjCV6I4blqPfjE5R8CDOKU31XU c8Zgd3PcwMlATPAg== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=NuEBwah7; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=G77zHjX5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724857019; 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: in-reply-to:in-reply-to:references:references; bh=yiJYFxpnlmFU2BlSY6AT3drR1Sqk0mINgi9hVhsZh9E=; b=NuEBwah71XHMkzHpCoW2DMd9CrMwPtX8PBSQpHIzGewuDRCcVI6jTfAKQu5hrDCnxk/PUz oE1vlg9PW4+5smu/PFtGUD2j7A1EWJdUEDk5w1MmhUxYqnU7sDa/7cKXVQ4AKWlHkkxoKv j2ynttGzuMcP/O4to3ecABZLyf1EcJQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724857019; 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: in-reply-to:in-reply-to:references:references; bh=yiJYFxpnlmFU2BlSY6AT3drR1Sqk0mINgi9hVhsZh9E=; b=G77zHjX58M0Jk/5mj2J41kN08bvC3k1ZtmNzBtd3D1QmOjCV6I4blqPfjE5R8CDOKU31XU c8Zgd3PcwMlATPAg== From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: Peter Xu , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v7 3/4] migration/multifd: Add a couple of asserts for p->iov Date: Wed, 28 Aug 2024 11:56:49 -0300 Message-Id: <20240828145650.15879-4-farosas@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240828145650.15879-1-farosas@suse.de> References: <20240828145650.15879-1-farosas@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 5E12F21B61 X-Spam-Score: -5.01 X-Rspamd-Action: no action X-Spamd-Result: default: False [-5.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RCPT_COUNT_THREE(0.00)[3]; ARC_NA(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.de:+]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns, imap1.dmz-prg2.suse.org:helo, suse.de:dkim, suse.de:mid, suse.de:email] X-Rspamd-Server: rspamd1.dmz-prg2.suse.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; Received-SPF: pass client-ip=195.135.223.130; envelope-from=farosas@suse.de; helo=smtp-out1.suse.de 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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) X-ZM-MESSAGEID: 1724857081052116600 Content-Type: text/plain; charset="utf-8" Check that p->iov is indeed always allocated and freed by the MultiFDMethods hooks. Suggested-by: Peter Xu Signed-off-by: Fabiano Rosas Reviewed-by: Peter Xu --- migration/multifd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/migration/multifd.c b/migration/multifd.c index 2a8cd9174c..9b200f4ad9 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -466,6 +466,7 @@ static bool multifd_send_cleanup_channel(MultiFDSendPar= ams *p, Error **errp) g_free(p->packet); p->packet =3D NULL; multifd_send_state->ops->send_cleanup(p, errp); + assert(!p->iov); =20 return *errp =3D=3D NULL; } @@ -871,6 +872,7 @@ bool multifd_send_setup(void) migrate_set_error(s, local_err); goto err; } + assert(p->iov); } =20 return true; --=20 2.35.3 From nobody Sun Nov 24 07:27:56 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=1724857075; cv=none; d=zohomail.com; s=zohoarc; b=nxJrGHWf8xfn2YtbwwWJRH4vg1xsAcxXvVOmQT+6wvW18FrAWtDMb5Ndd23vNDldqTkftz5wzIRNWfFOMvhT2N9yg7k77ey5xUEMHzUCz4zRnMUyiXZeoBCFhx6CDjEDfQtpWqfQjeDthUbpkXY6xY3FvrH3zKVUvSjkOEUM8OA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1724857075; 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=vfkl4rJMoX4v/Kru1ixqosWtzfnZu4p/EcgbmkHIoEo=; b=EWUuNHRl/mwLoJNy05pWvqD+3akzGcC9SxsvWuddfNUrgBxPno7iYT9vNnIRf8tuUHbLgadyNca2LUfghZf8fdTTH1JpvM5DSgxpG9WDisT1S6vAL91rKBv3TwswoRWdQSXG3jJJ7i+FSsZgxnvDscF7F2/P22+id5xX5uL/maQ= 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 1724857075391938.8126865793715; Wed, 28 Aug 2024 07:57:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sjK6e-0002uE-SM; Wed, 28 Aug 2024 10:57:08 -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 1sjK6c-0002mS-M0 for qemu-devel@nongnu.org; Wed, 28 Aug 2024 10:57:06 -0400 Received: from smtp-out1.suse.de ([2a07:de40:b251:101:10:150:64:1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sjK6b-00028O-3X for qemu-devel@nongnu.org; Wed, 28 Aug 2024 10:57:06 -0400 Received: from imap1.dmz-prg2.suse.org (unknown [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 00AE121B62; Wed, 28 Aug 2024 14:57:01 +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 CEC851398F; Wed, 28 Aug 2024 14:56:59 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id MALHJLs6z2YnRgAAD6G6ig (envelope-from ); Wed, 28 Aug 2024 14:56:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724857021; 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: in-reply-to:in-reply-to:references:references; bh=vfkl4rJMoX4v/Kru1ixqosWtzfnZu4p/EcgbmkHIoEo=; b=CIWqX8/7211SEYEpXRhnUWxCv9wy2zdyrP71bu98w6t835K/zVGE/x5TL3bbiTfOqBbqty 7QtePh7eJZRunaq9omald09ub25yapu473kWM9bNMCoqYsOP3q1hT9RHhrs1lcMJ1kkZUB qIwAiqRG7Slj10mbwFd2B5J4pHY03UA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724857021; 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: in-reply-to:in-reply-to:references:references; bh=vfkl4rJMoX4v/Kru1ixqosWtzfnZu4p/EcgbmkHIoEo=; b=6o0Lzt2lteYOr+YgPYgH/6yW5p/eNlrxc4E0IM/tSisr8bs9z9dwXMEVOPAGiHgaWuXnic gO5b2TNBbKdtBGCg== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1724857021; 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: in-reply-to:in-reply-to:references:references; bh=vfkl4rJMoX4v/Kru1ixqosWtzfnZu4p/EcgbmkHIoEo=; b=CIWqX8/7211SEYEpXRhnUWxCv9wy2zdyrP71bu98w6t835K/zVGE/x5TL3bbiTfOqBbqty 7QtePh7eJZRunaq9omald09ub25yapu473kWM9bNMCoqYsOP3q1hT9RHhrs1lcMJ1kkZUB qIwAiqRG7Slj10mbwFd2B5J4pHY03UA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1724857021; 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: in-reply-to:in-reply-to:references:references; bh=vfkl4rJMoX4v/Kru1ixqosWtzfnZu4p/EcgbmkHIoEo=; b=6o0Lzt2lteYOr+YgPYgH/6yW5p/eNlrxc4E0IM/tSisr8bs9z9dwXMEVOPAGiHgaWuXnic gO5b2TNBbKdtBGCg== From: Fabiano Rosas To: qemu-devel@nongnu.org Cc: Peter Xu , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v7 4/4] migration/multifd: Add documentation for multifd methods Date: Wed, 28 Aug 2024 11:56:50 -0300 Message-Id: <20240828145650.15879-5-farosas@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240828145650.15879-1-farosas@suse.de> References: <20240828145650.15879-1-farosas@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.de:email,suse.de:mid]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -2.80 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=2a07:de40:b251:101:10:150:64:1; envelope-from=farosas@suse.de; helo=smtp-out1.suse.de 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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) X-ZM-MESSAGEID: 1724857077075116600 Content-Type: text/plain; charset="utf-8" Add documentation clarifying the usage of the multifd methods. The general idea is that the client code calls into multifd to trigger send/recv of data and multifd then calls these hooks back from the worker threads at opportune moments so the client can process a portion of the data. Suggested-by: Peter Xu Signed-off-by: Fabiano Rosas Reviewed-by: Peter Xu --- migration/multifd.h | 76 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 70 insertions(+), 6 deletions(-) diff --git a/migration/multifd.h b/migration/multifd.h index 13e7a88c01..3bb96e9558 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -229,17 +229,81 @@ typedef struct { } MultiFDRecvParams; =20 typedef struct { - /* Setup for sending side */ + /* + * The send_setup, send_cleanup, send_prepare are only called on + * the QEMU instance at the migration source. + */ + + /* + * Setup for sending side. Called once per channel during channel + * setup phase. + * + * Must allocate p->iov. If packets are in use (default), one + * extra iovec must be allocated for the packet header. Any memory + * allocated in this hook must be released at send_cleanup. + * + * p->write_flags may be used for passing flags to the QIOChannel. + * + * p->compression_data may be used by compression methods to store + * compression data. + */ int (*send_setup)(MultiFDSendParams *p, Error **errp); - /* Cleanup for sending side */ + + /* + * Cleanup for sending side. Called once per channel during + * channel cleanup phase. + */ void (*send_cleanup)(MultiFDSendParams *p, Error **errp); - /* Prepare the send packet */ + + /* + * Prepare the send packet. Called as a result of multifd_send() + * on the client side, with p pointing to the MultiFDSendParams of + * a channel that is currently idle. + * + * Must populate p->iov with the data to be sent, increment + * p->iovs_num to match the amount of iovecs used and set + * p->next_packet_size with the amount of data currently present + * in p->iov. + * + * Must indicate whether this is a compression packet by setting + * p->flags. + * + * As a last step, if packets are in use (default), must prepare + * the packet by calling multifd_send_fill_packet(). + */ int (*send_prepare)(MultiFDSendParams *p, Error **errp); - /* Setup for receiving side */ + + /* + * The recv_setup, recv_cleanup, recv are only called on the QEMU + * instance at the migration destination. + */ + + /* + * Setup for receiving side. Called once per channel during + * channel setup phase. May be empty. + * + * May allocate data structures for the receiving of data. May use + * p->iov. Compression methods may use p->compress_data. + */ int (*recv_setup)(MultiFDRecvParams *p, Error **errp); - /* Cleanup for receiving side */ + + /* + * Cleanup for receiving side. Called once per channel during + * channel cleanup phase. May be empty. + */ void (*recv_cleanup)(MultiFDRecvParams *p); - /* Read all data */ + + /* + * Data receive method. Called as a result of multifd_recv() on + * the client side, with p pointing to the MultiFDRecvParams of a + * channel that is currently idle. Only called if there is data + * available to receive. + * + * Must validate p->flags according to what was set at + * send_prepare. + * + * Must read the data from the QIOChannel p->c. + */ int (*recv)(MultiFDRecvParams *p, Error **errp); } MultiFDMethods; =20 --=20 2.35.3