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=-11.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT 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 D3ABAC64E8A for ; Wed, 2 Dec 2020 05:23:37 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 1219F20872 for ; Wed, 2 Dec 2020 05:23:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1219F20872 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=soleen.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 005768D0005; Wed, 2 Dec 2020 00:23:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EF88B8D0002; Wed, 2 Dec 2020 00:23:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D996E8D0005; Wed, 2 Dec 2020 00:23:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0018.hostedemail.com [216.40.44.18]) by kanga.kvack.org (Postfix) with ESMTP id C0DE08D0002 for ; Wed, 2 Dec 2020 00:23:35 -0500 (EST) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 855F73636 for ; Wed, 2 Dec 2020 05:23:35 +0000 (UTC) X-FDA: 77547199590.14.look62_2a0ff8e273b0 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin14.hostedemail.com (Postfix) with ESMTP id 5FA6A1822987A for ; Wed, 2 Dec 2020 05:23:35 +0000 (UTC) X-HE-Tag: look62_2a0ff8e273b0 X-Filterd-Recvd-Size: 4734 Received: from mail-io1-f68.google.com (mail-io1-f68.google.com [209.85.166.68]) by imf02.hostedemail.com (Postfix) with ESMTP for ; Wed, 2 Dec 2020 05:23:34 +0000 (UTC) Received: by mail-io1-f68.google.com with SMTP id z5so645606iob.11 for ; Tue, 01 Dec 2020 21:23:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=soleen.com; s=google; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=G1qM8sn/PNUsKgov3fcts2bNWeaJFWZuYxDyQQdoPaU=; b=E+JmodwvLXtS3HzMx5uUUdr9evCBFddX1/mT4cTGtkBDMN4txdrJxo49+sPXZ76eQI AMqybXNpmJlYOqeQutvS7qSMwtVmxkcs5Hd2Qt28zG2uQBy5LP6nFPXa6N2fBiOs9KRQ U5JZdqFbw3UCCboY2vxXkKkB2ZRyp7yHd5s0HwRXX3EF9N6G+jD5+1GkSD8nR1gUgthV 9FDEFN5bcOaOZluCZqnFerEQd65Yo9p0L0S1nrXtPL6Ew7uGtFvuvnLwFpQ5hdj/8FuP quzeLw+sIdw5N3Whz+7z4LG1RTnW9S+ZNVSv0loBzQBfdE9BSyyeM1ScdJLUXgxlq/+X 8zKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=G1qM8sn/PNUsKgov3fcts2bNWeaJFWZuYxDyQQdoPaU=; b=PGFuPKzGT0K5TewwFnMgqY9OQh8rfdnZ+DJv5KuSyuj4lDFxiQXTfb3MIuIOTWqUmT PXkRigOSBPJW1OTd33UlNf8FcR3EsJmntfjUS8DlarbRhsnAY8yKR+tKcHQCi3AZyDDO SteHLmXNRT3gIGkenvZyB77TUEeOAiRTa68nueM28jvuts4ipBtQQYwfu6Rz0HIdxNJ7 gxTGUQ6ooO087rPZBKNKjjjoffgoXLD2YnOVZ8f16Lvw1pcUOyylbjV5YGQ0tml70Mxi monYcJIUUpUjuP9jNtC+UjFPHu4g6FSYk6u+vnpoHaISvfNEJOmDpxbBxR1AM8tTXS/w fa+w== X-Gm-Message-State: AOAM533yIMzIVbZX4stpUg+61cRuy9eVk6LbixPeUMu9bKXR6GpUZAbG KkNw6P9DP07xIGlVygOvfnwscQ== X-Google-Smtp-Source: ABdhPJyTeCJGMPTSatfRIvKFhVE4cfcNJgoEt1DAlqwMczmrxgfiYWBN4c0lqMTlAikPG9fS+lfeVA== X-Received: by 2002:a02:c7c1:: with SMTP id s1mr715694jao.94.1606886614168; Tue, 01 Dec 2020 21:23:34 -0800 (PST) Received: from localhost.localdomain (c-73-69-118-222.hsd1.nh.comcast.net. [73.69.118.222]) by smtp.gmail.com with ESMTPSA id m19sm295938ila.81.2020.12.01.21.23.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Dec 2020 21:23:33 -0800 (PST) From: Pavel Tatashin To: pasha.tatashin@soleen.com, 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, jgg@ziepe.ca, peterz@infradead.org, mgorman@suse.de, willy@infradead.org, rientjes@google.com, jhubbard@nvidia.com Subject: [PATCH 0/6] prohibit pinning pages in ZONE_MOVABLE Date: Wed, 2 Dec 2020 00:23:24 -0500 Message-Id: <20201202052330.474592-1-pasha.tatashin@soleen.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: When page is pinned it cannot be moved and its physical address stays the same until pages is unpinned. This is useful functionality to allows userland to implementation DMA access. For example, it is used by vfio in vfio_pin_pages(). However, this functionality breaks memory hotplug/hotremove assumptions that pages in ZONE_MOVABLE can always be migrated. This patch series fixes this issue by forcing new allocations during page pinning to omit ZONE_MOVABLE, and also to migrate any existing pages from ZONE_MOVABLE during pinning. It uses the same scheme logic that is currently used by CMA, and extends the functionality for all allocations. For more information read the discussion [1] about this problem. [1] https://lore.kernel.org/lkml/CA+CK2bBffHBxjmb9jmSKacm0fJMinyt3Nhk8Nx6= iudcQSj80_w@mail.gmail.com/ Pavel Tatashin (6): mm/gup: perform check_dax_vmas only when FS_DAX is enabled mm/gup: don't pin migrated cma pages in movable zone mm/gup: make __gup_longterm_locked common mm cma: rename PF_MEMALLOC_NOCMA to PF_MEMALLOC_NOMOVABLE mm: honor PF_MEMALLOC_NOMOVABLE for all allocations mm/gup: migrate pinned pages out of movable zone include/linux/migrate.h | 1 + include/linux/sched.h | 2 +- include/linux/sched/mm.h | 21 +++------ include/trace/events/migrate.h | 3 +- mm/gup.c | 82 +++++++++++++--------------------- mm/hugetlb.c | 4 +- mm/page_alloc.c | 26 ++++++----- 7 files changed, 58 insertions(+), 81 deletions(-) --=20 2.25.1