From patchwork Wed Jun 7 09:46:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Perevalov X-Patchwork-Id: 9771139 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BF09A60393 for ; Wed, 7 Jun 2017 09:49:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 95E9328459 for ; Wed, 7 Jun 2017 09:49:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8AE69284D4; Wed, 7 Jun 2017 09:49:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 09A7E2847B for ; Wed, 7 Jun 2017 09:49:11 +0000 (UTC) Received: from localhost ([::1]:42312 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dIXaR-0001Do-4u for patchwork-qemu-devel@patchwork.kernel.org; Wed, 07 Jun 2017 05:49:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58051) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dIXYt-0001Ay-Va for qemu-devel@nongnu.org; Wed, 07 Jun 2017 05:47:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dIXYq-0000FF-1d for qemu-devel@nongnu.org; Wed, 07 Jun 2017 05:47:36 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:15626) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dIXYp-0000EQ-RO for qemu-devel@nongnu.org; Wed, 07 Jun 2017 05:47:31 -0400 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OR600A4Y8J7G930@mailout2.w1.samsung.com> for qemu-devel@nongnu.org; Wed, 07 Jun 2017 10:47:31 +0100 (BST) Received: from eusmges5.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170607094731eucas1p283660488287e2f6c6582a1e7a67b142b~FzejRyDR_0469104691eucas1p2J; Wed, 7 Jun 2017 09:47:31 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges5.samsung.com (EUCPMTA) with SMTP id A2.6D.25577.2BBC7395; Wed, 7 Jun 2017 10:47:30 +0100 (BST) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170607094730eucas1p2126d9850427e7b4af92898b64b7b805a~Fzeiie52K0284202842eucas1p2R; Wed, 7 Jun 2017 09:47:30 +0000 (GMT) X-AuditID: cbfec7f5-f792f6d0000063e9-90-5937cbb20e6a Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 20.CB.17452.2BBC7395; Wed, 7 Jun 2017 10:47:30 +0100 (BST) Received: from aperevalov-ubuntu.rnd.samsung.ru ([106.109.129.199]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OR600I3B8ILMHB0@eusync1.samsung.com>; Wed, 07 Jun 2017 10:47:30 +0100 (BST) From: Alexey Perevalov To: qemu-devel@nongnu.org Date: Wed, 07 Jun 2017 12:46:35 +0300 Message-id: <1496828798-27548-9-git-send-email-a.perevalov@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1496828798-27548-1-git-send-email-a.perevalov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrKIsWRmVeSWpSXmKPExsWy7djP87qbTptHGjR36FnMvXuexaJ32z12 iyvtP9kttuz/xm5xvHcHiwOrx5Nrm5k83u+7yubRt2UVYwBzFJdNSmpOZllqkb5dAlfGtb1z WQtOyFWsXfSMvYHxoUgXIweHhICJxK11Gl2MnECmmMSFe+vZuhi5OIQEljJKTG58xAjhfGaU 6Pg6jwWiykTi75/L7BCJZYwSl/9MYoJwupkklj15wAwylk3AQGLfPVuQBhEBSYnfXaeZQWxm gQKJj60rwQYJC7hJ/Fq8nAnEZhFQlVh/+jdYnFfAXeLqnQ1Qy+QkTh6bzApicwp4SPyYepsZ ZJeEwG02icl7X7NDvCArsekAM0S9i8TN38fZIGxhiVfHt7BD2DISnR0HmSB62xklund2skI4 Exglzkz/C1VlL3Hq5lUmiEv5JCZtm84MsYBXoqNNCKLEQ+LctfOsEGFHibYrfBC/z2aUeLr8 CuMERpkFjAyrGEVSS4tz01OLTfWKE3OLS/PS9ZLzczcxAiPz9L/jX3cwLj1mdYhRgINRiYdX YJdZpBBrYllxZe4hRgkOZiUR3olHzSOFeFMSK6tSi/Lji0pzUosPMUpzsCiJ83KduhYhJJCe WJKanZpakFoEk2Xi4JRqYDSs+1zqPTnAo6i+8aOPp+PGdoZeFuObXNsi+HP1NeY0e1u1fmyZ urqr462I/etz6i9YF2w8K+Vxv37WsvOLaueJPt0yz/1Ipt5qteO5uYyrJYrm66xZJfx50qMH 3ebn8x6u9VRRPrg3O//dVm7uUyu53zht3jp3oZZrB0eIeoyz1Wulxk3afUosxRmJhlrMRcWJ AF0z0JvIAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKLMWRmVeSWpSXmKPExsVy+t/xy7qbTptHGmy8yW0x9+55FovebffY La60/2S32LL/G7vF8d4dLA6sHk+ubWbyeL/vKptH35ZVjAHMUW42GamJKalFCql5yfkpmXnp tkqhIW66FkoKeYm5qbZKEbq+IUFKCmWJOaVAnpEBGnBwDnAPVtK3S3DLuLZ3LmvBCbmKtYue sTcwPhTpYuTkkBAwkfj75zI7hC0mceHeerYuRi4OIYEljBJrD71ggnB6mSR+rrnC3MXIwcEm YCCx754tSIOIgKTE767TzCA2s0CBxLnJU1hAbGEBN4lfi5czgdgsAqoS60//BovzCrhLXL2z gQVimZzEyWOTWUFsTgEPiR9Tb4PNEQKquX3nDNMERt4FjAyrGEVSS4tz03OLDfWKE3OLS/PS 9ZLzczcxAoN027Gfm3cwXtoYfIhRgINRiYdXYJdZpBBrYllxZe4hRgkOZiUR3olHzSOFeFMS K6tSi/Lji0pzUosPMZoCHTWRWUo0OR8YQXkl8YYmhuaWhkbGFhbmRkZK4rwlH66ECwmkJ5ak ZqemFqQWwfQxcXBKNTBythRa/nz1e5HiyUPlhyI9jPn3ymmnqzDMaWhWOxZ1aub7NO0ftzpC U8s8jWv3dvE9vB2j8KGrYnrnutqo42yT6v7azUhR9rOz93Hh8o04+itQcd+OqNqrpwNDHOcG pt7dM4+XZea8G5VO6xa9sDvBXdxtP/N05zGfl2fPfypgSpJ7vrI+d7USS3FGoqEWc1FxIgB1 LPJ5aAIAAA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170607094730eucas1p2126d9850427e7b4af92898b64b7b805a X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?QWxleGV5IFBlcmV2YWxvdhtTUlItVmlydHVhbGl6YXRpb24g?= =?UTF-8?B?TGFiG+yCvOyEseyghOyekBtTZW5pb3IgRW5naW5lZXI=?= X-Global-Sender: =?UTF-8?B?QWxleGV5IFBlcmV2YWxvdhtTUlItVmlydHVhbGl6YXRpb24g?= =?UTF-8?B?TGFiG1NhbXN1bmcgRWxlY3Ryb25pY3MbU2VuaW9yIEVuZ2luZWVy?= X-Sender-Code: =?UTF-8?B?QzEwG0NJU0hRG0MxMEdEMDFHRDAxMDE1NA==?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170607094730eucas1p2126d9850427e7b4af92898b64b7b805a X-RootMTR: 20170607094730eucas1p2126d9850427e7b4af92898b64b7b805a References: <1496828798-27548-1-git-send-email-a.perevalov@samsung.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 210.118.77.12 Subject: [Qemu-devel] [PATCH v8 08/11] migration: postcopy_place_page factoring out X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: i.maximets@samsung.com, Alexey Perevalov , peterx@redhat.com, dgilbert@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Need to mark paged copied as closer as possible place where it tracks down. That will be necessary in futher patch. Signed-off-by: Alexey Perevalov Reviewed-by: Juan Quintela --- migration/postcopy-ram.c | 13 ++++++++----- migration/postcopy-ram.h | 4 ++-- migration/ram.c | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c index ade7f1c..62a272a 100644 --- a/migration/postcopy-ram.c +++ b/migration/postcopy-ram.c @@ -713,9 +713,10 @@ int postcopy_ram_enable_notify(MigrationIncomingState *mis) * returns 0 on success */ int postcopy_place_page(MigrationIncomingState *mis, void *host, void *from, - size_t pagesize) + RAMBlock *rb) { struct uffdio_copy copy_struct; + size_t pagesize = qemu_ram_pagesize(rb); copy_struct.dst = (uint64_t)(uintptr_t)host; copy_struct.src = (uint64_t)(uintptr_t)from; @@ -744,10 +745,12 @@ int postcopy_place_page(MigrationIncomingState *mis, void *host, void *from, * returns 0 on success */ int postcopy_place_page_zero(MigrationIncomingState *mis, void *host, - size_t pagesize) + RAMBlock *rb) { + size_t pagesize; trace_postcopy_place_page_zero(host); + pagesize = qemu_ram_pagesize(rb); if (pagesize == getpagesize()) { struct uffdio_zeropage zero_struct; zero_struct.range.start = (uint64_t)(uintptr_t)host; @@ -778,7 +781,7 @@ int postcopy_place_page_zero(MigrationIncomingState *mis, void *host, memset(mis->postcopy_tmp_zero_page, '\0', mis->largest_page_size); } return postcopy_place_page(mis, host, mis->postcopy_tmp_zero_page, - pagesize); + rb); } return 0; @@ -841,14 +844,14 @@ int postcopy_ram_enable_notify(MigrationIncomingState *mis) } int postcopy_place_page(MigrationIncomingState *mis, void *host, void *from, - size_t pagesize) + RAMBlock *rb) { assert(0); return -1; } int postcopy_place_page_zero(MigrationIncomingState *mis, void *host, - size_t pagesize) + RAMBlock *rb) { assert(0); return -1; diff --git a/migration/postcopy-ram.h b/migration/postcopy-ram.h index 587a8b8..77ea0fd 100644 --- a/migration/postcopy-ram.h +++ b/migration/postcopy-ram.h @@ -72,14 +72,14 @@ void postcopy_discard_send_finish(MigrationState *ms, * returns 0 on success */ int postcopy_place_page(MigrationIncomingState *mis, void *host, void *from, - size_t pagesize); + RAMBlock *rb); /* * Place a zero page at (host) atomically * returns 0 on success */ int postcopy_place_page_zero(MigrationIncomingState *mis, void *host, - size_t pagesize); + RAMBlock *rb); /* The current postcopy state is read/set by postcopy_state_get/set * which update it atomically. diff --git a/migration/ram.c b/migration/ram.c index a7c0db4..a791d40 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -2524,10 +2524,10 @@ static int ram_load_postcopy(QEMUFile *f) if (all_zero) { ret = postcopy_place_page_zero(mis, place_dest, - block->page_size); + block); } else { ret = postcopy_place_page(mis, place_dest, - place_source, block->page_size); + place_source, block); } } if (!ret) {