From patchwork Tue Nov 23 17:50:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558690 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=hFtLx1kd; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBc53DyDz9ssD for ; Wed, 24 Nov 2021 04:54:45 +1100 (AEDT) Received: from localhost ([::1]:49780 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa0B-0003he-0v for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:54:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55108) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZwx-0006Lc-K7 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:23 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:29703) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZwu-0006kJ-MU for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689879; 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=YoCZGdg8jPnZ4FJ9H5tQajzuxhFrzLy+nqeqCxQdqEQ=; b=hFtLx1kdPrQ50Lc38hHzMpEFGmQWV5E8SmPGMjXZLoPoOwPdLKgd8G5I7geNf9hbzvytcH toNIb+/+JNvuOSbwEeF8x08cnBvtBmLeeI7htWEvE6x7jQis4/PmFn7FXaz9FY3knc2WXL NAesdYmqqOIQyoL4ubk9pbCUu/Kk9YE= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-593-pHqxgECCOBmLuibzm4wKfw-1; Tue, 23 Nov 2021 12:51:18 -0500 X-MC-Unique: pHqxgECCOBmLuibzm4wKfw-1 Received: by mail-wm1-f69.google.com with SMTP id 144-20020a1c0496000000b003305ac0e03aso1560793wme.8 for ; Tue, 23 Nov 2021 09:51:18 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YoCZGdg8jPnZ4FJ9H5tQajzuxhFrzLy+nqeqCxQdqEQ=; b=U1kogrfO4Phd2rCIUW3fe+L0kqoHFiQCSe339TJjNXvcPxHqtJ9x83J96t+YOC3tjj y6FHkAwtBwVDekkHJhYMpkuMkZloXqTSWnALVf36N5QXGwmBucl4THB+H8AHGRhYR2BM iELs0POmf7Rp0jUuRDVR+BTH/NIXMwv8dOzNuvbIfBorcITxBqs0/dYkInO3Wj8B8xEt tKCd6DG8gb2Ct5AgYVQr2/wn1RE0iCTIDUN94fcz/JzCx6y2tUxYTfxUAS19+7gOlvGR /aGK8ecUxQ2c6y0Ab3SYmssbyc2IZdz/SvjnH1mqUwp5o2pWhh64Fa3r+n2WhEsBjIFc 7+mg== X-Gm-Message-State: AOAM531KTfdzh5elqYenhy50Bx/LXZhlh+Rr9ZjVVn9pa8GNsGaUSHMI eLgza7TK/VgQMD4nLUqHazrx2DSmpSdFHf5IrLssFSdIjWmKMxc1XktfR+/rnqqahBSoBw4RJcH hwyJ5ZZ9Me1mBdh3j+cIGMZ/YF9lThNn5bxsaGi26RIyAl7uNuiswQwSLcJiHFqbePb8= X-Received: by 2002:a05:600c:4e94:: with SMTP id f20mr5183719wmq.77.1637689877331; Tue, 23 Nov 2021 09:51:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJyxbbADuTgyXtcTihqmNUhRy5cc64Me3S7PaiT96Vz5HKJDljVMtl5pfpw7GOhCCxUicbnwgw== X-Received: by 2002:a05:600c:4e94:: with SMTP id f20mr5183657wmq.77.1637689876971; Tue, 23 Nov 2021 09:51:16 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id g4sm12573304wro.12.2021.11.23.09.51.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:16 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 01/23] multifd: Delete useless operation Date: Tue, 23 Nov 2021 18:50:51 +0100 Message-Id: <20211123175113.35569-2-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We are divining by page_size to multiply again in the only use. Once there, impreve the comments. Signed-off-by: Juan Quintela --- migration/multifd-zlib.c | 13 ++++--------- migration/multifd-zstd.c | 13 ++++--------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c index ab4ba75d75..3fc7813b44 100644 --- a/migration/multifd-zlib.c +++ b/migration/multifd-zlib.c @@ -42,7 +42,6 @@ struct zlib_data { */ static int zlib_send_setup(MultiFDSendParams *p, Error **errp) { - uint32_t page_count = MULTIFD_PACKET_SIZE / qemu_target_page_size(); struct zlib_data *z = g_malloc0(sizeof(struct zlib_data)); z_stream *zs = &z->zs; @@ -54,9 +53,8 @@ static int zlib_send_setup(MultiFDSendParams *p, Error **errp) error_setg(errp, "multifd %d: deflate init failed", p->id); return -1; } - /* We will never have more than page_count pages */ - z->zbuff_len = page_count * qemu_target_page_size(); - z->zbuff_len *= 2; + /* To be safe, we reserve twice the size of the packet */ + z->zbuff_len = MULTIFD_PACKET_SIZE * 2; z->zbuff = g_try_malloc(z->zbuff_len); if (!z->zbuff) { deflateEnd(&z->zs); @@ -180,7 +178,6 @@ static int zlib_send_write(MultiFDSendParams *p, uint32_t used, Error **errp) */ static int zlib_recv_setup(MultiFDRecvParams *p, Error **errp) { - uint32_t page_count = MULTIFD_PACKET_SIZE / qemu_target_page_size(); struct zlib_data *z = g_malloc0(sizeof(struct zlib_data)); z_stream *zs = &z->zs; @@ -194,10 +191,8 @@ static int zlib_recv_setup(MultiFDRecvParams *p, Error **errp) error_setg(errp, "multifd %d: inflate init failed", p->id); return -1; } - /* We will never have more than page_count pages */ - z->zbuff_len = page_count * qemu_target_page_size(); - /* We know compression "could" use more space */ - z->zbuff_len *= 2; + /* To be safe, we reserve twice the size of the packet */ + z->zbuff_len = MULTIFD_PACKET_SIZE * 2; z->zbuff = g_try_malloc(z->zbuff_len); if (!z->zbuff) { inflateEnd(zs); diff --git a/migration/multifd-zstd.c b/migration/multifd-zstd.c index 693bddf8c9..cc3b8869c0 100644 --- a/migration/multifd-zstd.c +++ b/migration/multifd-zstd.c @@ -47,7 +47,6 @@ struct zstd_data { */ static int zstd_send_setup(MultiFDSendParams *p, Error **errp) { - uint32_t page_count = MULTIFD_PACKET_SIZE / qemu_target_page_size(); struct zstd_data *z = g_new0(struct zstd_data, 1); int res; @@ -67,9 +66,8 @@ static int zstd_send_setup(MultiFDSendParams *p, Error **errp) p->id, ZSTD_getErrorName(res)); return -1; } - /* We will never have more than page_count pages */ - z->zbuff_len = page_count * qemu_target_page_size(); - z->zbuff_len *= 2; + /* To be safe, we reserve twice the size of the packet */ + z->zbuff_len = MULTIFD_PACKET_SIZE * 2; z->zbuff = g_try_malloc(z->zbuff_len); if (!z->zbuff) { ZSTD_freeCStream(z->zcs); @@ -191,7 +189,6 @@ static int zstd_send_write(MultiFDSendParams *p, uint32_t used, Error **errp) */ static int zstd_recv_setup(MultiFDRecvParams *p, Error **errp) { - uint32_t page_count = MULTIFD_PACKET_SIZE / qemu_target_page_size(); struct zstd_data *z = g_new0(struct zstd_data, 1); int ret; @@ -212,10 +209,8 @@ static int zstd_recv_setup(MultiFDRecvParams *p, Error **errp) return -1; } - /* We will never have more than page_count pages */ - z->zbuff_len = page_count * qemu_target_page_size(); - /* We know compression "could" use more space */ - z->zbuff_len *= 2; + /* To be safe, we reserve twice the size of the packet */ + z->zbuff_len = MULTIFD_PACKET_SIZE * 2; z->zbuff = g_try_malloc(z->zbuff_len); if (!z->zbuff) { ZSTD_freeDStream(z->zds); From patchwork Tue Nov 23 17:50:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558695 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=OkkHq9ez; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBg1507rz9ssD for ; Wed, 24 Nov 2021 04:57:17 +1100 (AEDT) Received: from localhost ([::1]:58228 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa2d-00015M-GN for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:57:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55140) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZwy-0006O4-00 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:26 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:44669) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZwv-0006kj-VY for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689881; 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=HWvUReG9PBYfl0CBgjMfHAgClU2nxHR6oMGRiZua6v4=; b=OkkHq9ezaeQ6cvw3PxIWyBUXj1M/qB9hCyzcHAcXgLIkJIdG+ZIR8rVzLygpbWrFCJ3IrS VA32zulTPCODeEcPFF6j0NpiMhYdRdroSyKujauN/ZRti8zRxl17vDP1V/YBDcZ/0scI+f MnQrQJIqlwxDYbvPY6SREUfp1UIwzH4= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-575-404ZUPPnPsaMpkSxnOKFTg-1; Tue, 23 Nov 2021 12:51:20 -0500 X-MC-Unique: 404ZUPPnPsaMpkSxnOKFTg-1 Received: by mail-wr1-f71.google.com with SMTP id q5-20020a5d5745000000b00178abb72486so3865729wrw.9 for ; Tue, 23 Nov 2021 09:51:20 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HWvUReG9PBYfl0CBgjMfHAgClU2nxHR6oMGRiZua6v4=; b=4a5fsIFrDR41aKbrZ8EvdHRkPDhwRc1256KQDOr74BQpo1oweedPRbIi5LhaILUoL0 n4Y5gHTCiEfwDGyZSuStjkDeWKt3BGoT/SlG7xDIjm5hBndF0MF6l3og8U/8OrahOgTa lAcL5IioyWDX4y3TlFrvX9b9Sdu/cBe4ytrP32C+6Kfi7z1uto74ULfk0ySaa0d6BxPa Mk8Of0lFYP+U2AeiXeTXBfEvTVLIeQ54AYZWrIfdjt49ghmF7UttCf03n9ySZ6MRAlpj 3PxTW+ucEBQqMexL7RmvYYBazVCyCjYcnXudi3nNzbY7PKcZSTuJu3mQ+tYQiLR66XWY 8c7A== X-Gm-Message-State: AOAM532yXsSGOLpYOKVDAgYNc+LU3rve4AE3ny4Irlxg6a61YLr8I00f Y8QqWTcfYK7vgWwtpH2345S0eQYifINxwSbWQIfn237aTFDBAGWVWkcNQEniEJl6gsODy1OErsW UVeJ+/+MHWjcAb2PlPpe9QmnrAABr9Lglr5Dikq2PTMWt/rTQ1Z24v0gbSPmcU7Wo0vY= X-Received: by 2002:a5d:47aa:: with SMTP id 10mr9942403wrb.50.1637689878815; Tue, 23 Nov 2021 09:51:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJyUUCvIsAtwJZ65EYoXKLbyB1vxkPflCpxBmVDEjmOataCSZm6ltSROX6ZBJ9dRs0D4f6vWSA== X-Received: by 2002:a5d:47aa:: with SMTP id 10mr9942372wrb.50.1637689878616; Tue, 23 Nov 2021 09:51:18 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id d6sm12548525wrx.60.2021.11.23.09.51.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:18 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 02/23] migration: Never call twice qemu_target_page_size() Date: Tue, 23 Nov 2021 18:50:52 +0100 Message-Id: <20211123175113.35569-3-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Juan Quintela --- migration/migration.c | 7 ++++--- migration/multifd.c | 7 ++++--- migration/savevm.c | 5 +++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 2c1edb2cb9..3de11ae921 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -996,6 +996,8 @@ static void populate_time_info(MigrationInfo *info, MigrationState *s) static void populate_ram_info(MigrationInfo *info, MigrationState *s) { + size_t page_size = qemu_target_page_size(); + info->has_ram = true; info->ram = g_malloc0(sizeof(*info->ram)); info->ram->transferred = ram_counters.transferred; @@ -1004,12 +1006,11 @@ static void populate_ram_info(MigrationInfo *info, MigrationState *s) /* legacy value. It is not used anymore */ info->ram->skipped = 0; info->ram->normal = ram_counters.normal; - info->ram->normal_bytes = ram_counters.normal * - qemu_target_page_size(); + info->ram->normal_bytes = ram_counters.normal * page_size; info->ram->mbps = s->mbps; info->ram->dirty_sync_count = ram_counters.dirty_sync_count; info->ram->postcopy_requests = ram_counters.postcopy_requests; - info->ram->page_size = qemu_target_page_size(); + info->ram->page_size = page_size; info->ram->multifd_bytes = ram_counters.multifd_bytes; info->ram->pages_per_second = s->pages_per_second; diff --git a/migration/multifd.c b/migration/multifd.c index 7c9deb1921..8125d0015c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -289,7 +289,8 @@ static void multifd_send_fill_packet(MultiFDSendParams *p) static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) { MultiFDPacket_t *packet = p->packet; - uint32_t pages_max = MULTIFD_PACKET_SIZE / qemu_target_page_size(); + size_t page_size = qemu_target_page_size(); + uint32_t pages_max = MULTIFD_PACKET_SIZE / page_size; RAMBlock *block; int i; @@ -358,14 +359,14 @@ static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) for (i = 0; i < p->pages->used; i++) { uint64_t offset = be64_to_cpu(packet->offset[i]); - if (offset > (block->used_length - qemu_target_page_size())) { + if (offset > (block->used_length - page_size)) { error_setg(errp, "multifd: offset too long %" PRIu64 " (max " RAM_ADDR_FMT ")", offset, block->used_length); return -1; } p->pages->iov[i].iov_base = block->host + offset; - p->pages->iov[i].iov_len = qemu_target_page_size(); + p->pages->iov[i].iov_len = page_size; } return 0; diff --git a/migration/savevm.c b/migration/savevm.c index d59e976d50..0bef031acb 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1685,6 +1685,7 @@ static int loadvm_postcopy_handle_advise(MigrationIncomingState *mis, { PostcopyState ps = postcopy_state_set(POSTCOPY_INCOMING_ADVISE); uint64_t remote_pagesize_summary, local_pagesize_summary, remote_tps; + size_t page_size = qemu_target_page_size(); Error *local_err = NULL; trace_loadvm_postcopy_handle_advise(); @@ -1741,13 +1742,13 @@ static int loadvm_postcopy_handle_advise(MigrationIncomingState *mis, } remote_tps = qemu_get_be64(mis->from_src_file); - if (remote_tps != qemu_target_page_size()) { + if (remote_tps != page_size) { /* * Again, some differences could be dealt with, but for now keep it * simple. */ error_report("Postcopy needs matching target page sizes (s=%d d=%zd)", - (int)remote_tps, qemu_target_page_size()); + (int)remote_tps, page_size); return -1; } From patchwork Tue Nov 23 17:50:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558685 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=UxNUF4d5; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBYS0jK4z9t0k for ; Wed, 24 Nov 2021 04:52:26 +1100 (AEDT) Received: from localhost ([::1]:41634 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpZxw-0006TX-AB for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:52:24 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55156) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZwz-0006QD-JM for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:25 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:52194) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZwx-0006lB-I2 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689883; 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=I5yl7RraBVeWxI7Mcwgc7ke4eCRwkzgx0TzpPRkGWrQ=; b=UxNUF4d5ey8gCMOgl31Gb574+ka08TIbQdJ6c+74DMh4AIPf/RjjrZVXseo3IGC/E1MosI VbdMckOdUksYdpC5WWexsl9d6bxzHaMeNrHvE70+dqL5UiCHpGPee8KNmNUMB+TTjqyj8j opqfQUQLoU8PJtEYQGXSNysXF3LHE6U= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-419-Gg0v9irnOgaRaZxPu3GE8Q-1; Tue, 23 Nov 2021 12:51:22 -0500 X-MC-Unique: Gg0v9irnOgaRaZxPu3GE8Q-1 Received: by mail-wm1-f70.google.com with SMTP id c8-20020a7bc848000000b0033bf856f0easo1582291wml.1 for ; Tue, 23 Nov 2021 09:51:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=I5yl7RraBVeWxI7Mcwgc7ke4eCRwkzgx0TzpPRkGWrQ=; b=TfpxW6yQf5l6MngT/xjJfeHjy7GgMm8xMUUXmKb+5XJlHB+C2WLGa3R1MNw6hjXqjl TXdOWDKen5u7HBhG3AHBXXKA68M2AOtghZCIy0L/dhU2TNjHFZBgB3MJskFNRvTvo0ua MZ5JaOe46ii5Diviq41/hJa4vt5uYTOSNUB0p8Uzvf1Zob9Liz5jW/g7J9cRskf2LFwr YHfkFf/HIcAIo+tJ9BHDiuPRoAT5zhZjAHlohrq3SqVhlFOPE1V8voQpZ89XB2FkCCVc fm0rE5a9/IoAK7l4zxMf/Dii3wSYSAGkd54UcdFOGEqi8je715WQYrHI1Qox55ffvnrI MyLg== X-Gm-Message-State: AOAM533E4Mnc5nhV48Cc0fBpmzM6pEo9yQRKFkpNJ0+fssGZ1COEvwVp +Yf+rVA7TYRAHmxMvn7SJW9fADxGWxJLxjrO6FJ/+GCNQBa1SzavwsWc+MLub5W8+UQgLxZvxPU XSJb1PsxrsY9tg8FO8277jA76/LrUnO6rj4iYZmUQ+VFbq8KuzgIIc1VdMLWZwLe/A20= X-Received: by 2002:adf:d852:: with SMTP id k18mr8848433wrl.391.1637689880475; Tue, 23 Nov 2021 09:51:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJzrmHmMZsAKjKF8AiQc08op7+DIg4eg2ucdv1EYvV2Bck1zc6YTNClmDj4ECvfdXm4RBkZPaQ== X-Received: by 2002:adf:d852:: with SMTP id k18mr8848385wrl.391.1637689880105; Tue, 23 Nov 2021 09:51:20 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id g4sm12573425wro.12.2021.11.23.09.51.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:19 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 03/23] multifd: Rename used field to num Date: Tue, 23 Nov 2021 18:50:53 +0100 Message-Id: <20211123175113.35569-4-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We will need to split it later in zero_num (number of zero pages) and normal_num (number of normal pages). This name is better. Signed-off-by: Juan Quintela --- migration/multifd.h | 2 +- migration/multifd.c | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/migration/multifd.h b/migration/multifd.h index 15c50ca0b2..86820dd028 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -55,7 +55,7 @@ typedef struct { typedef struct { /* number of used pages */ - uint32_t used; + uint32_t num; /* number of allocated pages */ uint32_t allocated; /* global number of generated multifd packets */ diff --git a/migration/multifd.c b/migration/multifd.c index 8125d0015c..8ea86d81dc 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -252,7 +252,7 @@ static MultiFDPages_t *multifd_pages_init(size_t size) static void multifd_pages_clear(MultiFDPages_t *pages) { - pages->used = 0; + pages->num = 0; pages->allocated = 0; pages->packet_num = 0; pages->block = NULL; @@ -270,7 +270,7 @@ static void multifd_send_fill_packet(MultiFDSendParams *p) packet->flags = cpu_to_be32(p->flags); packet->pages_alloc = cpu_to_be32(p->pages->allocated); - packet->pages_used = cpu_to_be32(p->pages->used); + packet->pages_used = cpu_to_be32(p->pages->num); packet->next_packet_size = cpu_to_be32(p->next_packet_size); packet->packet_num = cpu_to_be64(p->packet_num); @@ -278,7 +278,7 @@ static void multifd_send_fill_packet(MultiFDSendParams *p) strncpy(packet->ramblock, p->pages->block->idstr, 256); } - for (i = 0; i < p->pages->used; i++) { + for (i = 0; i < p->pages->num; i++) { /* there are architectures where ram_addr_t is 32 bit */ uint64_t temp = p->pages->offset[i]; @@ -332,18 +332,18 @@ static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) p->pages = multifd_pages_init(packet->pages_alloc); } - p->pages->used = be32_to_cpu(packet->pages_used); - if (p->pages->used > packet->pages_alloc) { + p->pages->num = be32_to_cpu(packet->pages_used); + if (p->pages->num > packet->pages_alloc) { error_setg(errp, "multifd: received packet " "with %d pages and expected maximum pages are %d", - p->pages->used, packet->pages_alloc) ; + p->pages->num, packet->pages_alloc) ; return -1; } p->next_packet_size = be32_to_cpu(packet->next_packet_size); p->packet_num = be64_to_cpu(packet->packet_num); - if (p->pages->used == 0) { + if (p->pages->num == 0) { return 0; } @@ -356,7 +356,7 @@ static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) return -1; } - for (i = 0; i < p->pages->used; i++) { + for (i = 0; i < p->pages->num; i++) { uint64_t offset = be64_to_cpu(packet->offset[i]); if (offset > (block->used_length - page_size)) { @@ -443,13 +443,13 @@ static int multifd_send_pages(QEMUFile *f) } qemu_mutex_unlock(&p->mutex); } - assert(!p->pages->used); + assert(!p->pages->num); assert(!p->pages->block); p->packet_num = multifd_send_state->packet_num++; multifd_send_state->pages = p->pages; p->pages = pages; - transferred = ((uint64_t) pages->used) * qemu_target_page_size() + transferred = ((uint64_t) pages->num) * qemu_target_page_size() + p->packet_len; qemu_file_update_transfer(f, transferred); ram_counters.multifd_bytes += transferred; @@ -469,12 +469,12 @@ int multifd_queue_page(QEMUFile *f, RAMBlock *block, ram_addr_t offset) } if (pages->block == block) { - pages->offset[pages->used] = offset; - pages->iov[pages->used].iov_base = block->host + offset; - pages->iov[pages->used].iov_len = qemu_target_page_size(); - pages->used++; + pages->offset[pages->num] = offset; + pages->iov[pages->num].iov_base = block->host + offset; + pages->iov[pages->num].iov_len = qemu_target_page_size(); + pages->num++; - if (pages->used < pages->allocated) { + if (pages->num < pages->allocated) { return 1; } } @@ -586,7 +586,7 @@ void multifd_send_sync_main(QEMUFile *f) if (!migrate_use_multifd()) { return; } - if (multifd_send_state->pages->used) { + if (multifd_send_state->pages->num) { if (multifd_send_pages(f) < 0) { error_report("%s: multifd_send_pages fail", __func__); return; @@ -649,7 +649,7 @@ static void *multifd_send_thread(void *opaque) qemu_mutex_lock(&p->mutex); if (p->pending_job) { - uint32_t used = p->pages->used; + uint32_t used = p->pages->num; uint64_t packet_num = p->packet_num; flags = p->flags; @@ -665,7 +665,7 @@ static void *multifd_send_thread(void *opaque) p->flags = 0; p->num_packets++; p->num_pages += used; - p->pages->used = 0; + p->pages->num = 0; p->pages->block = NULL; qemu_mutex_unlock(&p->mutex); @@ -1091,7 +1091,7 @@ static void *multifd_recv_thread(void *opaque) break; } - used = p->pages->used; + used = p->pages->num; flags = p->flags; /* recv methods don't know how to handle the SYNC flag */ p->flags &= ~MULTIFD_FLAG_SYNC; From patchwork Tue Nov 23 17:50:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558691 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=XpH6uC16; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBc60wNJz9t0k for ; Wed, 24 Nov 2021 04:54:45 +1100 (AEDT) Received: from localhost ([::1]:49852 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa0B-0003kL-M6 for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:54:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55184) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx1-0006Ri-RQ for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:29 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:36045) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZwz-0006lX-B1 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689884; 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=iPYxMrCOWugGC2Ig3skogvxaOmXOSxKYsh8Dbjvo4MY=; b=XpH6uC169fid0BszWJqEgkES8T3lWLBTEag8X3Z4Qw9VCaJWWgZ4Ys4B90OiBlKL1XeNW5 AfZiXRPL/zCzBg1O0CDV+heB32q9PSSrGAWwJXsXqXfWgae4978k4Znew/lY5XS/SU9n3q 0bK6oKaSATKYyWsEc/DsmFQkSnqw7Jw= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-394-NNj82MPeMjWwlqyj8PrIHA-1; Tue, 23 Nov 2021 12:51:23 -0500 X-MC-Unique: NNj82MPeMjWwlqyj8PrIHA-1 Received: by mail-wm1-f71.google.com with SMTP id k25-20020a05600c1c9900b00332f798ba1dso1570304wms.4 for ; Tue, 23 Nov 2021 09:51:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iPYxMrCOWugGC2Ig3skogvxaOmXOSxKYsh8Dbjvo4MY=; b=40+e1ZJu+6KGKGwZefSVxxw2R3jM4Sj/4yTaSEW98JNend8WWOY69u8e3LkZFjz1Ko T5Vp23PW9CbNp1+l2eghVWi5ZeDdeuJH+DfuWuWcrQgHqPILlmetSPD/oXffgHznEMex SL/cHYdGeo649Brs1khC+Y+8MDqdRhJ3LbusWLxlYmuKfOf/L6VtoVj21cY/XDRhToD4 xNFSNF7qDlI4Ou+viWziuJvZXeKo972uTQgnrEmss2pMXqgO7jarQbZFCpHx8Mrrv497 uh+nZG7pzDka1kLRdx7VRouW64KRfFOAT8VRRDQA0HgcQwYkug86C6QmIwwmytqbDPrr 1nMw== X-Gm-Message-State: AOAM533q+VcassOw8yrNNcif0nXlmglwjxt1lNzQlPZ1eoeEnHEPY7vN NZSo4IWk89XuJR4AlxdpIho1cHXEtaLcfX4DRJR4d/oxWj4FvwGCWCh5sNea929x3gQfbRt5vmN o5ykhEq0v6swdyL6P8/SR8hM7Hxqjh82Sm7isx1BVmFIecTOWfOL67zCTWT4mJj4WbUU= X-Received: by 2002:a05:600c:1e87:: with SMTP id be7mr5363529wmb.182.1637689881850; Tue, 23 Nov 2021 09:51:21 -0800 (PST) X-Google-Smtp-Source: ABdhPJyNJ8VmPilnB28Oy8aQoqMQJThw8B5FmxDrK78cQJtsLdauXbLgiuKu0VhAIDXLicAzPz3zIQ== X-Received: by 2002:a05:600c:1e87:: with SMTP id be7mr5363495wmb.182.1637689881640; Tue, 23 Nov 2021 09:51:21 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id l18sm12852378wrt.81.2021.11.23.09.51.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:21 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 04/23] multifd: Add missing documention Date: Tue, 23 Nov 2021 18:50:54 +0100 Message-Id: <20211123175113.35569-5-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Juan Quintela --- migration/multifd-zlib.c | 2 ++ migration/multifd-zstd.c | 2 ++ migration/multifd.c | 1 + 3 files changed, 5 insertions(+) diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c index 3fc7813b44..d0437cce2a 100644 --- a/migration/multifd-zlib.c +++ b/migration/multifd-zlib.c @@ -72,6 +72,7 @@ static int zlib_send_setup(MultiFDSendParams *p, Error **errp) * Close the channel and return memory. * * @p: Params for the channel that we are using + * @errp: pointer to an error */ static void zlib_send_cleanup(MultiFDSendParams *p, Error **errp) { @@ -94,6 +95,7 @@ static void zlib_send_cleanup(MultiFDSendParams *p, Error **errp) * * @p: Params for the channel that we are using * @used: number of pages used + * @errp: pointer to an error */ static int zlib_send_prepare(MultiFDSendParams *p, uint32_t used, Error **errp) { diff --git a/migration/multifd-zstd.c b/migration/multifd-zstd.c index cc3b8869c0..09ae1cf91a 100644 --- a/migration/multifd-zstd.c +++ b/migration/multifd-zstd.c @@ -84,6 +84,7 @@ static int zstd_send_setup(MultiFDSendParams *p, Error **errp) * Close the channel and return memory. * * @p: Params for the channel that we are using + * @errp: pointer to an error */ static void zstd_send_cleanup(MultiFDSendParams *p, Error **errp) { @@ -107,6 +108,7 @@ static void zstd_send_cleanup(MultiFDSendParams *p, Error **errp) * * @p: Params for the channel that we are using * @used: number of pages used + * @errp: pointer to an error */ static int zstd_send_prepare(MultiFDSendParams *p, uint32_t used, Error **errp) { diff --git a/migration/multifd.c b/migration/multifd.c index 8ea86d81dc..cdeffdc4c5 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -66,6 +66,7 @@ static int nocomp_send_setup(MultiFDSendParams *p, Error **errp) * For no compression this function does nothing. * * @p: Params for the channel that we are using + * @errp: pointer to an error */ static void nocomp_send_cleanup(MultiFDSendParams *p, Error **errp) { From patchwork Tue Nov 23 17:50:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558700 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=UkyrijqR; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBkG3t5Zz9t1Q for ; Wed, 24 Nov 2021 05:00:06 +1100 (AEDT) Received: from localhost ([::1]:38416 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa5M-00070F-9V for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 13:00:04 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55182) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx2-0006Rh-CL for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:29 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:20163) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx0-0006ls-DP for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689885; 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=4wKjbCKx6KWbCQkGZiOp80kwA296KWgFK4fMiq7yOmg=; b=UkyrijqRiQz4rqDl1W9FIC+cRhllZG1DGg+1Wfq0LZSaPNI7LPxYvuSLfolt4wn9G9z6Ei mcepK3FRc40txhjgW7SnImrSR7WYqkcnkZLMVsddqVXnn0upvZPCgNYYmzMrmlRd1BpOos l2rzrR/nzdai2zox4OQlp+AQp75oRCM= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-256-RUCTHVUjMFWREHZShd9qIg-1; Tue, 23 Nov 2021 12:51:24 -0500 X-MC-Unique: RUCTHVUjMFWREHZShd9qIg-1 Received: by mail-wm1-f70.google.com with SMTP id l4-20020a05600c1d0400b00332f47a0fa3so1916880wms.8 for ; Tue, 23 Nov 2021 09:51:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4wKjbCKx6KWbCQkGZiOp80kwA296KWgFK4fMiq7yOmg=; b=a1DJYLe1XJDRhyimIv5ia9n4QX/t5QDuMrEVgEZp2pBhSICz+JGmTYgNeyTS324VMf vRwUSgj81SFi//WE4X0J8mvPqiGqp9qonOB2zPUNVlWSoIQKnGiXzgbTaLQfik+r0OiF R4gWd9sGQ0afaDcD2cruxPYk9a9tOboOG0iKsWUpH/M8BpPw13Qu676vGQ0dvPwnbLX6 0SZ3P5zJ1bBj25cbYcxkYOLh0zX2knxsGWaw1udf10ATC1qH2+UirDmI3x+8a92Hl9p0 /hiaTyJjn4sV02nUqRFKfZbRXe6Z34vvK7RTZ8enIQnY+mFcYO3Deu3i+bVaiKAD/xhR paHQ== X-Gm-Message-State: AOAM5323x6pdauO6zijq+9YQtuGDrKZvk//zqXkk2125v/lC0CIKNHx8 9HWlQ2g6v5bM2st9Z90TKTwrGz4+HnEq/ZuDnWHbVoVTeSSNLItAXoZomOHuK4Wof9BbSvbijD2 mgNFFS6h9G71tysDJyf9WgzMne/wJeoRK0ZpK9nRg3OKiYerrkZCStQiyjHCIFS/a+YQ= X-Received: by 2002:a05:600c:3510:: with SMTP id h16mr5399389wmq.144.1637689883282; Tue, 23 Nov 2021 09:51:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJybd0/UmKx0Kwutp45VjDe7rHNvSs2L66P3hVWEBTC1Hkqn3ASGVoJTOvvtp9nJgpESdHmOSQ== X-Received: by 2002:a05:600c:3510:: with SMTP id h16mr5399355wmq.144.1637689883076; Tue, 23 Nov 2021 09:51:23 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id f13sm2250599wmq.29.2021.11.23.09.51.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:22 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 05/23] multifd: The variable is only used inside the loop Date: Tue, 23 Nov 2021 18:50:55 +0100 Message-Id: <20211123175113.35569-6-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Juan Quintela --- migration/multifd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/migration/multifd.c b/migration/multifd.c index cdeffdc4c5..ce7101cf9d 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -629,7 +629,6 @@ static void *multifd_send_thread(void *opaque) MultiFDSendParams *p = opaque; Error *local_err = NULL; int ret = 0; - uint32_t flags = 0; trace_multifd_send_thread_start(p->id); rcu_register_thread(); @@ -652,7 +651,7 @@ static void *multifd_send_thread(void *opaque) if (p->pending_job) { uint32_t used = p->pages->num; uint64_t packet_num = p->packet_num; - flags = p->flags; + uint32_t flags = p->flags; if (used) { ret = multifd_send_state->ops->send_prepare(p, used, From patchwork Tue Nov 23 17:50:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558703 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=gxBWqIUH; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBnT0FP4z9ssD for ; Wed, 24 Nov 2021 05:02:53 +1100 (AEDT) Received: from localhost ([::1]:46678 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa82-0004Yg-S8 for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 13:02:50 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55204) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx3-0006Sb-Lc for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:29 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:30220) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx2-0006m0-07 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689887; 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=n7CRvfZiw1Vp4lgs31TMC0mD4+lnWYLJVkK/uekYKw0=; b=gxBWqIUH4yBWR5sb2vNjfQMS4OCT2RPdi3PMRkaSLuk0ccSBT7WEt/2F7I1TeeAOh5wXtY 2f3D+I0pfLA+jNMTvcezpC0q1D3RBas6+KYokYKFyTvr3qure35qrjxBPsa5Gw7ZsiZUht eBfFJQ4hGz7BNbUaN1phOOTggEbRwIs= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-398-d1w6YdtzNqibbNovxijHKQ-1; Tue, 23 Nov 2021 12:51:26 -0500 X-MC-Unique: d1w6YdtzNqibbNovxijHKQ-1 Received: by mail-wm1-f69.google.com with SMTP id y141-20020a1c7d93000000b0033c2ae3583fso1424456wmc.5 for ; Tue, 23 Nov 2021 09:51:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=n7CRvfZiw1Vp4lgs31TMC0mD4+lnWYLJVkK/uekYKw0=; b=k7jUNdMfoV63cMbzKIqdze6/nQRp9ntqxsDsTEeRSTxFD/u6BSK8YlS+/BM6pKHeJS WWIZAX+ReEDqjvTGoaf07XRJ8rWgrwM5kCJwRYEILs1rXm/krj7fqZosHQBW5kItXvyV iFKO44FEjacZtly9X0/voYArcxqrstteWlgxmT9dZk7iGlHa+wZHm4eQfjMeHgUBKxns ArVq/lQ50gQWDsvECPH6mOSzrgpH0EUdYLcSfVYik0b7Jkz8JPnU2vf8+qzcI1F1CJNj fAqQyGmksR2tBrr7ZTV1B099lDmB7WlolauJ2BEQEDeJumsae3FFEJjYJA3tXFfKyQ3e Dyig== X-Gm-Message-State: AOAM530X4xvti8BjqHTFwmQnCBG93NL19ifWBTewr9B+OhjXO/2Ds3jb S4FZpLmtAyWAz/E7uBhnogLe1XW3Sa+eIiAl8S2yPNcLoStidgy42nsX7KX7cmDvx+SPkholwDF JtZ1TCb4SCZBOugk7asPkrlOwt8uwDkLLQsmfo78a2MPdl2UMRym1q6x3hHISnhhpozA= X-Received: by 2002:a05:600c:3489:: with SMTP id a9mr5594177wmq.53.1637689884735; Tue, 23 Nov 2021 09:51:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJwqffGwtug+s23P1XEwfrWpxHlwnR30LqFcrdXv/yRpFE7Pte/MiihWKx9heLL4yTWaDCAopA== X-Received: by 2002:a05:600c:3489:: with SMTP id a9mr5594119wmq.53.1637689884420; Tue, 23 Nov 2021 09:51:24 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id h2sm12341517wrz.23.2021.11.23.09.51.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:23 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 06/23] multifd: remove used parameter from send_prepare() method Date: Tue, 23 Nov 2021 18:50:56 +0100 Message-Id: <20211123175113.35569-7-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" It is already there as p->pages->num. Signed-off-by: Juan Quintela --- migration/multifd.h | 2 +- migration/multifd-zlib.c | 7 +++---- migration/multifd-zstd.c | 7 +++---- migration/multifd.c | 9 +++------ 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/migration/multifd.h b/migration/multifd.h index 86820dd028..7968cc5c20 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -159,7 +159,7 @@ typedef struct { /* Cleanup for sending side */ void (*send_cleanup)(MultiFDSendParams *p, Error **errp); /* Prepare the send packet */ - int (*send_prepare)(MultiFDSendParams *p, uint32_t used, Error **errp); + int (*send_prepare)(MultiFDSendParams *p, Error **errp); /* Write the send packet */ int (*send_write)(MultiFDSendParams *p, uint32_t used, Error **errp); /* Setup for receiving side */ diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c index d0437cce2a..28f0ed933b 100644 --- a/migration/multifd-zlib.c +++ b/migration/multifd-zlib.c @@ -94,10 +94,9 @@ static void zlib_send_cleanup(MultiFDSendParams *p, Error **errp) * Returns 0 for success or -1 for error * * @p: Params for the channel that we are using - * @used: number of pages used * @errp: pointer to an error */ -static int zlib_send_prepare(MultiFDSendParams *p, uint32_t used, Error **errp) +static int zlib_send_prepare(MultiFDSendParams *p, Error **errp) { struct iovec *iov = p->pages->iov; struct zlib_data *z = p->data; @@ -106,11 +105,11 @@ static int zlib_send_prepare(MultiFDSendParams *p, uint32_t used, Error **errp) int ret; uint32_t i; - for (i = 0; i < used; i++) { + for (i = 0; i < p->pages->num; i++) { uint32_t available = z->zbuff_len - out_size; int flush = Z_NO_FLUSH; - if (i == used - 1) { + if (i == p->pages->num - 1) { flush = Z_SYNC_FLUSH; } diff --git a/migration/multifd-zstd.c b/migration/multifd-zstd.c index 09ae1cf91a..4a71e96e06 100644 --- a/migration/multifd-zstd.c +++ b/migration/multifd-zstd.c @@ -107,10 +107,9 @@ static void zstd_send_cleanup(MultiFDSendParams *p, Error **errp) * Returns 0 for success or -1 for error * * @p: Params for the channel that we are using - * @used: number of pages used * @errp: pointer to an error */ -static int zstd_send_prepare(MultiFDSendParams *p, uint32_t used, Error **errp) +static int zstd_send_prepare(MultiFDSendParams *p, Error **errp) { struct iovec *iov = p->pages->iov; struct zstd_data *z = p->data; @@ -121,10 +120,10 @@ static int zstd_send_prepare(MultiFDSendParams *p, uint32_t used, Error **errp) z->out.size = z->zbuff_len; z->out.pos = 0; - for (i = 0; i < used; i++) { + for (i = 0; i < p->pages->num; i++) { ZSTD_EndDirective flush = ZSTD_e_continue; - if (i == used - 1) { + if (i == p->pages->num - 1) { flush = ZSTD_e_flush; } z->in.src = iov[i].iov_base; diff --git a/migration/multifd.c b/migration/multifd.c index ce7101cf9d..098ef8842c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -82,13 +82,11 @@ static void nocomp_send_cleanup(MultiFDSendParams *p, Error **errp) * Returns 0 for success or -1 for error * * @p: Params for the channel that we are using - * @used: number of pages used * @errp: pointer to an error */ -static int nocomp_send_prepare(MultiFDSendParams *p, uint32_t used, - Error **errp) +static int nocomp_send_prepare(MultiFDSendParams *p, Error **errp) { - p->next_packet_size = used * qemu_target_page_size(); + p->next_packet_size = p->pages->num * qemu_target_page_size(); p->flags |= MULTIFD_FLAG_NOCOMP; return 0; } @@ -654,8 +652,7 @@ static void *multifd_send_thread(void *opaque) uint32_t flags = p->flags; if (used) { - ret = multifd_send_state->ops->send_prepare(p, used, - &local_err); + ret = multifd_send_state->ops->send_prepare(p, &local_err); if (ret != 0) { qemu_mutex_unlock(&p->mutex); break; From patchwork Tue Nov 23 17:50:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558693 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=E0iaeN3Y; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBcB5vWWz9ssD for ; Wed, 24 Nov 2021 04:54:50 +1100 (AEDT) Received: from localhost ([::1]:50276 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa0G-00040f-K4 for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:54:48 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55218) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx5-0006VI-8X for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:31 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:59571) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx3-0006n6-6A for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689888; 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=MOd9dAT2qviKqXWQGE/2MlmDx/uVBf/xMhIb4W/uK3o=; b=E0iaeN3YU3voVYfLZZyWu8alxiMAEXaOZHP7khzgqkunlejZ2EcPUdeMZqlR3EqWcmTL+j uiL8IHIOphUPTdV4wajSkqKt/LPVpcU3cXPoWrWkSjKTI7WcrmwCstzF0hn5A26tvAJovC 6yrYaJm/aXB0UO5yjhwYdF/xKu4Yjec= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-395-sSaQq2TmNq20IJ0qYpkCSA-1; Tue, 23 Nov 2021 12:51:27 -0500 X-MC-Unique: sSaQq2TmNq20IJ0qYpkCSA-1 Received: by mail-wm1-f71.google.com with SMTP id r129-20020a1c4487000000b00333629ed22dso1568606wma.6 for ; Tue, 23 Nov 2021 09:51:27 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MOd9dAT2qviKqXWQGE/2MlmDx/uVBf/xMhIb4W/uK3o=; b=Fm6gRSmQkDnznKwKBRB6Wl2GTdI666J2aSMQaxB0nGCErcfSjaRH2GdyC3QEZZ7lfh 8x6kcxcxNRvu1foOfrtrxtUCEx+ce3Yd06KCQPMrf9WF4NTweEOUG55LjFdQgLGSv9Uk iDeUeMt4VXRG7pCpKrwwaNstiTgq1zvnt3KELhI7nM1X4754w7U2V60HT8CZzqyGEERd tYITFyr4Zzddbc8eb/KsxREdWYlIcCcBrom2I8ShXAEs/sAhX9iS4feUYbP5fIVbUv8l hntqLNv9d9S1Yrz7SwbflabpszYzKNdhQnxXtxAN4IS5v8+3WZJjrdRGX2s8VzonDlOW rbiA== X-Gm-Message-State: AOAM533xOiPeI9ZvgZOFmzc14I8E6z2FMhxDbbYwSaNxKHEozDW/YRrw xkVkhsi8lcK7IsYHWuqMp0kdk4yxQFrjiRhoTUN7Iu5f+8m/SgSqxUC8r0wnwFgFBT82IrYWCY0 OY3i65BPVKAp0gI5EboBAhT3FfjNeZzeJ63PZfQs1t2vtPHd1iGkk4zXMy0IXHHS8bzc= X-Received: by 2002:a1c:2585:: with SMTP id l127mr5341236wml.72.1637689886228; Tue, 23 Nov 2021 09:51:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJxBUBMK1AppKO2UzauW4Nx7UCCglMSR45SFMX41PZ+BXdjnGU+sWLIUcDxRVD2nd2lLAtP+ug== X-Received: by 2002:a1c:2585:: with SMTP id l127mr5341172wml.72.1637689885825; Tue, 23 Nov 2021 09:51:25 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id l5sm15579241wrs.59.2021.11.23.09.51.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:25 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 07/23] multifd: remove used parameter from send_recv_pages() method Date: Tue, 23 Nov 2021 18:50:57 +0100 Message-Id: <20211123175113.35569-8-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" It is already there as p->pages->num. Signed-off-by: Juan Quintela --- migration/multifd.h | 2 +- migration/multifd-zlib.c | 9 ++++----- migration/multifd-zstd.c | 7 +++---- migration/multifd.c | 7 +++---- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/migration/multifd.h b/migration/multifd.h index 7968cc5c20..e57adc783b 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -167,7 +167,7 @@ typedef struct { /* Cleanup for receiving side */ void (*recv_cleanup)(MultiFDRecvParams *p); /* Read all pages */ - int (*recv_pages)(MultiFDRecvParams *p, uint32_t used, Error **errp); + int (*recv_pages)(MultiFDRecvParams *p, Error **errp); } MultiFDMethods; void multifd_register_ops(int method, MultiFDMethods *ops); diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c index 28f0ed933b..e85ef8824d 100644 --- a/migration/multifd-zlib.c +++ b/migration/multifd-zlib.c @@ -230,17 +230,16 @@ static void zlib_recv_cleanup(MultiFDRecvParams *p) * Returns 0 for success or -1 for error * * @p: Params for the channel that we are using - * @used: number of pages used * @errp: pointer to an error */ -static int zlib_recv_pages(MultiFDRecvParams *p, uint32_t used, Error **errp) +static int zlib_recv_pages(MultiFDRecvParams *p, Error **errp) { struct zlib_data *z = p->data; z_stream *zs = &z->zs; uint32_t in_size = p->next_packet_size; /* we measure the change of total_out */ uint32_t out_size = zs->total_out; - uint32_t expected_size = used * qemu_target_page_size(); + uint32_t expected_size = p->pages->num * qemu_target_page_size(); uint32_t flags = p->flags & MULTIFD_FLAG_COMPRESSION_MASK; int ret; int i; @@ -259,12 +258,12 @@ static int zlib_recv_pages(MultiFDRecvParams *p, uint32_t used, Error **errp) zs->avail_in = in_size; zs->next_in = z->zbuff; - for (i = 0; i < used; i++) { + for (i = 0; i < p->pages->num; i++) { struct iovec *iov = &p->pages->iov[i]; int flush = Z_NO_FLUSH; unsigned long start = zs->total_out; - if (i == used - 1) { + if (i == p->pages->num - 1) { flush = Z_SYNC_FLUSH; } diff --git a/migration/multifd-zstd.c b/migration/multifd-zstd.c index 4a71e96e06..a8b104f4ee 100644 --- a/migration/multifd-zstd.c +++ b/migration/multifd-zstd.c @@ -250,14 +250,13 @@ static void zstd_recv_cleanup(MultiFDRecvParams *p) * Returns 0 for success or -1 for error * * @p: Params for the channel that we are using - * @used: number of pages used * @errp: pointer to an error */ -static int zstd_recv_pages(MultiFDRecvParams *p, uint32_t used, Error **errp) +static int zstd_recv_pages(MultiFDRecvParams *p, Error **errp) { uint32_t in_size = p->next_packet_size; uint32_t out_size = 0; - uint32_t expected_size = used * qemu_target_page_size(); + uint32_t expected_size = p->pages->num * qemu_target_page_size(); uint32_t flags = p->flags & MULTIFD_FLAG_COMPRESSION_MASK; struct zstd_data *z = p->data; int ret; @@ -278,7 +277,7 @@ static int zstd_recv_pages(MultiFDRecvParams *p, uint32_t used, Error **errp) z->in.size = in_size; z->in.pos = 0; - for (i = 0; i < used; i++) { + for (i = 0; i < p->pages->num; i++) { struct iovec *iov = &p->pages->iov[i]; z->out.dst = iov->iov_base; diff --git a/migration/multifd.c b/migration/multifd.c index 098ef8842c..55d99a8232 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -141,10 +141,9 @@ static void nocomp_recv_cleanup(MultiFDRecvParams *p) * Returns 0 for success or -1 for error * * @p: Params for the channel that we are using - * @used: number of pages used * @errp: pointer to an error */ -static int nocomp_recv_pages(MultiFDRecvParams *p, uint32_t used, Error **errp) +static int nocomp_recv_pages(MultiFDRecvParams *p, Error **errp) { uint32_t flags = p->flags & MULTIFD_FLAG_COMPRESSION_MASK; @@ -153,7 +152,7 @@ static int nocomp_recv_pages(MultiFDRecvParams *p, uint32_t used, Error **errp) p->id, flags, MULTIFD_FLAG_NOCOMP); return -1; } - return qio_channel_readv_all(p->c, p->pages->iov, used, errp); + return qio_channel_readv_all(p->c, p->pages->iov, p->pages->num, errp); } static MultiFDMethods multifd_nocomp_ops = { @@ -1099,7 +1098,7 @@ static void *multifd_recv_thread(void *opaque) qemu_mutex_unlock(&p->mutex); if (used) { - ret = multifd_recv_state->ops->recv_pages(p, used, &local_err); + ret = multifd_recv_state->ops->recv_pages(p, &local_err); if (ret != 0) { break; } From patchwork Tue Nov 23 17:50:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558694 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=gm2NWDce; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBfz066Hz9ssD for ; Wed, 24 Nov 2021 04:57:15 +1100 (AEDT) Received: from localhost ([::1]:58014 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa2a-0000wX-RP for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:57:12 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55232) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx7-0006Xx-28 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:33 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:44095) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx4-0006oX-UA for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689890; 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=UNFcFs+Y30M5WFnFRQOUK5vwTxuvNJYNEc1+Ka4Kfmg=; b=gm2NWDcecJO1R2JaKUFqO/K8Xv/64cDRAcsgokAVUiJFOlTGuezvukqRqWZ8qUJtAJrytl Z3iiodnSLp+rNcpKkGT++DqNOT8KtAR3335LJeQ/llAVtbO8mviEi2XA6J+ZoikEwBai9Q lWTgpMaBu+GShs5mZjAxcMnPFD5WV4s= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-220-GZQxPpraPKiGaqOFIHmoLA-1; Tue, 23 Nov 2021 12:51:29 -0500 X-MC-Unique: GZQxPpraPKiGaqOFIHmoLA-1 Received: by mail-wm1-f72.google.com with SMTP id l187-20020a1c25c4000000b0030da46b76daso1555068wml.9 for ; Tue, 23 Nov 2021 09:51:28 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UNFcFs+Y30M5WFnFRQOUK5vwTxuvNJYNEc1+Ka4Kfmg=; b=lMSs97Lxg/yaFqJuiVGIRXbH+IKitJyWRXDIWxwQLygciCApkjLrtUk1z/7yg8WRGz JgH2IEnCe7hQqEL8WeuD/HD21ApYZL6Pv4Y/ljLbPJIwbwOACt+q/R0WOI/lKBcScKSt r/S63k8i39TpCztMeIo5hirvgD8W/XScdH1K/FQOq32r5P8KfijHnjUwnWS5G4dkG9M/ JEy03p6mzq6ZWMX15xwGJVK9SY4gnH+LsTjgbP3wYOPNEsfOMZ7xqXOtsgLq5nguQKQl zj78NN2OyEqH3LsksPThOwaAKZq5mCMpalrBw0eyctARJntms7MwDWRVO7vEgUK/p2Si o70w== X-Gm-Message-State: AOAM530OMan/AzVsg6cEzTByrhTaRz4k4eLMWjZnHFKWjz+r6VHMVWxP o8Z2w46aZiszuXJESzzdIQvnNOOA8zPfKuilKgAJatK6FY1K+nGf43DDHKfis1qbVbYJDu4zDY1 7tJgLB1+iP3aUn+ezCynv88UzSfUzRfYjbqhxM27x7kTTGGvY3lwlPdXNjmIifjWkIlo= X-Received: by 2002:a1c:7714:: with SMTP id t20mr5438955wmi.139.1637689887237; Tue, 23 Nov 2021 09:51:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJwYPQ55McseRJrznYJL1bC87wstOU9QcjE6m8Dt9HDrzx3a4p4wUhgvGpKf2jbPDrixWxFFIA== X-Received: by 2002:a1c:7714:: with SMTP id t20mr5438921wmi.139.1637689887044; Tue, 23 Nov 2021 09:51:27 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id f13sm2250809wmq.29.2021.11.23.09.51.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:26 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 08/23] multifd: Fill offset and block for reception Date: Tue, 23 Nov 2021 18:50:58 +0100 Message-Id: <20211123175113.35569-9-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We were using the iov directly, but we will need this info on the following patch. Signed-off-by: Juan Quintela --- migration/multifd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/migration/multifd.c b/migration/multifd.c index 55d99a8232..0533da154a 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -354,6 +354,7 @@ static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) return -1; } + p->pages->block = block; for (i = 0; i < p->pages->num; i++) { uint64_t offset = be64_to_cpu(packet->offset[i]); @@ -363,6 +364,7 @@ static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) offset, block->used_length); return -1; } + p->pages->offset[i] = offset; p->pages->iov[i].iov_base = block->host + offset; p->pages->iov[i].iov_len = page_size; } From patchwork Tue Nov 23 17:50:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558697 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=GVrJee+7; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBg51Brkz9t0k for ; Wed, 24 Nov 2021 04:57:20 +1100 (AEDT) Received: from localhost ([::1]:58546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa2g-0001IO-Lw for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:57:18 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55284) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxF-0006dp-Rr for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:41 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:39031) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx6-0006r4-Pg for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689891; 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=JCdDh3ludzQAxMfzS4ktrQ1Cbf8eu31L+AmHakZVN3Q=; b=GVrJee+7Eehoz2IAv0IzCcTYN0ZSoMnRwlOKwMgJEjOpEgAtfOXsokt2ALxnBVHFatsq+P 7UIrGnEM+v3ljJVk06g7oj2sl0pMQ+zUxJNQFlhlhZef4WB0DL8OxVc1TN5/jvZ+FS9SJk O2c9jSLmlXy/j9wAVo9UtdEg7IghBx4= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-328-C0uVMW3EM06dUSibMXOXrg-1; Tue, 23 Nov 2021 12:51:30 -0500 X-MC-Unique: C0uVMW3EM06dUSibMXOXrg-1 Received: by mail-wm1-f70.google.com with SMTP id l4-20020a05600c1d0400b00332f47a0fa3so1917086wms.8 for ; Tue, 23 Nov 2021 09:51:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JCdDh3ludzQAxMfzS4ktrQ1Cbf8eu31L+AmHakZVN3Q=; b=bxEIdM5kY/aghtC0tm7IwmnD/2vLYnNPMBhrna68fQt7vHK2f5npRygJ6HRdgEpb51 Ej7mAwc+YukfjobN5jJbwsdz/ttcMBuwOow73+diMsTC+KIkwDHjEoozWK2gmMp+EEyt q6Tw9u8bgLSmbPhZ1Koa+ACyXbDBqXRraOKNMSCVTexxlbSw1znvul49/sLhgQ3lokOR O4fHnR5wAQL1nKPF3T0rVVHrr16Cj7sEFL9ESo03rN0vhDXfs6DTET82HBrGyS+3tU8M AdDirJsNfghx5nlQir5r/V9z/H3GxipLzUp0/WjSTeiDTMgAoYo0DwnRJrBmp71X4AgV b9GQ== X-Gm-Message-State: AOAM532NXwI0PqnjFVGWF605FETZZxKRp1tQQ/FG+uae54xTau/280lp ywP9JXePz2AHd6qbriptyM1lNpexQkqoPDkExz8oXvSwyxTSe3wGwqRNXX/MIRuG1GH65OgWpuC YdX31mvlBn/LH5ayUe4aZkmAr0o80XbvFtym4O1kYI6HHnygnTwLwEp7z3POpCygPpio= X-Received: by 2002:a7b:c341:: with SMTP id l1mr5555185wmj.60.1637689889118; Tue, 23 Nov 2021 09:51:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJwqxYrn1FyUt/DnXRfSpX6amR9ZEup4rAh37suA5vEoMDHGpzXzXLdGXpPs3WoB60C18jk4yw== X-Received: by 2002:a7b:c341:: with SMTP id l1mr5555130wmj.60.1637689888810; Tue, 23 Nov 2021 09:51:28 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id c1sm12646618wrt.14.2021.11.23.09.51.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:28 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 09/23] multifd: Make zstd compression method not use iovs Date: Tue, 23 Nov 2021 18:50:59 +0100 Message-Id: <20211123175113.35569-10-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Juan Quintela --- migration/multifd-zstd.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/migration/multifd-zstd.c b/migration/multifd-zstd.c index a8b104f4ee..2d5b61106c 100644 --- a/migration/multifd-zstd.c +++ b/migration/multifd-zstd.c @@ -13,6 +13,7 @@ #include "qemu/osdep.h" #include #include "qemu/rcu.h" +#include "exec/ramblock.h" #include "exec/target_page.h" #include "qapi/error.h" #include "migration.h" @@ -111,8 +112,8 @@ static void zstd_send_cleanup(MultiFDSendParams *p, Error **errp) */ static int zstd_send_prepare(MultiFDSendParams *p, Error **errp) { - struct iovec *iov = p->pages->iov; struct zstd_data *z = p->data; + size_t page_size = qemu_target_page_size(); int ret; uint32_t i; @@ -126,8 +127,8 @@ static int zstd_send_prepare(MultiFDSendParams *p, Error **errp) if (i == p->pages->num - 1) { flush = ZSTD_e_flush; } - z->in.src = iov[i].iov_base; - z->in.size = iov[i].iov_len; + z->in.src = p->pages->block->host + p->pages->offset[i]; + z->in.size = page_size; z->in.pos = 0; /* @@ -256,7 +257,8 @@ static int zstd_recv_pages(MultiFDRecvParams *p, Error **errp) { uint32_t in_size = p->next_packet_size; uint32_t out_size = 0; - uint32_t expected_size = p->pages->num * qemu_target_page_size(); + size_t page_size = qemu_target_page_size(); + uint32_t expected_size = p->pages->num * page_size; uint32_t flags = p->flags & MULTIFD_FLAG_COMPRESSION_MASK; struct zstd_data *z = p->data; int ret; @@ -278,10 +280,8 @@ static int zstd_recv_pages(MultiFDRecvParams *p, Error **errp) z->in.pos = 0; for (i = 0; i < p->pages->num; i++) { - struct iovec *iov = &p->pages->iov[i]; - - z->out.dst = iov->iov_base; - z->out.size = iov->iov_len; + z->out.dst = p->pages->block->host + p->pages->offset[i]; + z->out.size = page_size; z->out.pos = 0; /* @@ -295,8 +295,8 @@ static int zstd_recv_pages(MultiFDRecvParams *p, Error **errp) do { ret = ZSTD_decompressStream(z->zds, &z->out, &z->in); } while (ret > 0 && (z->in.size - z->in.pos > 0) - && (z->out.pos < iov->iov_len)); - if (ret > 0 && (z->out.pos < iov->iov_len)) { + && (z->out.pos < page_size)); + if (ret > 0 && (z->out.pos < page_size)) { error_setg(errp, "multifd %d: decompressStream buffer too small", p->id); return -1; From patchwork Tue Nov 23 17:51:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558698 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=b0kcxcHZ; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBkC6tvwz9ssD for ; Wed, 24 Nov 2021 05:00:02 +1100 (AEDT) Received: from localhost ([::1]:38020 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa5H-0006kD-Tz for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:59:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55314) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxH-0006f1-5T for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:44 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:21538) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZx8-0006rV-SV for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689893; 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=OOPs/N6btQ9utuN8+Y/Y/kSvzMd2iTMlpcachHpy1kQ=; b=b0kcxcHZjo54AtncVTxDPyjcIgswcvSFLSItiyB8esN9m0P5O/FVT8vhlX7W4X4QKfs86k G0yTJjGWKDWt0i67RGl1zh06XDKqRNow0fY7sVDgaZ/z2m0DFnW2TPZb2HFanNc3aAtAbU PxWF0KnxqKLTSJ8MTSExR+kzFYijdAs= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-219-LLEqr5UnMNOnrfVmnr_n0Q-1; Tue, 23 Nov 2021 12:51:32 -0500 X-MC-Unique: LLEqr5UnMNOnrfVmnr_n0Q-1 Received: by mail-wm1-f71.google.com with SMTP id g80-20020a1c2053000000b003331a764709so1582288wmg.2 for ; Tue, 23 Nov 2021 09:51:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OOPs/N6btQ9utuN8+Y/Y/kSvzMd2iTMlpcachHpy1kQ=; b=R5WfYi7/0KqFDe4QyL5MTV1us7Pb0TqaxKwK8QxmoOurJb58Ga6nLdAlCV9pKut2ar hGixvG3BG2YeyOSrRpj9A/H6Hl3iv3KwoF2jotZJVD++UFqj6qcxJPc9CM3X47NFyxqA httpsy6ici4ZJb8VRNNI125qhChDhckCDy6pYt1SrCNmPJKgLLV2CTIt/i5wZNt92L3B l3qD3JyEY4uTTP2t1iJTrPJbGs9w9hOTFfkhjT2YmGrN1l3JyOnfyxTbEirgg1iqGBs/ UMl6pS1wDRKnhcw0GwWkLSzqSx9dNb5aT1zs92V1QmFd5AFoAxyvKXVtvaldzw97KSh5 tbhQ== X-Gm-Message-State: AOAM5330kRiHzScQEYKFrXzxv05NAh/XXjH8N9bOL/dxM+NhkpwahMdq Q7WlvyWtPm68SWqf4s11Xi20IkF4zZ8v0Ub28AmSECsQcPTX72XDNly4vSSwuglA+pc4d/BleV3 jz75zSZSRGyTtp6IPHCR8FoT0hRWrvwuebIpM5nCz3M4k8KpdEiIIlHmOyZFfCD5dn34= X-Received: by 2002:adf:f60e:: with SMTP id t14mr9279111wrp.112.1637689890493; Tue, 23 Nov 2021 09:51:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJy0EDvm0E8Q0WqBm/9L/bKsl91cLNlg7nMTUseSToz0JwGJrv5Ji4tdljm6SHdfa/HHZzVxzw== X-Received: by 2002:adf:f60e:: with SMTP id t14mr9279068wrp.112.1637689890217; Tue, 23 Nov 2021 09:51:30 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id j11sm12631023wrt.3.2021.11.23.09.51.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:29 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 10/23] multifd: Make zlib compression method not use iovs Date: Tue, 23 Nov 2021 18:51:00 +0100 Message-Id: <20211123175113.35569-11-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Juan Quintela --- migration/multifd-zlib.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c index e85ef8824d..da6201704c 100644 --- a/migration/multifd-zlib.c +++ b/migration/multifd-zlib.c @@ -13,6 +13,7 @@ #include "qemu/osdep.h" #include #include "qemu/rcu.h" +#include "exec/ramblock.h" #include "exec/target_page.h" #include "qapi/error.h" #include "migration.h" @@ -98,8 +99,8 @@ static void zlib_send_cleanup(MultiFDSendParams *p, Error **errp) */ static int zlib_send_prepare(MultiFDSendParams *p, Error **errp) { - struct iovec *iov = p->pages->iov; struct zlib_data *z = p->data; + size_t page_size = qemu_target_page_size(); z_stream *zs = &z->zs; uint32_t out_size = 0; int ret; @@ -113,8 +114,8 @@ static int zlib_send_prepare(MultiFDSendParams *p, Error **errp) flush = Z_SYNC_FLUSH; } - zs->avail_in = iov[i].iov_len; - zs->next_in = iov[i].iov_base; + zs->avail_in = page_size; + zs->next_in = p->pages->block->host + p->pages->offset[i]; zs->avail_out = available; zs->next_out = z->zbuff + out_size; @@ -235,6 +236,7 @@ static void zlib_recv_cleanup(MultiFDRecvParams *p) static int zlib_recv_pages(MultiFDRecvParams *p, Error **errp) { struct zlib_data *z = p->data; + size_t page_size = qemu_target_page_size(); z_stream *zs = &z->zs; uint32_t in_size = p->next_packet_size; /* we measure the change of total_out */ @@ -259,7 +261,6 @@ static int zlib_recv_pages(MultiFDRecvParams *p, Error **errp) zs->next_in = z->zbuff; for (i = 0; i < p->pages->num; i++) { - struct iovec *iov = &p->pages->iov[i]; int flush = Z_NO_FLUSH; unsigned long start = zs->total_out; @@ -267,8 +268,8 @@ static int zlib_recv_pages(MultiFDRecvParams *p, Error **errp) flush = Z_SYNC_FLUSH; } - zs->avail_out = iov->iov_len; - zs->next_out = iov->iov_base; + zs->avail_out = page_size; + zs->next_out = p->pages->block->host + p->pages->offset[i]; /* * Welcome to inflate semantics @@ -281,8 +282,8 @@ static int zlib_recv_pages(MultiFDRecvParams *p, Error **errp) do { ret = inflate(zs, flush); } while (ret == Z_OK && zs->avail_in - && (zs->total_out - start) < iov->iov_len); - if (ret == Z_OK && (zs->total_out - start) < iov->iov_len) { + && (zs->total_out - start) < page_size); + if (ret == Z_OK && (zs->total_out - start) < page_size) { error_setg(errp, "multifd %d: inflate generated too few output", p->id); return -1; From patchwork Tue Nov 23 17:51:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558692 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=ONN94MZo; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBc80JpPz9ssD for ; Wed, 24 Nov 2021 04:54:48 +1100 (AEDT) Received: from localhost ([::1]:50086 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa0D-0003tB-SN for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:54:45 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55318) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxH-0006f2-9H for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:44 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:41374) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxE-0006sG-AJ for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689894; 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=znJh4Fm0vRykGF819Wl7cMgFSEmqStKYvWRlP5dHCjc=; b=ONN94MZohH1ZZI6CVRaNREkkiGG6+mxNjNeyqWRTKuudGZ00UjKB0RQBn5oIn4jqQy8Z+Y ZqYCsS/huwzAocz5wL6Wp8NwTyIYv/EX0PuEP7tsfLy8U1f7OlO8wvyFCI4wqJhJfy+Bs9 z0Eme04jG6g4Hath5M7395su9RbPYjI= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-162-sexE9IvLNEmoltbAwOJYaQ-1; Tue, 23 Nov 2021 12:51:33 -0500 X-MC-Unique: sexE9IvLNEmoltbAwOJYaQ-1 Received: by mail-wm1-f71.google.com with SMTP id 138-20020a1c0090000000b00338bb803204so8059348wma.1 for ; Tue, 23 Nov 2021 09:51:33 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=znJh4Fm0vRykGF819Wl7cMgFSEmqStKYvWRlP5dHCjc=; b=1WBh8noTxA6p5LLTrkyQwuYygwMY5K7wL9MwPZgo9cH2h+orkLj+ax/3rTwgG8vynv eGGCAxWcRZCqff6+gFAyvfhTtRSOIs4XWNrSARAq1sioUircZrTtbjo+5OjDkqPJe9rE /aH1bBRW/CcygZXQAfEXPZDzSqHLTZRO5+h+mTwDeucPiHN/LhQ+ssoS7Cp2BqAY2odu vE6ZaZ7qpj7S/yCuI2LbB9ZkvqQ7yQ0yaWCqjcswCwlH0YlOhHjRPLAPoKPpmaXWKYcd Ey+Iwag9cUvMh3BO8F5ruITNWQGdIewHSSO+jKP9tQddNwZglbYoHXGkNRWPpPZVg33E twag== X-Gm-Message-State: AOAM530nTnZHBqk0I1+T18BpTev2jUzbo6iNPuAAu2UwCcMljBfqe7q5 G7/kUkg/hA4dJehW1kDztLfV5z5TjHJYssaxjECyfpWPab5IueBmKuKS7sIxT0GDz3Po4jRDIwe 0WrRTvDlXIsDQhE7ZweuTRNcrcaW0U7XGBLZrah9zUMccHwyJDVXyc6FGVmJMVcscdH4= X-Received: by 2002:a5d:4e0b:: with SMTP id p11mr9400680wrt.88.1637689891947; Tue, 23 Nov 2021 09:51:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJxiEwssadasn+rXvSk9IGbcTdc+O0Q8T+fgihDemStCSOZca2ZkgmP8HYgy0aa3EXCvJb5n8A== X-Received: by 2002:a5d:4e0b:: with SMTP id p11mr9400643wrt.88.1637689891663; Tue, 23 Nov 2021 09:51:31 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id y15sm14410345wry.72.2021.11.23.09.51.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:31 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 11/23] multifd: Move iov from pages to params Date: Tue, 23 Nov 2021 18:51:01 +0100 Message-Id: <20211123175113.35569-12-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This will allow us to reduce the number of system calls on the next patch. Signed-off-by: Juan Quintela --- migration/multifd.h | 8 ++++++-- migration/multifd.c | 34 ++++++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/migration/multifd.h b/migration/multifd.h index e57adc783b..c3f18af364 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -62,8 +62,6 @@ typedef struct { uint64_t packet_num; /* offset of each page */ ram_addr_t *offset; - /* pointer to each page */ - struct iovec *iov; RAMBlock *block; } MultiFDPages_t; @@ -110,6 +108,10 @@ typedef struct { uint64_t num_pages; /* syncs main thread and channels */ QemuSemaphore sem_sync; + /* buffers to send */ + struct iovec *iov; + /* number of iovs used */ + uint32_t iovs_num; /* used for compression methods */ void *data; } MultiFDSendParams; @@ -149,6 +151,8 @@ typedef struct { uint64_t num_pages; /* syncs main thread and channels */ QemuSemaphore sem_sync; + /* buffers to recv */ + struct iovec *iov; /* used for de-compression methods */ void *data; } MultiFDRecvParams; diff --git a/migration/multifd.c b/migration/multifd.c index 0533da154a..37487fd01c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -86,7 +86,16 @@ static void nocomp_send_cleanup(MultiFDSendParams *p, Error **errp) */ static int nocomp_send_prepare(MultiFDSendParams *p, Error **errp) { - p->next_packet_size = p->pages->num * qemu_target_page_size(); + MultiFDPages_t *pages = p->pages; + size_t page_size = qemu_target_page_size(); + + for (int i = 0; i < p->pages->num; i++) { + p->iov[p->iovs_num].iov_base = pages->block->host + pages->offset[i]; + p->iov[p->iovs_num].iov_len = page_size; + p->iovs_num++; + } + + p->next_packet_size = p->pages->num * page_size; p->flags |= MULTIFD_FLAG_NOCOMP; return 0; } @@ -104,7 +113,7 @@ static int nocomp_send_prepare(MultiFDSendParams *p, Error **errp) */ static int nocomp_send_write(MultiFDSendParams *p, uint32_t used, Error **errp) { - return qio_channel_writev_all(p->c, p->pages->iov, used, errp); + return qio_channel_writev_all(p->c, p->iov, p->iovs_num, errp); } /** @@ -146,13 +155,18 @@ static void nocomp_recv_cleanup(MultiFDRecvParams *p) static int nocomp_recv_pages(MultiFDRecvParams *p, Error **errp) { uint32_t flags = p->flags & MULTIFD_FLAG_COMPRESSION_MASK; + size_t page_size = qemu_target_page_size(); if (flags != MULTIFD_FLAG_NOCOMP) { error_setg(errp, "multifd %d: flags received %x flags expected %x", p->id, flags, MULTIFD_FLAG_NOCOMP); return -1; } - return qio_channel_readv_all(p->c, p->pages->iov, p->pages->num, errp); + for (int i = 0; i < p->pages->num; i++) { + p->iov[i].iov_base = p->pages->block->host + p->pages->offset[i]; + p->iov[i].iov_len = page_size; + } + return qio_channel_readv_all(p->c, p->iov, p->pages->num, errp); } static MultiFDMethods multifd_nocomp_ops = { @@ -242,7 +256,6 @@ static MultiFDPages_t *multifd_pages_init(size_t size) MultiFDPages_t *pages = g_new0(MultiFDPages_t, 1); pages->allocated = size; - pages->iov = g_new0(struct iovec, size); pages->offset = g_new0(ram_addr_t, size); return pages; @@ -254,8 +267,6 @@ static void multifd_pages_clear(MultiFDPages_t *pages) pages->allocated = 0; pages->packet_num = 0; pages->block = NULL; - g_free(pages->iov); - pages->iov = NULL; g_free(pages->offset); pages->offset = NULL; g_free(pages); @@ -365,8 +376,6 @@ static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) return -1; } p->pages->offset[i] = offset; - p->pages->iov[i].iov_base = block->host + offset; - p->pages->iov[i].iov_len = page_size; } return 0; @@ -470,8 +479,6 @@ int multifd_queue_page(QEMUFile *f, RAMBlock *block, ram_addr_t offset) if (pages->block == block) { pages->offset[pages->num] = offset; - pages->iov[pages->num].iov_base = block->host + offset; - pages->iov[pages->num].iov_len = qemu_target_page_size(); pages->num++; if (pages->num < pages->allocated) { @@ -564,6 +571,8 @@ void multifd_save_cleanup(void) p->packet_len = 0; g_free(p->packet); p->packet = NULL; + g_free(p->iov); + p->iov = NULL; multifd_send_state->ops->send_cleanup(p, &local_err); if (local_err) { migrate_set_error(migrate_get_current(), local_err); @@ -651,6 +660,7 @@ static void *multifd_send_thread(void *opaque) uint32_t used = p->pages->num; uint64_t packet_num = p->packet_num; uint32_t flags = p->flags; + p->iovs_num = 0; if (used) { ret = multifd_send_state->ops->send_prepare(p, &local_err); @@ -919,6 +929,7 @@ int multifd_save_setup(Error **errp) p->packet->version = cpu_to_be32(MULTIFD_VERSION); p->name = g_strdup_printf("multifdsend_%d", i); p->tls_hostname = g_strdup(s->hostname); + p->iov = g_new0(struct iovec, page_count); socket_send_channel_create(multifd_new_send_channel_async, p); } @@ -1018,6 +1029,8 @@ int multifd_load_cleanup(Error **errp) p->packet_len = 0; g_free(p->packet); p->packet = NULL; + g_free(p->iov); + p->iov = NULL; multifd_recv_state->ops->recv_cleanup(p); } qemu_sem_destroy(&multifd_recv_state->sem_sync); @@ -1158,6 +1171,7 @@ int multifd_load_setup(Error **errp) + sizeof(uint64_t) * page_count; p->packet = g_malloc0(p->packet_len); p->name = g_strdup_printf("multifdrecv_%d", i); + p->iov = g_new0(struct iovec, page_count); } for (i = 0; i < thread_count; i++) { From patchwork Tue Nov 23 17:51:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558687 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=e3dR12Kz; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBYV4tRWz9t0k for ; Wed, 24 Nov 2021 04:52:30 +1100 (AEDT) Received: from localhost ([::1]:41922 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpZy0-0006jX-Fk for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:52:28 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55360) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxJ-0006g6-Vn for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:47 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:47062) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxF-0006tD-JM for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689895; 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=ulUQI87aAwgZRgREGrNbA238jZyNy23cNrEDcHJPeEo=; b=e3dR12Kzy7e7YihKP1pnhZoCDuxTwnPt/RK4IGw9lnsX7KGrWEPQbFJtVKgjyayy4a1Ro4 FwmKSrwkNRXh20pX17UoY78gb89trfzuq4Ldx6cLnlRc0ESxW8WD8Ad9eZz9R4GkHpb1kd rBXKfX66WQDSM/aRGeR+hlImmIuxf2k= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-591-hIzix5VUN36x4TQZ8j83MQ-1; Tue, 23 Nov 2021 12:51:35 -0500 X-MC-Unique: hIzix5VUN36x4TQZ8j83MQ-1 Received: by mail-wr1-f70.google.com with SMTP id k8-20020a5d5248000000b001763e7c9ce5so3877347wrc.22 for ; Tue, 23 Nov 2021 09:51:34 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ulUQI87aAwgZRgREGrNbA238jZyNy23cNrEDcHJPeEo=; b=Bkq8UmzbrdEqOjj1cPadT1K+pF7PDv5hNgv0C98x9pXzT0WZWES9jcZl/2IFJZMm2U AKRpyB7B9i+58z020l+IDOoesCQOYcNO+LrofeoVeBZYCPJbXlTfpmue9/85FjrNOrmw gtFVJAlAQYuOnDDAN6lGYSQ08+Ln5W2+gCiI4x6g7gKvEroiUD3NCZAtxrYFB/zQqKW+ OiK8JXpaJcM6N9A0ESNIdP7yswopPjqoorNagbj50FePx2k+gK7qkgnqkLXwybuLtqxl uHnY+Rs3HXOgxmjbPYHHWbAD8pJN2o1tS/hXUiRgVLeMlPIAdG/qTAfcV08FfM80Ws/e 7CQA== X-Gm-Message-State: AOAM531NSsgJfUEs6y1HsoVfFZLb7Pc8hUt14NCCSAr8Lcq0RHeTUq+X GIjwJkQ2RMdjNgzPsTHUYcvZfaRHciQDfLfukIR5pynnLrxWU/Mmhw7/X+mjZLCMyMu5QCL9y4+ RlBZ5f1MzaFD0uiEQJ3g7xON+Yh/yai91PkLl37P845BJhle0LdFmm7Yy5tgVQ/V9YA4= X-Received: by 2002:a05:6000:128b:: with SMTP id f11mr9110113wrx.70.1637689893427; Tue, 23 Nov 2021 09:51:33 -0800 (PST) X-Google-Smtp-Source: ABdhPJwXc6gR+XMZzUEDEm4mGkHMfSZ5qwwdWwpsxislabQKqyu5vuEi0KfaW0iZ5uvrATNWNa2HmQ== X-Received: by 2002:a05:6000:128b:: with SMTP id f11mr9110084wrx.70.1637689893227; Tue, 23 Nov 2021 09:51:33 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id e8sm12627782wrr.26.2021.11.23.09.51.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:32 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 12/23] multifd: Make zlib use iov's Date: Tue, 23 Nov 2021 18:51:02 +0100 Message-Id: <20211123175113.35569-13-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Juan Quintela --- migration/multifd-zlib.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c index da6201704c..478a4af115 100644 --- a/migration/multifd-zlib.c +++ b/migration/multifd-zlib.c @@ -143,6 +143,9 @@ static int zlib_send_prepare(MultiFDSendParams *p, Error **errp) } out_size += available - zs->avail_out; } + p->iov[p->iovs_num].iov_base = z->zbuff; + p->iov[p->iovs_num].iov_len = out_size; + p->iovs_num++; p->next_packet_size = out_size; p->flags |= MULTIFD_FLAG_ZLIB; @@ -162,10 +165,7 @@ static int zlib_send_prepare(MultiFDSendParams *p, Error **errp) */ static int zlib_send_write(MultiFDSendParams *p, uint32_t used, Error **errp) { - struct zlib_data *z = p->data; - - return qio_channel_write_all(p->c, (void *)z->zbuff, p->next_packet_size, - errp); + return qio_channel_writev_all(p->c, p->iov, p->iovs_num, errp); } /** From patchwork Tue Nov 23 17:51:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558699 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=JP7EPcvo; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBkG2RBtz9t0k for ; Wed, 24 Nov 2021 05:00:06 +1100 (AEDT) Received: from localhost ([::1]:38350 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa5M-0006xm-30 for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 13:00:04 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55362) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxJ-0006g7-WE for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:47 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:53274) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxF-0006tU-Lg for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689898; 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=FHo1ecYwtwo0REW0mCQmZS/6gX+5pwE/7n1NlC57ldY=; b=JP7EPcvoBObpgrucNaagHJI2W5KDF5eEoXvdMjxGCapFDydwLTQHibXK0TAIKlXI8sLpAg LnJguxqqp6/yGav0LSUe8rEEdZrC1K4moaF5rGiNKpaY7dQDqgTFE9ZmIXzgjNOvIncV/1 MvzuUHDsfqqTqc3mn/GfJurJxQm1DJA= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-444-WpqN7M5nMSKgAD8kDEekhw-1; Tue, 23 Nov 2021 12:51:36 -0500 X-MC-Unique: WpqN7M5nMSKgAD8kDEekhw-1 Received: by mail-wm1-f72.google.com with SMTP id m14-20020a05600c3b0e00b0033308dcc933so1919014wms.7 for ; Tue, 23 Nov 2021 09:51:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FHo1ecYwtwo0REW0mCQmZS/6gX+5pwE/7n1NlC57ldY=; b=XBqAXINXkjiZQAvn7Dd1DKrzHcKD7u8JpwUG+jcTRcfdo9zax2fqz5TLQrvM7o0PLs eeD6SWS9l0HhI6hhCJLJvy0Gh+KBYPD5eCv7GosvYm0wufgNgivmTozEjT6hSAGF85Fi JSz58UNuVRHWdLfqvVZlQGzTr4BsSdLL7wehd+Jz1JwK77f2JPDOHM4Y3BFnwUv7hhyv /7/i/lI5V0gIlrjXVfdVjDMQefyoTt+FNcSe2Uls642CnfdM3wf/ul9dxUD4ZyBOD1n/ u7pdvZu5CwESX2AgHq8UYeLVDrlrjN1c/xK9eIqfhKo4DVnPNM1mUgpmR9XkIwq+lsMg PHNQ== X-Gm-Message-State: AOAM5337KWApVwg3ar57ErNnWOSfJ1/qZBR16DcY5uUHimSdJNMVO9ak OeI+iMjGHDp9Uy58WlvDSOIUxUrqG35y+GQk9IyIKKVrhfly9yxd9PjZbLKh+O7mmgC5WIg/1QP b5ZO/p4GZKQQE250iy8SsmLUPi0f+MtFPHogX+o9FxZHE/hIUy04srU0CrKOb0zVDpgM= X-Received: by 2002:a5d:6c6e:: with SMTP id r14mr9581429wrz.133.1637689895005; Tue, 23 Nov 2021 09:51:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJwyDkJ3G6sIXKOzC3NZwtcW2oXT5CpXi2P0c9UHt9ZNscLgI/EVLzv39r3O0VhWQd6WcpWR7w== X-Received: by 2002:a5d:6c6e:: with SMTP id r14mr9581391wrz.133.1637689894731; Tue, 23 Nov 2021 09:51:34 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id u23sm13628472wru.21.2021.11.23.09.51.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:34 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 13/23] multifd: Make zstd use iov's Date: Tue, 23 Nov 2021 18:51:03 +0100 Message-Id: <20211123175113.35569-14-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Juan Quintela --- migration/multifd-zstd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/migration/multifd-zstd.c b/migration/multifd-zstd.c index 2d5b61106c..259277dc42 100644 --- a/migration/multifd-zstd.c +++ b/migration/multifd-zstd.c @@ -154,6 +154,9 @@ static int zstd_send_prepare(MultiFDSendParams *p, Error **errp) return -1; } } + p->iov[p->iovs_num].iov_base = z->zbuff; + p->iov[p->iovs_num].iov_len = z->out.pos; + p->iovs_num++; p->next_packet_size = z->out.pos; p->flags |= MULTIFD_FLAG_ZSTD; @@ -173,10 +176,7 @@ static int zstd_send_prepare(MultiFDSendParams *p, Error **errp) */ static int zstd_send_write(MultiFDSendParams *p, uint32_t used, Error **errp) { - struct zstd_data *z = p->data; - - return qio_channel_write_all(p->c, (void *)z->zbuff, p->next_packet_size, - errp); + return qio_channel_writev_all(p->c, p->iov, p->iovs_num, errp); } /** From patchwork Tue Nov 23 17:51:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558696 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=gQm4UaQK; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBg469hzz9ssD for ; Wed, 24 Nov 2021 04:57:20 +1100 (AEDT) Received: from localhost ([::1]:58394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa2g-0001CS-MN for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 12:57:18 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55364) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxJ-0006g8-W3 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:47 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:29659) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxF-0006tc-Ln for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689899; 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=ffZrQjVgGHNgunaflrengDVoG/ghaT4oQPjHYo/PfYo=; b=gQm4UaQKLDsvEEjBbLbyLoa6j7Ie/w6+JJKoFlRn+p8IduUHRIty0aoutrLSRW2uPUXe0/ pDoYEMeOfBvzdY0+jLjMzftFC2znHZ0x0YZhFeuq8Mg6+GPYQOS0iqSROa2FoFTTmFaGt7 EpIXeAccq1Y0G/jw4aQexfQ91mmldxY= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-41-FaPbFev5Pg68_gCxWonQ7A-1; Tue, 23 Nov 2021 12:51:38 -0500 X-MC-Unique: FaPbFev5Pg68_gCxWonQ7A-1 Received: by mail-wm1-f72.google.com with SMTP id 69-20020a1c0148000000b0033214e5b021so8814650wmb.3 for ; Tue, 23 Nov 2021 09:51:38 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ffZrQjVgGHNgunaflrengDVoG/ghaT4oQPjHYo/PfYo=; b=UcueWtvLjLlxE54lis9kc+DNFMvv4eVj5YhbdJe1OsBNfyzQ6lhxNt/ZDGDNGQiw+H /EvA6i8x8nKPEmakafGdtF56mv2GpyKkM9ujH+GYh48eAWMpBhFjZxI4fi1GBsl7nKLO kz8/jH71G3UQhG4/toWm1BCZgMIyPYhpHv559pHSAw99tTjJTUWvshdnPD1T0VP7NdOn PLzw3c9tCyi94deq7CPisTu/gpMLwyCO0NHDUhuE0ZF9MXvv+6N4Guyc1wSzz1k4Vv/6 w8s+WjhkqjCoOdQ4OG+xUqfibW+aPbltXd47CkYBqwS3V3jOfuv//lelDgBTym3WBYHd kROQ== X-Gm-Message-State: AOAM533fKvWnAd0an06S5KlDONJYr14xwAYxD1NK6ugYXBClr9E5/N38 ZgdRmSaZ/MHUOtFXRdnZhi/QZ20zXtStCTAFzZN8FVGMlM9eyFm+ns6UNJxD5LqN5tbDxosL6mS Jtrgxa12pL+WUdmlx4PAOu/4jumVQmnwz25MoCG9rMgHsG9CETN51HGScLOG69RdFItA= X-Received: by 2002:a05:600c:b46:: with SMTP id k6mr5437832wmr.45.1637689896471; Tue, 23 Nov 2021 09:51:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzimihdnZU2EBx6X/hLMGXrYOqsZUewzP+nwvo4PJJsB5YXD81DMiVZl6VBw5HjUGOppCICYA== X-Received: by 2002:a05:600c:b46:: with SMTP id k6mr5437779wmr.45.1637689896174; Tue, 23 Nov 2021 09:51:36 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id w17sm12866826wrp.79.2021.11.23.09.51.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:35 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 14/23] multifd: Remove send_write() method Date: Tue, 23 Nov 2021 18:51:04 +0100 Message-Id: <20211123175113.35569-15-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Everything use now iov's. Signed-off-by: Juan Quintela --- migration/multifd.h | 2 -- migration/multifd-zlib.c | 17 ----------------- migration/multifd-zstd.c | 17 ----------------- migration/multifd.c | 20 ++------------------ 4 files changed, 2 insertions(+), 54 deletions(-) diff --git a/migration/multifd.h b/migration/multifd.h index c3f18af364..7496f951a7 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -164,8 +164,6 @@ typedef struct { void (*send_cleanup)(MultiFDSendParams *p, Error **errp); /* Prepare the send packet */ int (*send_prepare)(MultiFDSendParams *p, Error **errp); - /* Write the send packet */ - int (*send_write)(MultiFDSendParams *p, uint32_t used, Error **errp); /* Setup for receiving side */ int (*recv_setup)(MultiFDRecvParams *p, Error **errp); /* Cleanup for receiving side */ diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c index 478a4af115..f65159392a 100644 --- a/migration/multifd-zlib.c +++ b/migration/multifd-zlib.c @@ -152,22 +152,6 @@ static int zlib_send_prepare(MultiFDSendParams *p, Error **errp) return 0; } -/** - * zlib_send_write: do the actual write of the data - * - * Do the actual write of the comprresed buffer. - * - * Returns 0 for success or -1 for error - * - * @p: Params for the channel that we are using - * @used: number of pages used - * @errp: pointer to an error - */ -static int zlib_send_write(MultiFDSendParams *p, uint32_t used, Error **errp) -{ - return qio_channel_writev_all(p->c, p->iov, p->iovs_num, errp); -} - /** * zlib_recv_setup: setup receive side * @@ -307,7 +291,6 @@ static MultiFDMethods multifd_zlib_ops = { .send_setup = zlib_send_setup, .send_cleanup = zlib_send_cleanup, .send_prepare = zlib_send_prepare, - .send_write = zlib_send_write, .recv_setup = zlib_recv_setup, .recv_cleanup = zlib_recv_cleanup, .recv_pages = zlib_recv_pages diff --git a/migration/multifd-zstd.c b/migration/multifd-zstd.c index 259277dc42..6933ba622a 100644 --- a/migration/multifd-zstd.c +++ b/migration/multifd-zstd.c @@ -163,22 +163,6 @@ static int zstd_send_prepare(MultiFDSendParams *p, Error **errp) return 0; } -/** - * zstd_send_write: do the actual write of the data - * - * Do the actual write of the comprresed buffer. - * - * Returns 0 for success or -1 for error - * - * @p: Params for the channel that we are using - * @used: number of pages used - * @errp: pointer to an error - */ -static int zstd_send_write(MultiFDSendParams *p, uint32_t used, Error **errp) -{ - return qio_channel_writev_all(p->c, p->iov, p->iovs_num, errp); -} - /** * zstd_recv_setup: setup receive side * @@ -320,7 +304,6 @@ static MultiFDMethods multifd_zstd_ops = { .send_setup = zstd_send_setup, .send_cleanup = zstd_send_cleanup, .send_prepare = zstd_send_prepare, - .send_write = zstd_send_write, .recv_setup = zstd_recv_setup, .recv_cleanup = zstd_recv_cleanup, .recv_pages = zstd_recv_pages diff --git a/migration/multifd.c b/migration/multifd.c index 37487fd01c..71bdef068e 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -100,22 +100,6 @@ static int nocomp_send_prepare(MultiFDSendParams *p, Error **errp) return 0; } -/** - * nocomp_send_write: do the actual write of the data - * - * For no compression we just have to write the data. - * - * Returns 0 for success or -1 for error - * - * @p: Params for the channel that we are using - * @used: number of pages used - * @errp: pointer to an error - */ -static int nocomp_send_write(MultiFDSendParams *p, uint32_t used, Error **errp) -{ - return qio_channel_writev_all(p->c, p->iov, p->iovs_num, errp); -} - /** * nocomp_recv_setup: setup receive side * @@ -173,7 +157,6 @@ static MultiFDMethods multifd_nocomp_ops = { .send_setup = nocomp_send_setup, .send_cleanup = nocomp_send_cleanup, .send_prepare = nocomp_send_prepare, - .send_write = nocomp_send_write, .recv_setup = nocomp_recv_setup, .recv_cleanup = nocomp_recv_cleanup, .recv_pages = nocomp_recv_pages @@ -687,7 +670,8 @@ static void *multifd_send_thread(void *opaque) } if (used) { - ret = multifd_send_state->ops->send_write(p, used, &local_err); + ret = qio_channel_writev_all(p->c, p->iov, p->iovs_num, + &local_err); if (ret != 0) { break; } From patchwork Tue Nov 23 17:51:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558702 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=WORuv5gV; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBnP21P2z9ssD for ; Wed, 24 Nov 2021 05:02:49 +1100 (AEDT) Received: from localhost ([::1]:46468 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa7z-0004QC-0P for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 13:02:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55366) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxJ-0006g9-W8 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:47 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:32296) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxF-0006ti-JK for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689900; 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=wc/hHgbIzi02f5RiowHdBt1n+v0t3deScK2+D5kW6JI=; b=WORuv5gV/V2pPjGItFM9C5bgSV44/j75spPj9Q4M7XFUfLaduXZVxaJ7+vEp0+Psi80lja tnkep41qpP9JtxUaVYvWjXCDmVCfgh7cRePyqir9prs+aAhm90xUG9AYUNFd6JkkBISUnx 3o1PXpyXIq/5I+Hm7tKZJsEWSuCHVl0= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-173-GokJsKggNASkdHxOKWCing-1; Tue, 23 Nov 2021 12:51:40 -0500 X-MC-Unique: GokJsKggNASkdHxOKWCing-1 Received: by mail-wm1-f70.google.com with SMTP id g80-20020a1c2053000000b003331a764709so1582448wmg.2 for ; Tue, 23 Nov 2021 09:51:39 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wc/hHgbIzi02f5RiowHdBt1n+v0t3deScK2+D5kW6JI=; b=d+w9hFjxRTDifImLdIx2bqjjVtRg0g+3FzwXnTSgdW8YZJBpc9HfyWE0gyAKgfIIb6 PGkpYZb+2GobRJRqOrcmb/RF4NPs0NMKgH28IoX99CERtTWG/J7Ig4c7yC/73+o7H2Ld KoL9CrE7DFPL5hyb9ns42wbwSH2EyWr4T5FfC3gCAlD8WLXrU6AF8Ntq+TkWX8qq4una CEkgu1Pm721WSCOEML7XIUPmJcz6rN7+TLoqIXS8H6Os1K58Ge2OfUWMoJGVU4UMfnux AuZdoyLhBD8eR2D2p8O9ZwirdQ8tdEqLL0K5pm2+C6jYAY0VqQfiWnnRLLssq3PJP8qT b6Vg== X-Gm-Message-State: AOAM5306oDj6yev/NgAtA6ZBunGEt8TYll+WeSx5tLV7DVxt+PxQhkjn E7HKIIRxfH60v4aTSrgaOfPmX9qg7/De1TUuiByLAEOjvLWP6t+3Sm6ODHkTjLE2iNi6Kq11raI ZeJqilT1ZqywLstMYt2Zf4cU4eyNQPJs/J2cnHlavzMk4F33QCvkcg6m2rffGCa9fWJ0= X-Received: by 2002:a05:6000:1a48:: with SMTP id t8mr9586195wry.66.1637689898238; Tue, 23 Nov 2021 09:51:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJxKq04oGM5uBY7RNptXkd14NE96VVJKXn8BivHr7O4bllXl3SBuiXABli3KsYml4l5nfZtO9Q== X-Received: by 2002:a05:6000:1a48:: with SMTP id t8mr9586159wry.66.1637689897985; Tue, 23 Nov 2021 09:51:37 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id l22sm1744743wmp.34.2021.11.23.09.51.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:37 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 15/23] multifd: Use a single writev on the send side Date: Tue, 23 Nov 2021 18:51:05 +0100 Message-Id: <20211123175113.35569-16-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Until now, we wrote the packet header with write(), and the rest of the pages with writev(). Just increase the size of the iovec and do a single writev(). Signed-off-by: Juan Quintela --- migration/multifd.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/migration/multifd.c b/migration/multifd.c index 71bdef068e..65676d56fd 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -643,7 +643,7 @@ static void *multifd_send_thread(void *opaque) uint32_t used = p->pages->num; uint64_t packet_num = p->packet_num; uint32_t flags = p->flags; - p->iovs_num = 0; + p->iovs_num = 1; if (used) { ret = multifd_send_state->ops->send_prepare(p, &local_err); @@ -663,20 +663,15 @@ static void *multifd_send_thread(void *opaque) trace_multifd_send(p->id, packet_num, used, flags, p->next_packet_size); - ret = qio_channel_write_all(p->c, (void *)p->packet, - p->packet_len, &local_err); + p->iov[0].iov_len = p->packet_len; + p->iov[0].iov_base = p->packet; + + ret = qio_channel_writev_all(p->c, p->iov, p->iovs_num, + &local_err); if (ret != 0) { break; } - if (used) { - ret = qio_channel_writev_all(p->c, p->iov, p->iovs_num, - &local_err); - if (ret != 0) { - break; - } - } - qemu_mutex_lock(&p->mutex); p->pending_job--; qemu_mutex_unlock(&p->mutex); @@ -913,7 +908,8 @@ int multifd_save_setup(Error **errp) p->packet->version = cpu_to_be32(MULTIFD_VERSION); p->name = g_strdup_printf("multifdsend_%d", i); p->tls_hostname = g_strdup(s->hostname); - p->iov = g_new0(struct iovec, page_count); + /* We need one extra place for the packet header */ + p->iov = g_new0(struct iovec, page_count + 1); socket_send_channel_create(multifd_new_send_channel_async, p); } From patchwork Tue Nov 23 17:51:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558701 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=cQiRr+lJ; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBkK0BZgz9ssD for ; Wed, 24 Nov 2021 05:00:09 +1100 (AEDT) Received: from localhost ([::1]:38564 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpa5O-00076L-Pn for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 13:00:06 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55368) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxK-0006gA-08 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:47 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:21089) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxG-0006ty-PT for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689902; 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=WkhgT9OtfB0bw0bvbITBNcnsQogAWms8/w8iiMp6XA4=; b=cQiRr+lJ6mKLr4lzDoRcK8W2Ati9OaDXKX5ACMItKi5J8+POdH7wCQ6/yA+YbOPVPQznNf cBCNc0VwtErnU0cmxQ/B6llNXU6s62Rc+jp74fux8PucVIqhTg89bvs/vrS3UTV6ab4h+A q2NcmaAm2hibQFLaWn5EvOLgVtEsxHg= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-595-7pVtsx8eMIChGuq37RwiyQ-1; Tue, 23 Nov 2021 12:51:41 -0500 X-MC-Unique: 7pVtsx8eMIChGuq37RwiyQ-1 Received: by mail-wm1-f72.google.com with SMTP id j193-20020a1c23ca000000b003306ae8bfb7so8800184wmj.7 for ; Tue, 23 Nov 2021 09:51:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WkhgT9OtfB0bw0bvbITBNcnsQogAWms8/w8iiMp6XA4=; b=y2Bp4+tbjumtsrlFlbSiQ3OiO4uyXBRktgZCREjJ5l2M9iCqKje/5/xMAVtm0Ue4YF GxGRxi12wfAP+OAK37KNKUn82tD8KpOZXZUEDvOwFX2UdKFLGIsYSrlZokEhtxqTMT+h UobmC+1NLegV3+BlACaPLi3hdAUItJu+I/lP5lNAMgglxbzR9gtQfTaDZCTrGPrSULCq 13kV195cQ0tuBcBGiByILCKDk3PuM88qKgRRy0qjXet0crCNOg6UhEXPMPYWxytASzqB 7/AwXd/2K0U9o5fwARq3loYi6BePx3EmUOdhrsyqVE2ENAfNZ+14twOrgzwaC+Ou5I4S Ii4g== X-Gm-Message-State: AOAM531NsjbYAu21+6PGlrJwGXir1uXvh/Ne16YMOoN4t86P0+SP9dSk XdIwlCciieOvLZVXQf+znLQ/lH2uS1CHvXz3KOKuYQDszkpN/WecRyR+jgaj4PrHnJTqg42+bjJ IMEgnDFRUFxOyNeEJlP6ijatFF1svZcQpsqHkL2B+aa3je/QkY3exul1B8f8VFvGfho8= X-Received: by 2002:a05:6000:10c7:: with SMTP id b7mr9811192wrx.160.1637689899801; Tue, 23 Nov 2021 09:51:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJz+b5uFGeQEh0YgD7Lee4tdXAsN6yvG/tGcuN96t/0J1CL6GwCnrC2BHGF8zNGLqa6Bca1ygw== X-Received: by 2002:a05:6000:10c7:: with SMTP id b7mr9811131wrx.160.1637689899392; Tue, 23 Nov 2021 09:51:39 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id l11sm12508138wrp.61.2021.11.23.09.51.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:38 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 16/23] multifd: Unfold "used" variable by its value Date: Tue, 23 Nov 2021 18:51:06 +0100 Message-Id: <20211123175113.35569-17-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Juan Quintela --- migration/multifd.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/migration/multifd.c b/migration/multifd.c index 65676d56fd..6983ba3e7c 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -1059,7 +1059,6 @@ static void *multifd_recv_thread(void *opaque) rcu_register_thread(); while (true) { - uint32_t used; uint32_t flags; if (p->quit) { @@ -1082,17 +1081,16 @@ static void *multifd_recv_thread(void *opaque) break; } - used = p->pages->num; flags = p->flags; /* recv methods don't know how to handle the SYNC flag */ p->flags &= ~MULTIFD_FLAG_SYNC; - trace_multifd_recv(p->id, p->packet_num, used, flags, + trace_multifd_recv(p->id, p->packet_num, p->pages->num, flags, p->next_packet_size); p->num_packets++; - p->num_pages += used; + p->num_pages += p->pages->num; qemu_mutex_unlock(&p->mutex); - if (used) { + if (p->pages->num) { ret = multifd_recv_state->ops->recv_pages(p, &local_err); if (ret != 0) { break; From patchwork Tue Nov 23 17:51:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 1558714 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=f0b87Umc; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HzBrr3VBqz9ssD for ; Wed, 24 Nov 2021 05:05:47 +1100 (AEDT) Received: from localhost ([::1]:53594 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mpaAp-0000jx-AS for incoming@patchwork.ozlabs.org; Tue, 23 Nov 2021 13:05:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55394) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxO-0006iA-CV for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:51 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:46715) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mpZxJ-0006uO-P2 for qemu-devel@nongnu.org; Tue, 23 Nov 2021 12:51:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1637689904; 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=QsUNeNLFSLYp4nJ7yL11BiCZE3+fOy2UmxWfLNk/85I=; b=f0b87UmcUruXAN3SDwGG5ZXRTXJlBrI1suWKWAaW/WmEin9jsKtoM4d7tYwdBnvtv/7xyx IwuWS4lgrC3wXNbgpGOC9+wtGNi6gGEyBc4cMiCt3z1joZKQrtEcgEqiGQZuICbvxxHB07 bPSSzjF/weu5iJY+qDpmdsgiwNdDWm0= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-175-Zrt7LQLwNJ-e1Mggtt10aw-1; Tue, 23 Nov 2021 12:51:43 -0500 X-MC-Unique: Zrt7LQLwNJ-e1Mggtt10aw-1 Received: by mail-wm1-f71.google.com with SMTP id g11-20020a1c200b000000b003320d092d08so8803445wmg.9 for ; Tue, 23 Nov 2021 09:51:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QsUNeNLFSLYp4nJ7yL11BiCZE3+fOy2UmxWfLNk/85I=; b=S9nfzZas2POoOP/cyo0mr4AEJ/FO0eD4GdgCRsqAIkVocZYGh54VA76rPqxCLw7LxG Dd4LMv2JQsrtWePtGz2Dz+XF03k5ytdJgdDfdSH8POcu/YjJczLf3aiPz+u6JQujkWfg pX+SudmvBZfayOuzvXDqsPD3iSNXvkEIYR/TXM58eZPleZveWOTdScwAWtt7LHxd4X0j LSkT51oeZcV4fWGG+Lj3s7mgUYhkq164eAiRMJVbHG/LP/83yF9WherVc4W6hAb1CBBq zZNb749VFOBIJmMqo6GLhkQeoE3A5N7yADujtzY+rw05Pe8BI1Ac/FrTFL3LRi5NOdOr XhsA== X-Gm-Message-State: AOAM531h/xkRRA2ZjqxcjhuU3gzgRTomPBVPYSgIcnaFljsE8T2c0MgE vPDwT4vLe1p+NZ0LLBuGHiRVgc5w7XvKFAeYuAxUZIcqVW1SIqrxFvHQjcmyrMFK0hmrembGJqR g8HCx1U35kHAgA7AUJKi7116+wmqMx0fdGrdkbTSLrGKuD7JTc59qP2QoTyk383MmMzs= X-Received: by 2002:a5d:60d0:: with SMTP id x16mr8458766wrt.103.1637689901345; Tue, 23 Nov 2021 09:51:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJyOzG9Z7hcNkMDvl6nTFrokkFseElSoq9fR94IW0Zy+tVX2Ftrvs8KCX3ZK0D1G3AAM/D5DTg== X-Received: by 2002:a5d:60d0:: with SMTP id x16mr8458709wrt.103.1637689900943; Tue, 23 Nov 2021 09:51:40 -0800 (PST) Received: from localhost (static-233-86-86-188.ipcom.comunitel.net. [188.86.86.233]) by smtp.gmail.com with ESMTPSA id t1sm14785805wre.32.2021.11.23.09.51.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Nov 2021 09:51:40 -0800 (PST) From: Juan Quintela To: qemu-devel@nongnu.org Subject: [PATCH 17/23] multifd: Use normal pages array on the send side Date: Tue, 23 Nov 2021 18:51:07 +0100 Message-Id: <20211123175113.35569-18-quintela@redhat.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211123175113.35569-1-quintela@redhat.com> References: <20211123175113.35569-1-quintela@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=quintela@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, 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: , Cc: Leonardo Bras , "Dr. David Alan Gilbert" , Peter Xu , Juan Quintela Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Juan Quintela --- migration/multifd.h | 8 ++++++-- migration/multifd-zlib.c | 6 +++--- migration/multifd-zstd.c | 6 +++--- migration/multifd.c | 30 +++++++++++++++++++----------- migration/trace-events | 4 ++-- 5 files changed, 33 insertions(+), 21 deletions(-) diff --git a/migration/multifd.h b/migration/multifd.h index 7496f951a7..78e73df3ec 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -104,14 +104,18 @@ typedef struct { /* thread local variables */ /* packets sent through this channel */ uint64_t num_packets; - /* pages sent through this channel */ - uint64_t num_pages; + /* non zero pages sent through this channel */ + uint64_t num_normal_pages; /* syncs main thread and channels */ QemuSemaphore sem_sync; /* buffers to send */ struct iovec *iov; /* number of iovs used */ uint32_t iovs_num; + /* Pages that are not zero */ + ram_addr_t *normal; + /* num of non zero pages */ + uint32_t normal_num; /* used for compression methods */ void *data; } MultiFDSendParams; diff --git a/migration/multifd-zlib.c b/migration/multifd-zlib.c index f65159392a..25ef68a548 100644 --- a/migration/multifd-zlib.c +++ b/migration/multifd-zlib.c @@ -106,16 +106,16 @@ static int zlib_send_prepare(MultiFDSendParams *p, Error **errp) int ret; uint32_t i; - for (i = 0; i < p->pages->num; i++) { + for (i = 0; i < p->normal_num; i++) { uint32_t available = z->zbuff_len - out_size; int flush = Z_NO_FLUSH; - if (i == p->pages->num - 1) { + if (i == p->normal_num - 1) { flush = Z_SYNC_FLUSH; } zs->avail_in = page_size; - zs->next_in = p->pages->block->host + p->pages->offset[i]; + zs->next_in = p->pages->block->host + p->normal[i]; zs->avail_out = available; zs->next_out = z->zbuff + out_size; diff --git a/migration/multifd-zstd.c b/migration/multifd-zstd.c index 6933ba622a..61842d713e 100644 --- a/migration/multifd-zstd.c +++ b/migration/multifd-zstd.c @@ -121,13 +121,13 @@ static int zstd_send_prepare(MultiFDSendParams *p, Error **errp) z->out.size = z->zbuff_len; z->out.pos = 0; - for (i = 0; i < p->pages->num; i++) { + for (i = 0; i < p->normal_num; i++) { ZSTD_EndDirective flush = ZSTD_e_continue; - if (i == p->pages->num - 1) { + if (i == p->normal_num - 1) { flush = ZSTD_e_flush; } - z->in.src = p->pages->block->host + p->pages->offset[i]; + z->in.src = p->pages->block->host + p->normal[i]; z->in.size = page_size; z->in.pos = 0; diff --git a/migration/multifd.c b/migration/multifd.c index 6983ba3e7c..dbe919b764 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -89,13 +89,13 @@ static int nocomp_send_prepare(MultiFDSendParams *p, Error **errp) MultiFDPages_t *pages = p->pages; size_t page_size = qemu_target_page_size(); - for (int i = 0; i < p->pages->num; i++) { - p->iov[p->iovs_num].iov_base = pages->block->host + pages->offset[i]; + for (int i = 0; i < p->normal_num; i++) { + p->iov[p->iovs_num].iov_base = pages->block->host + p->normal[i]; p->iov[p->iovs_num].iov_len = page_size; p->iovs_num++; } - p->next_packet_size = p->pages->num * page_size; + p->next_packet_size = p->normal_num * page_size; p->flags |= MULTIFD_FLAG_NOCOMP; return 0; } @@ -262,7 +262,7 @@ static void multifd_send_fill_packet(MultiFDSendParams *p) packet->flags = cpu_to_be32(p->flags); packet->pages_alloc = cpu_to_be32(p->pages->allocated); - packet->pages_used = cpu_to_be32(p->pages->num); + packet->pages_used = cpu_to_be32(p->normal_num); packet->next_packet_size = cpu_to_be32(p->next_packet_size); packet->packet_num = cpu_to_be64(p->packet_num); @@ -270,9 +270,9 @@ static void multifd_send_fill_packet(MultiFDSendParams *p) strncpy(packet->ramblock, p->pages->block->idstr, 256); } - for (i = 0; i < p->pages->num; i++) { + for (i = 0; i < p->normal_num; i++) { /* there are architectures where ram_addr_t is 32 bit */ - uint64_t temp = p->pages->offset[i]; + uint64_t temp = p->normal[i]; packet->offset[i] = cpu_to_be64(temp); } @@ -556,6 +556,8 @@ void multifd_save_cleanup(void) p->packet = NULL; g_free(p->iov); p->iov = NULL; + g_free(p->normal); + p->normal = NULL; multifd_send_state->ops->send_cleanup(p, &local_err); if (local_err) { migrate_set_error(migrate_get_current(), local_err); @@ -640,12 +642,17 @@ static void *multifd_send_thread(void *opaque) qemu_mutex_lock(&p->mutex); if (p->pending_job) { - uint32_t used = p->pages->num; uint64_t packet_num = p->packet_num; uint32_t flags = p->flags; p->iovs_num = 1; + p->normal_num = 0; - if (used) { + for (int i = 0; i < p->pages->num; i++) { + p->normal[p->normal_num] = p->pages->offset[i]; + p->normal_num++; + } + + if (p->normal_num) { ret = multifd_send_state->ops->send_prepare(p, &local_err); if (ret != 0) { qemu_mutex_unlock(&p->mutex); @@ -655,12 +662,12 @@ static void *multifd_send_thread(void *opaque) multifd_send_fill_packet(p); p->flags = 0; p->num_packets++; - p->num_pages += used; + p->num_normal_pages += p->normal_num; p->pages->num = 0; p->pages->block = NULL; qemu_mutex_unlock(&p->mutex); - trace_multifd_send(p->id, packet_num, used, flags, + trace_multifd_send(p->id, packet_num, p->normal_num, flags, p->next_packet_size); p->iov[0].iov_len = p->packet_len; @@ -710,7 +717,7 @@ out: qemu_mutex_unlock(&p->mutex); rcu_unregister_thread(); - trace_multifd_send_thread_end(p->id, p->num_packets, p->num_pages); + trace_multifd_send_thread_end(p->id, p->num_packets, p->num_normal_pages); return NULL; } @@ -910,6 +917,7 @@ int multifd_save_setup(Error **errp) p->tls_hostname = g_strdup(s->hostname); /* We need one extra place for the packet header */ p->iov = g_new0(struct iovec, page_count + 1); + p->normal = g_new0(ram_addr_t, page_count); socket_send_channel_create(multifd_new_send_channel_async, p); } diff --git a/migration/trace-events b/migration/trace-events index b48d873b8a..af8dee9af0 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -124,13 +124,13 @@ multifd_recv_sync_main_wait(uint8_t id) "channel %d" multifd_recv_terminate_threads(bool error) "error %d" multifd_recv_thread_end(uint8_t id, uint64_t packets, uint64_t pages) "channel %d packets %" PRIu64 " pages %" PRIu64 multifd_recv_thread_start(uint8_t id) "%d" -multifd_send(uint8_t id, uint64_t packet_num, uint32_t used, uint32_t flags, uint32_t next_packet_size) "channel %d packet_num %" PRIu64 " pages %d flags 0x%x next packet size %d" +multifd_send(uint8_t id, uint64_t packet_num, uint32_t normal, uint32_t flags, uint32_t next_packet_size) "channel %d packet_num %" PRIu64 " normal pages %d flags 0x%x next packet size %d" multifd_send_error(uint8_t id) "channel %d" multifd_send_sync_main(long packet_num) "packet num %ld" multifd_send_sync_main_signal(uint8_t id) "channel %d" multifd_send_sync_main_wait(uint8_t id) "channel %d" multifd_send_terminate_threads(bool error) "error %d" -multifd_send_thread_end(uint8_t id, uint64_t packets, uint64_t pages) "channel %d packets %" PRIu64 " pages %" PRIu64 +multifd_send_thread_end(uint8_t id, uint64_t packets, uint64_t normal_pages) "channel %d packets %" PRIu64 " normal pages %" PRIu64 multifd_send_thread_start(uint8_t id) "%d" multifd_tls_outgoing_handshake_start(void *ioc, void *tioc, const char *hostname) "ioc=%p tioc=%p hostname=%s" multifd_tls_outgoing_handshake_error(void *ioc, const char *err) "ioc=%p err=%s"