From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F4B9C433ED for ; Sun, 2 May 2021 06:34:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DDE0F61476 for ; Sun, 2 May 2021 06:34:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229613AbhEBGex (ORCPT ); Sun, 2 May 2021 02:34:53 -0400 Received: from mail.kernel.org ([198.145.29.99]:60816 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229526AbhEBGex (ORCPT ); Sun, 2 May 2021 02:34:53 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3CC7261466; Sun, 2 May 2021 06:33:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1619937242; bh=sp3LzQWqlyVK4KqVpRuyYmKMW2WBVY2bQhDsFYs/JIU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Odz+FaFlS7Sa3nPJIMJtdmYFisF2DcMTFwlRGMlogH6i4gHeAtklI1v2fhZIXTmyc VuFnMOOPLD0PaTc3cOr5bXpQNtPH/ZQNyUb4rcYRMsxlM5/W2AF+Lr3lixJnqxOjEr gyiSKc8Aa08xobgVpGpW+kh4o5BiUaPrz0nMUFCWJs13RkCGKFcE8LyYt9435lHrDS DSzMzzzjH8RcT0hk5E85ykiiri3zuPSy/c9m+xw7Eb039FWlr5GLmwcfDhdU5D/uFv 1SoDcEE1lUM3Uf/+yRjzrpDZEmHbwWJlB6CCX7LZXOpMIm2v61B9HuchJWShkYQl55 L8kISYHyIFR7g== Date: Sun, 2 May 2021 09:33:49 +0300 From: Mike Rapoport To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, Andrew Morton , "Michael S. Tsirkin" , Jason Wang , Alexey Dobriyan , "Matthew Wilcox (Oracle)" , Oscar Salvador , Michal Hocko , Roman Gushchin , Alex Shi , Steven Price , Mike Kravetz , Aili Yao , Jiri Bohac , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Wei Liu , Naoya Horiguchi , linux-hyperv@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v1 6/7] virtio-mem: use page_offline_(start|end) when setting PageOffline() Message-ID: References: <20210429122519.15183-1-david@redhat.com> <20210429122519.15183-7-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210429122519.15183-7-david@redhat.com> Precedence: bulk List-ID: X-Mailing-List: linux-hyperv@vger.kernel.org On Thu, Apr 29, 2021 at 02:25:18PM +0200, David Hildenbrand wrote: > Let's properly use page_offline_(start|end) to synchronize setting > PageOffline(), so we won't have valid page access to unplugged memory > regions from /proc/kcore. > > Signed-off-by: David Hildenbrand > --- > drivers/virtio/virtio_mem.c | 2 ++ > mm/util.c | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/drivers/virtio/virtio_mem.c b/drivers/virtio/virtio_mem.c > index 10ec60d81e84..dc2a2e2b2ff8 100644 > --- a/drivers/virtio/virtio_mem.c > +++ b/drivers/virtio/virtio_mem.c > @@ -1065,6 +1065,7 @@ static int virtio_mem_memory_notifier_cb(struct notifier_block *nb, > static void virtio_mem_set_fake_offline(unsigned long pfn, > unsigned long nr_pages, bool onlined) > { > + page_offline_begin(); > for (; nr_pages--; pfn++) { > struct page *page = pfn_to_page(pfn); > > @@ -1075,6 +1076,7 @@ static void virtio_mem_set_fake_offline(unsigned long pfn, > ClearPageReserved(page); > } > } > + page_offline_end(); I'm not really familiar with ballooning and memory hotplug, but is it the only place that needs page_offline_{begin,end} ? > } > > /* > diff --git a/mm/util.c b/mm/util.c > index 95395d4e4209..d0e357bd65e6 100644 > --- a/mm/util.c > +++ b/mm/util.c > @@ -1046,8 +1046,10 @@ void page_offline_begin(void) > { > down_write(&page_offline_rwsem); > } > +EXPORT_SYMBOL(page_offline_begin); Should have been a part of the previous patch. > void page_offline_end(void) > { > up_write(&page_offline_rwsem); > } > +EXPORT_SYMBOL(page_offline_end); Ditto > -- > 2.30.2 > -- Sincerely yours, Mike.