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=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 0913BC433E0 for ; Wed, 20 Jan 2021 13:14:06 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6320222210 for ; Wed, 20 Jan 2021 13:14:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6320222210 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 8347C6B000A; Wed, 20 Jan 2021 08:14:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E5436B000C; Wed, 20 Jan 2021 08:14:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6D4166B000D; Wed, 20 Jan 2021 08:14:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0175.hostedemail.com [216.40.44.175]) by kanga.kvack.org (Postfix) with ESMTP id 539F96B000A for ; Wed, 20 Jan 2021 08:14:04 -0500 (EST) Received: from smtpin15.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 10968180AD81F for ; Wed, 20 Jan 2021 13:14:04 +0000 (UTC) X-FDA: 77726196408.15.slave80_0810c402755a Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin15.hostedemail.com (Postfix) with ESMTP id B759B1814B0C9 for ; Wed, 20 Jan 2021 13:14:03 +0000 (UTC) X-HE-Tag: slave80_0810c402755a X-Filterd-Recvd-Size: 5441 Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) by imf48.hostedemail.com (Postfix) with ESMTP for ; Wed, 20 Jan 2021 13:14:03 +0000 (UTC) Received: by mail-qk1-f182.google.com with SMTP id d85so1050143qkg.5 for ; Wed, 20 Jan 2021 05:14:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=IUNaNIuA4xbDu98svmM2jn7EHmzgSCmG0EsKgdaOjwc=; b=EY2/n64rd27QwPm334cvc25FC3HqqQAa2JvZIwWeJfC6Sw8IsGSP9NF3TB4t4bvQyr 6/nJeY8fnh4gyFVaj8GdWbKqzQGfWlT5r3AdxO5v/kSyQXUS9c3H84IGsuGLzSgvaCsH ZIH+A/x4S81MCqFVAaG6/Px7s2sfoUEirHPAp5OJ3okJ9sBjmehcCWj1NX5BmSW/bgGQ VIt36bu0jJZu5XtgX5J7XECO+libQX3agGKYf1IIuWRcyUDCof+JS4XBVV+Bc8wyJjFv bukPZf94vOJJrfrFpY80L0uE7N4+BPBSHfIOde8lLLEREMUiyaBAc4WcsRLwoMDt/VBY uVQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=IUNaNIuA4xbDu98svmM2jn7EHmzgSCmG0EsKgdaOjwc=; b=XlQ+CZaqTXB2HWOf95olmXjBaTe/FMyEBgoFrNjlCjivf8lNFtrBTKk6Eoy4xkk/TJ 32pBfZHJUBS1xpS6FNBo46TTOViGFKMEg4beYm2PgArUsLtQTZbdUYignAwNgPHtgE4l TK+44Aw6bVXvVVUSLgL9WBQxzZTE3iqRieURPWmjQS/zU2knJiinrhZmHgh58E7Kzco1 PyhDwrqZq6aQljFNXotKLgllnDNR4otXTYPaMsBW5KF8tvS2i9FgjLhCUIABS3/pOoW8 TuTL2gxfovKmm95p3KkXkFT705dTPH/lyoMCt5YrziMJ66HJYpd3moaxBBWY3A2tfPwJ I5Hw== X-Gm-Message-State: AOAM530hqIjKprx60h5x2mEgPly6AcWdzdUyGy6ch3U+yuli4pTKzee1 j92LqKC5YeHkd+YjQ7FV23rFGw== X-Google-Smtp-Source: ABdhPJyfy2v9Ch96n2plUWMfFXXwme22yEuiQY1fW7FNJfI/zbY1rTdtYgr6cXaH+rX5HohPJbfvSQ== X-Received: by 2002:a05:620a:1265:: with SMTP id b5mr9335122qkl.27.1611148442493; Wed, 20 Jan 2021 05:14:02 -0800 (PST) Received: from ziepe.ca ([206.223.160.26]) by smtp.gmail.com with ESMTPSA id g189sm1274279qkf.8.2021.01.20.05.14.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Jan 2021 05:14:01 -0800 (PST) Received: from jgg by mlx with local (Exim 4.94) (envelope-from ) id 1l2DJA-004Tqb-Nu; Wed, 20 Jan 2021 09:14:00 -0400 Date: Wed, 20 Jan 2021 09:14:00 -0400 From: Jason Gunthorpe To: Pavel Tatashin Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, vbabka@suse.cz, mhocko@suse.com, david@redhat.com, osalvador@suse.de, dan.j.williams@intel.com, sashal@kernel.org, tyhicks@linux.microsoft.com, iamjoonsoo.kim@lge.com, mike.kravetz@oracle.com, rostedt@goodmis.org, mingo@redhat.com, peterz@infradead.org, mgorman@suse.de, willy@infradead.org, rientjes@google.com, jhubbard@nvidia.com, linux-doc@vger.kernel.org, ira.weiny@intel.com, linux-kselftest@vger.kernel.org Subject: Re: [PATCH v6 08/14] mm/gup: do not migrate zero page Message-ID: <20210120131400.GF4605@ziepe.ca> References: <20210120014333.222547-1-pasha.tatashin@soleen.com> <20210120014333.222547-9-pasha.tatashin@soleen.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210120014333.222547-9-pasha.tatashin@soleen.com> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Jan 19, 2021 at 08:43:27PM -0500, Pavel Tatashin wrote: > On some platforms ZERO_PAGE(0) might end-up in a movable zone. Do not > migrate zero page in gup during longterm pinning as migration of zero page > is not allowed. > > For example, in x86 QEMU with 16G of memory and kernelcore=5G parameter, I > see the following: > > Boot#1: zero_pfn 0x48a8d zero_pfn zone: ZONE_DMA32 > Boot#2: zero_pfn 0x20168d zero_pfn zone: ZONE_MOVABLE > > On x86, empty_zero_page is declared in .bss and depending on the loader > may end up in different physical locations during boots. > > Signed-off-by: Pavel Tatashin > include/linux/mmzone.h | 4 ++++ > mm/gup.c | 2 ++ > 2 files changed, 6 insertions(+) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index fc99e9241846..f67427a8f22b 100644 > +++ b/include/linux/mmzone.h > @@ -427,6 +427,10 @@ enum zone_type { > * techniques might use alloc_contig_range() to hide previously > * exposed pages from the buddy again (e.g., to implement some sort > * of memory unplug in virtio-mem). > + * 6. ZERO_PAGE(0), kernelcore/movablecore setups might create > + * situations where ZERO_PAGE(0) which is allocated differently > + * on different platforms may end up in a movable zone. ZERO_PAGE(0) > + * cannot be migrated. > * > * In general, no unmovable allocations that degrade memory offlining > * should end up in ZONE_MOVABLE. Allocators (like alloc_contig_range()) > diff --git a/mm/gup.c b/mm/gup.c > index 857b273e32ac..fdd5cda30a07 100644 > +++ b/mm/gup.c > @@ -1580,6 +1580,8 @@ static long check_and_migrate_cma_pages(struct mm_struct *mm, > * of the CMA zone if possible. > */ > if (is_migrate_cma_page(head)) { > + if (is_zero_pfn(page_to_pfn(head))) > + continue; I think you should put this logic in is_pinnable_page() Jason