From patchwork Tue Aug 1 11:40:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Perevalov X-Patchwork-Id: 9874315 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 1F01C603B4 for ; Tue, 1 Aug 2017 11:41:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F10DD28683 for ; Tue, 1 Aug 2017 11:41:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E5897286A3; Tue, 1 Aug 2017 11:41:54 +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 6A2DB28683 for ; Tue, 1 Aug 2017 11:41:54 +0000 (UTC) Received: from localhost ([::1]:41914 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dcVYf-0002zK-Lu for patchwork-qemu-devel@patchwork.kernel.org; Tue, 01 Aug 2017 07:41:53 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46227) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dcVXZ-0002xl-MR for qemu-devel@nongnu.org; Tue, 01 Aug 2017 07:40:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dcVXU-0002UX-O6 for qemu-devel@nongnu.org; Tue, 01 Aug 2017 07:40:45 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:52195) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dcVXU-0002Su-BG for qemu-devel@nongnu.org; Tue, 01 Aug 2017 07:40:40 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OU000K5Z8FO6UB0@mailout1.w1.samsung.com> for qemu-devel@nongnu.org; Tue, 01 Aug 2017 12:40:36 +0100 (BST) Received: from eusmges3.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170801114036eucas1p19a260d488b563dac92ede50c9dbdd479~Wtf-WobaW1103311033eucas1p1H; Tue, 1 Aug 2017 11:40:36 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3.samsung.com (EUCPMTA) with SMTP id 4A.4C.17464.3B860895; Tue, 1 Aug 2017 12:40:35 +0100 (BST) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170801114035eucas1p2e64bd0b4d1aa9bdb63b9ccab2686fd72~Wtf_urnbI2575425754eucas1p2M; Tue, 1 Aug 2017 11:40:35 +0000 (GMT) X-AuditID: cbfec7f2-f797e6d000004438-a3-598068b3f012 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 03.10.20206.3B860895; Tue, 1 Aug 2017 12:40:35 +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 <0OU0000G78FFVC30@eusync1.samsung.com>; Tue, 01 Aug 2017 12:40:35 +0100 (BST) From: Alexey Perevalov To: qemu-devel@nongnu.org Date: Tue, 01 Aug 2017 14:40:22 +0300 Message-id: <1501587624-5915-2-git-send-email-a.perevalov@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1501587624-5915-1-git-send-email-a.perevalov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrIIsWRmVeSWpSXmKPExsWy7djP87qbMxoiDVZftbCYe/c8i0Xvtnvs FtM+32a3uNL+k91iy/5v7BbHe3ewWNzZ0sfkwO7x5NpmJo/3+66yefRtWcUYwBzFZZOSmpNZ llqkb5fAlbF51mX2gj6Fir7mPrYGxl6xLkZODgkBE4k3v/4zQthiEhfurWfrYuTiEBJYyiix +vIPdgjnM6PEi+5OJpiOE7dfQCWWMUr8n/6CFcLpZpK4cu8IkMPBwSZgILHvni1Ig4iApMTv rtPMIDXMAgsZJR5c7GEHSQgLuEhMmdPLDlLPIqAq8fKjM0iYV8BN4sWJRSwQy+QkTh6bzApi cwq4S+zZehxssYTAazaJaf23wHolBGQlNh1ghqh3kfiwczNUr7DEq+Nb2CFsGYnLk7tZIHrb GSW6d3ayQjgTGCXOTP8LVWUvcermVbA3mQX4JCZtm84MsYBXoqNNCKLEQ+J08xeoZY4Su9+9 YYJ4fhajxOYr19gnMMosYGRYxSiSWlqcm55abKxXnJhbXJqXrpecn7uJERixp/8d/7SD8esJ q0OMAhyMSjy8Hab1kUKsiWXFlbmHGCU4mJVEeEOiGiKFeFMSK6tSi/Lji0pzUosPMUpzsCiJ 83KduhYhJJCeWJKanZpakFoEk2Xi4JRqYOT/FvVsR8v/61GygacebH0eHnqouHVJ+NW4trRz Qf6iz7aHCv/+cPNpo6D4jLvzr7bOveQxa/+F9+9eXDmwvDnxSOleLQvR9JAajpwPv/6/5jjh Xv3inqKMadHR1YpzD2q6Prln/GROc2Z3pvrGczs3NGRrtfdnfW7burPGdmvry6D+W/kKXO+U WIozEg21mIuKEwFgjAqh1AIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrPLMWRmVeSWpSXmKPExsVy+t/xy7qbMxoiDbZNFrCYe/c8i0Xvtnvs FtM+32a3uNL+k91iy/5v7BbHe3ewWNzZ0sfkwO7x5NpmJo/3+66yefRtWcUYwBzlZpORmpiS WqSQmpecn5KZl26rFBripmuhpJCXmJtqqxSh6xsSpKRQlphTCuQZGaABB+cA92AlfbsEt4zN sy6zF/QpVPQ197E1MPaKdTFyckgImEicuP2CHcIWk7hwbz1bFyMXh5DAEkaJ1RPvskI4vUwS p841MXcxcnCwCRhI7LtnC9IgIiAp8bvrNDNIDbPAQkaJOVOfMIIkhAVcJKbM6WUHqWcRUJV4 +dEZJMwr4Cbx4sQiFohlchInj01mBbE5Bdwl9mw9DnaEEFDNsfkX2SYw8i5gZFjFKJJaWpyb nltspFecmFtcmpeul5yfu4kRGLjbjv3csoOx613wIUYBDkYlHt4H5vWRQqyJZcWVuYcYJTiY lUR4Q6IaIoV4UxIrq1KL8uOLSnNSiw8xmgLdNJFZSjQ5HxhVeSXxhiaG5paGRsYWFuZGRkri vFM/XAkXEkhPLEnNTk0tSC2C6WPi4JRqYJx6smCvf8P2T2/PuBm+kpWtnbP0b0Wn6z6+qe/W vRFZc7Ht5ZNle/k/NSxQ3nNV5U/R8v//mCsXPQw+cvfgjE+9f98bcz/ZsWTr1G0lu2ZETuJO WREucmDfC67CF/ZamqGp37O/TG+dEVK25hELk+D1/SJzjodMYmZ5+GWjUZdzfI1egdnkExb6 SizFGYmGWsxFxYkATzITtnICAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170801114035eucas1p2e64bd0b4d1aa9bdb63b9ccab2686fd72 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 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: 20170801114035eucas1p2e64bd0b4d1aa9bdb63b9ccab2686fd72 X-RootMTR: 20170801114035eucas1p2e64bd0b4d1aa9bdb63b9ccab2686fd72 References: <1501587624-5915-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.11 Subject: [Qemu-devel] [PATCH v9 1/3] 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: heetae82.ahn@samsung.com, quintela@redhat.com, Alexey Perevalov , peterx@redhat.com, dgilbert@redhat.com, i.maximets@samsung.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 copied pages as closer as possible to the place where it tracks down. That will be necessary in futher patch. Reviewed-by: Dr. David Alan Gilbert Reviewed-by: Peter Xu Reviewed-by: Juan Quintela Signed-off-by: Alexey Perevalov --- migration/postcopy-ram.c | 13 +++++++------ migration/postcopy-ram.h | 4 ++-- migration/ram.c | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c index 7e21e6f..996e64d 100644 --- a/migration/postcopy-ram.c +++ b/migration/postcopy-ram.c @@ -564,9 +564,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; @@ -595,11 +596,11 @@ 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) { trace_postcopy_place_page_zero(host); - if (pagesize == getpagesize()) { + if (qemu_ram_pagesize(rb) == getpagesize()) { struct uffdio_zeropage zero_struct; zero_struct.range.start = (uint64_t)(uintptr_t)host; zero_struct.range.len = getpagesize(); @@ -629,7 +630,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; @@ -692,14 +693,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 52d51e8..78a3591 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 1b08296..9cc1b17 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -2470,10 +2470,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) {