From patchwork Wed Jun 7 07:35:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Perevalov X-Patchwork-Id: 9770757 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 BC26560393 for ; Wed, 7 Jun 2017 07:42:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A6BE6283BE for ; Wed, 7 Jun 2017 07:42:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9B68D28521; Wed, 7 Jun 2017 07:42:36 +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 174EB2848D for ; Wed, 7 Jun 2017 07:42:36 +0000 (UTC) Received: from localhost ([::1]:41676 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dIVbv-0008NT-7I for patchwork-qemu-devel@patchwork.kernel.org; Wed, 07 Jun 2017 03:42:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54600) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dIVVi-000483-KJ for qemu-devel@nongnu.org; Wed, 07 Jun 2017 03:36:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dIVVf-0000tq-Ua for qemu-devel@nongnu.org; Wed, 07 Jun 2017 03:36:10 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:64129) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dIVVf-0000sV-OQ for qemu-devel@nongnu.org; Wed, 07 Jun 2017 03:36:07 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OR600GH42G7KQ80@mailout2.w1.samsung.com> for qemu-devel@nongnu.org; Wed, 07 Jun 2017 08:36:07 +0100 (BST) Received: from eusmges1.samsung.com (unknown [203.254.199.239]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170607073606eucas1p14680df6c921723264d91c0aafa315c5d~Fxr0feG_r1334213342eucas1p1x; Wed, 7 Jun 2017 07:36:06 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1.samsung.com (EUCPMTA) with SMTP id 27.61.14140.8ECA7395; Wed, 7 Jun 2017 08:36:08 +0100 (BST) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170607073605eucas1p23406b53a5ee9282d8440dae03ecc5273~Fxrzawsop1602816028eucas1p2M; Wed, 7 Jun 2017 07:36:05 +0000 (GMT) X-AuditID: cbfec7ef-f796a6d00000373c-e1-5937ace8e448 Received: from eusync4.samsung.com ( [203.254.199.214]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 0C.A5.17452.5ECA7395; Wed, 7 Jun 2017 08:36:05 +0100 (BST) Received: from aperevalov-ubuntu.rnd.samsung.ru ([106.109.129.199]) by eusync4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OR600HQN2FH4N90@eusync4.samsung.com>; Wed, 07 Jun 2017 08:36:05 +0100 (BST) From: Alexey Perevalov To: qemu-devel@nongnu.org Date: Wed, 07 Jun 2017 10:35:28 +0300 Message-id: <1496820931-27416-9-git-send-email-a.perevalov@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1496820931-27416-1-git-send-email-a.perevalov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrOIsWRmVeSWpSXmKPExsWy7djP87ov1phHGjT0mljMvXuexaJ32z12 iyvtP9kttuz/xm5xvHcHiwOrx5Nrm5k83u+7yubRt2UVYwBzFJdNSmpOZllqkb5dAldG8/m1 rAX35Cu2rNrH1sD4WLSLkZNDQsBEYt/ZqUwQtpjEhXvr2boYuTiEBJYxSvy5+ZwdwvnMKNHx 6BsbTMeHuXNZ4Kqe/O5lhnC6mSR6li8Gcjg42AQMJPbdswVpEBGQlPjddZoZxGYWKJD42LqS BcQWFvCQmLD/ONhQFgFViQ1zWllBbF4Bd4kTn9azQyyTkzh5bDJYnBOoft+HtUwguyQErrNJ /Dp7hh1kl4SArMSmA8wQ9S4Ss48ch7KFJV4d3wI1R0ais+MgVG87o0T3zk5WCGcCo8SZ6X+h quwlTt28ygRxKZ/EpG3TmSEW8Ep0tAlBlHhIfF9wCmqBo8SkT93QIJoNNPT6K8YJjDILGBlW MYqklhbnpqcWG+oVJ+YWl+al6yXn525iBEbn6X/H3+9gfNoccohRgINRiYc3Y49ZpBBrYllx Ze4hRgkOZiUR3ktLzSOFeFMSK6tSi/Lji0pzUosPMUpzsCiJ8/KeuhYhJJCeWJKanZpakFoE k2Xi4JRqYIw5b72Yx//oU6sgfoPXT9Uut9W/6jKL/eJ10uaN4RXpva+XyMy1aot9ayl+iI1f e8nr7weNxIIntu/jZPVPcKl0WZy2kOX2lqZvVQ1nox/qbW2L2f42TixfueLR3Me2RVqae9dW XtTnaWQ2WHepM8AjiPPh/qbz35dHrrXafeXyG4PppjypZ5RYijMSDbWYi4oTAU23Z2HKAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCLMWRmVeSWpSXmKPExsVy+t/xa7pP15hHGnyepWwx9+55FovebffY La60/2S32LL/G7vF8d4dLA6sHk+ubWbyeL/vKptH35ZVjAHMUW42GamJKalFCql5yfkpmXnp tkqhIW66FkoKeYm5qbZKEbq+IUFKCmWJOaVAnpEBGnBwDnAPVtK3S3DLaD6/lrXgnnzFllX7 2BoYH4t2MXJySAiYSHyYO5cFwhaTuHBvPVsXIxeHkMASRolVtzczgiSEBHqZJL5urO1i5OBg EzCQ2HfPFiQsIiAp8bvrNDOIzSxQIHFu8hSwOcICHhIT9h9nA7FZBFQlNsxpZQWxeQXcJU58 Ws8OsUtO4uSxyWBxTqD6fR/WMkGscpfYfXoG2wRG3gWMDKsYRVJLi3PTc4sN9YoTc4tL89L1 kvNzNzECQ3TbsZ+bdzBe2hh8iFGAg1GJh1dgl1mkEGtiWXFl7iFGCQ5mJRHeS0vNI4V4UxIr q1KL8uOLSnNSiw8xmgIdNZFZSjQ5Hxg/eSXxhiaG5paGRsYWFuZGRkrivCUfroQLCaQnlqRm p6YWpBbB9DFxcEo1MNZeyt3KuWbd7w0tCzfuXOC/QdrlQdCepP0qBb/UZmbqFFlcv6ssZPND t9rtN+ecpgl69hbq7z5HOSrqrT8nn2vftfzK593ZGw8bCz7euu27rayWmFW2U4e045y9pVFv U04niJa4TF8Ty9kakXetZ3+2Wtx6CXWz0qzfcfsOMscuXNNke8aYUYmlOCPRUIu5qDgRAAEF UmJnAgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170607073605eucas1p23406b53a5ee9282d8440dae03ecc5273 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: 20170607073605eucas1p23406b53a5ee9282d8440dae03ecc5273 X-RootMTR: 20170607073605eucas1p23406b53a5ee9282d8440dae03ecc5273 References: <1496820931-27416-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 V7] 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 set copied bitmap as closer as possible to mark_postcopy_blocktime_end. So postcopy_place_page is proper place. RAMBlock argument here could avoid additional RAMBlock lookup as well as reduce number of arguments (no need to pass pointer to copied bitmap). Signed-off-by: Alexey Perevalov --- 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) {