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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8737BC433F5 for ; Mon, 2 May 2022 17:36:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1359E6B0071; Mon, 2 May 2022 13:36:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0E4B16B0073; Mon, 2 May 2022 13:36:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EA0BD6B0074; Mon, 2 May 2022 13:36:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.25]) by kanga.kvack.org (Postfix) with ESMTP id D534D6B0071 for ; Mon, 2 May 2022 13:36:03 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 9EA0C2A1EF for ; Mon, 2 May 2022 17:36:03 +0000 (UTC) X-FDA: 79421506206.01.EAD101E Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by imf08.hostedemail.com (Postfix) with ESMTP id 5B17E160019 for ; Mon, 2 May 2022 17:35:54 +0000 (UTC) Received: by mail-pl1-f172.google.com with SMTP id c11so2756206plg.13 for ; Mon, 02 May 2022 10:36:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JGEDLI+EsiblxvuiKqtfo/1MBXAuRayw2ZOB5Dyv3cY=; b=ZUBc68JOx6sNfy/Lbsv0RKRvgy3RrwquQ+OwpH5iUFiIJl7p+pMV9MC5ErxsSl0VsV AJMqD+LCod5WoxpJ+ujDZq2l3UsEiKSLvyEKQ8Kr7W+umYl+3xzdVx/o2r9frX98iN7l nlYWQ7LmDRVcAmdeADpzxYjqdCrp+8lXacUfOLYqglPnEzDXE9CaI5qiC4MCtwe/HpCp BwIipjbkbijjFEgYUancAu6pxvtjMnD4tTvYtQK3exaOfyZTV3yJxK+G0Bfgiansa9+J bs7/NEPd87n5dGW3aTK9OOIYetUch8tyjG5819bQOGsj+VoAsMZ+DcpAryV7XpFOd/Kv gbcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=JGEDLI+EsiblxvuiKqtfo/1MBXAuRayw2ZOB5Dyv3cY=; b=akD0J+Jspwsb26mfEDG/qMLAo7el40Du98WyB1R41/dW4Y7ZT3kOQhDy+iY0dF9vUs SrdKps3lK9/hsrRpqieTupboDXipjWNUG4t6DassWNDTePFq3l5QXraXlb0q/A2OdjFm pas75as4aTmmyOsC0yp+WzVSveV8C2R99XNIR/6ss3MjlfvTch+Ujv34l2bJcoz7FE4R kicQsO5d5NbYE7xAtPcjid2uK2jUAO6S9vSk+YM0bUoMIg+h/NIyglS1955Q0kECTRzP Mbb58vMrd5Scx7+7Z/86XW0Bg714J84gRas0QTL7Gek9WZL49dHDjsWR4dHHhHac8ONS ++Uw== X-Gm-Message-State: AOAM532UKfU6Cit2hhsH1kA2KAILoHALJ2XN8mYu3WucOPFuE5bLzzpw 7f3GT3BejyzOrb9xN7aoZJA= X-Google-Smtp-Source: ABdhPJx0D6QW5/2/1AXKVtzMeCLf9FXSyyn5ZEvQ23RSx5fX2XGLVKVm0xRwBSp1CU5C7ZWzM9guoA== X-Received: by 2002:a17:902:e746:b0:15e:b4f3:72e7 with SMTP id p6-20020a170902e74600b0015eb4f372e7mr289164plf.8.1651512962066; Mon, 02 May 2022 10:36:02 -0700 (PDT) Received: from bbox-1.mtv.corp.google.com ([2620:15c:211:201:4d84:d37e:584f:bdbc]) by smtp.gmail.com with ESMTPSA id y16-20020a1709027c9000b0015e8d4eb26bsm4926525pll.181.2022.05.02.10.36.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 May 2022 10:36:01 -0700 (PDT) From: Minchan Kim To: Andrew Morton Cc: linux-mm , LKML , John Hubbard , John Dias , Minchan Kim Subject: [PATCH] mm: fix is_pinnable_page against on cma page Date: Mon, 2 May 2022 10:35:58 -0700 Message-Id: <20220502173558.2510641-1-minchan@kernel.org> X-Mailer: git-send-email 2.36.0.464.gb9c8b46e94-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: guut1nmrukah4hq5kegre948ptgbxi5e X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 5B17E160019 Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ZUBc68JO; spf=pass (imf08.hostedemail.com: domain of minchan.kim@gmail.com designates 209.85.214.172 as permitted sender) smtp.mailfrom=minchan.kim@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) X-Rspam-User: X-HE-Tag: 1651512954-841384 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: Pages on CMA area could have MIGRATE_ISOLATE as well as MIGRATE_CMA so current is_pinnable_page could miss CMA pages which has MIGRATE_ ISOLATE. It ends up putting CMA pages longterm pinning possible on pin_user_pages APIs so CMA allocation fails. The CMA allocation path protects the migration type change race using zone->lock but what GUP path need to know is just whether the page is on CMA area or not rather than exact type. Thus, we don't need zone->lock but just checks the migratype in either of (MIGRATE_ISOLATE and MIGRATE_CMA). Signed-off-by: Minchan Kim --- include/linux/mm.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 6acca5cecbc5..f59bbe3296e3 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1625,8 +1625,10 @@ static inline bool page_needs_cow_for_dma(struct vm_area_struct *vma, #ifdef CONFIG_MIGRATION static inline bool is_pinnable_page(struct page *page) { - return !(is_zone_movable_page(page) || is_migrate_cma_page(page)) || - is_zero_pfn(page_to_pfn(page)); + int mt = get_pageblock_migratetype(page); + + return !(is_zone_movable_page(page) || mt == MIGRATE_CMA || + mt == MIGRATE_ISOLATE || is_zero_pfn(page_to_pfn(page))); } #else static inline bool is_pinnable_page(struct page *page) -- 2.36.0.464.gb9c8b46e94-goog