Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp151479ybz; Tue, 28 Apr 2020 20:31:26 -0700 (PDT) X-Google-Smtp-Source: APiQypKtLuORxvwT6I2uz/GdKk1bR4wlhumxlNIsDmVcvmAPTMAp8TMeYtoebmsj+GUsMgx0Ubbf X-Received: by 2002:aa7:c34e:: with SMTP id j14mr754035edr.195.1588131086745; Tue, 28 Apr 2020 20:31:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588131086; cv=none; d=google.com; s=arc-20160816; b=UuWmJGAbxjrKxpbxjVy5aosvgT09u7qMYZt2fNZ/dL06761WkQ+87puqRZNNBnNnXN ADbMz8sLcgzwY1LERUown8MflVJYl0y1j1Z/JS6KW22aDB2Jtg/AHx/G0l1P1SP3ufcJ 5ozdwg/38nKETXtiopoWG779uiTXSK1dHQV/0SeRY3hGUHU/kHF1BAUbZcmkGYqdt4nb 1IGqgP3aNbD2hu1afxlR7fc6p9qgKx+xeBMZ5uTXIG8ohqNLDSBw4YJAPn7rlS4a4Dig rOVOVOwfU4poAhKIdkfZo3at5/QH9etZaZy2vynSZLl+7ABv1aL+ObYZGtsiZImBY25M jYKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=OoRI+cRunKH9WBjhUvLx6xEiTkTtLL8jDLPBXfzqLhY=; b=mxYMqYwEcY1Uk7iVPM0qH+0gEQJhxXg6aut+aGvaNsTjgwXiykz6tC3AVQADmBPYfO fOH8j+kD+lDuOiD3pbN8BTCuUTjkECet00kYoDerdNV8GqbX3Kuy3F7aoklVk8ijRucJ xUW+pWK+n4ese1sTk64JE4nTUJ4BYcYv/IghobANZXlYWKrZuNv15v31VPZsf/xYMfzZ IJNdlsxYmya5eMb+K7cObkklc2go6HHJe1Ks9/1voFrdZ/V9Xhnol2dbQdy7yjVa/5bY DiznPFJC22nsuJukZ83k8zlo7f7yM1GRFyTeK7TOC6AePn8DMaUxnHzmZIDtE4KS9DqD s2CQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="WfE/iAfJ"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w26si2946908ejb.118.2020.04.28.20.31.03; Tue, 28 Apr 2020 20:31:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="WfE/iAfJ"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726836AbgD2D1v (ORCPT + 99 others); Tue, 28 Apr 2020 23:27:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42788 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726792AbgD2D1u (ORCPT ); Tue, 28 Apr 2020 23:27:50 -0400 Received: from mail-pl1-x644.google.com (mail-pl1-x644.google.com [IPv6:2607:f8b0:4864:20::644]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2321C03C1AC for ; Tue, 28 Apr 2020 20:27:50 -0700 (PDT) Received: by mail-pl1-x644.google.com with SMTP id u22so317970plq.12 for ; Tue, 28 Apr 2020 20:27:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=OoRI+cRunKH9WBjhUvLx6xEiTkTtLL8jDLPBXfzqLhY=; b=WfE/iAfJRj709WUE/DqCp3kQvZLDfPqz0Y+GFAuwA7l8LKNp0oWG35rkAoNlwpvZJ3 k4TnWr107Ixi9fhqz1qOaWTc50GGhV/Fx0Wsu3LTmy2DCVroGocU3ISWgKjr25sgMO0L t4OHwf3wKPVybUAboOEHTr9bObXq45dZjQ83L/voxeG8iKFVCFSfejvPKa7H/HtBB4dB mGAPVOBDNUSvC/SS1aLvmeYHQwMFXfancyfK0Q0lR2CzezZeTlrwqJjY0Gy7MWdiGyeg dUbpAxMCl55cyGRTrCHFbfjOtm9eBvlI9upgNDVsTJBQoAC9aqP7F9qcQ3QHtax4NECs Yecg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=OoRI+cRunKH9WBjhUvLx6xEiTkTtLL8jDLPBXfzqLhY=; b=cijZorZdIL2ZItJe3PwY5zQ9UDMT4LAnXKgZXU6uqvLnHY91rXOumUFn4QMslqmH+p onuzFGwWcnckrRx5qNiO37hYY8fL9FNC8uHf/xq+IKltE4HZIbbSU1rxtJDovxpmdrin yHAcr2umGvJYoinVCaqMycu1p5F26pZdNSzhtPFu7A1+rTdiYyBKpHF6L0L7/Qz/VyyQ HHwGM3YXRW/LC/kgLND+xWQ5a1bUMiUtoLYv4iYvSi//HL8/YFNM7C5bc5mweBwcOQho is79stAtQrx26uMl/Vj3h0C/T8xDL+igMd/sKfA80zqmNXsa817XdeX9f6aeKTHRxj7B WeGg== X-Gm-Message-State: AGi0PuahKiAU3w7CXuJosdk2a8I11YJQxoEW1SctQxCSjsi+kYkEZWTH FUk5g4Bp7BcEHyrAAZGownE= X-Received: by 2002:a17:90a:648d:: with SMTP id h13mr778148pjj.12.1588130870123; Tue, 28 Apr 2020 20:27:50 -0700 (PDT) Received: from localhost.localdomain ([114.206.198.176]) by smtp.gmail.com with ESMTPSA id q11sm9559796pfl.97.2020.04.28.20.27.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Apr 2020 20:27:49 -0700 (PDT) From: js1304@gmail.com X-Google-Original-From: iamjoonsoo.kim@lge.com To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Vlastimil Babka , Laura Abbott , "Aneesh Kumar K . V" , Mel Gorman , Michal Hocko , Johannes Weiner , Roman Gushchin , Minchan Kim , Rik van Riel , Christian Koenig , Huang Rui , Eric Biederman , "Rafael J . Wysocki" , Pavel Machek , kernel-team@lge.com, Christoph Hellwig , Joonsoo Kim Subject: [PATCH v2 10/10] mm/page-flags: change the implementation of the PageHighMem() Date: Wed, 29 Apr 2020 12:26:43 +0900 Message-Id: <1588130803-20527-11-git-send-email-iamjoonsoo.kim@lge.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1588130803-20527-1-git-send-email-iamjoonsoo.kim@lge.com> References: <1588130803-20527-1-git-send-email-iamjoonsoo.kim@lge.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Joonsoo Kim Until now, PageHighMem() is used for two different cases. One is to check if there is a direct mapping for this page or not. The other is to check the zone of this page, that is, weather it is the highmem type zone or not. Previous patches introduce PageHighMemZone() macro and separates both cases strictly. So, now, PageHighMem() is used just for checking if there is a direct mapping for this page or not. In the following patchset, ZONE_MOVABLE which could be considered as the highmem type zone in some configuration could have both types of pages, direct mapped pages and unmapped pages. So, current implementation of PageHighMem() that checks the zone rather than checks the page in order to check if a direct mapping exists will be invalid. This patch prepares that case by implementing PageHighMem() with the max_low_pfn. Acked-by: Roman Gushchin Signed-off-by: Joonsoo Kim --- include/linux/page-flags.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index fca0cce..7ac5fc8 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -375,6 +375,8 @@ PAGEFLAG(Readahead, reclaim, PF_NO_COMPOUND) TESTCLEARFLAG(Readahead, reclaim, PF_NO_COMPOUND) #ifdef CONFIG_HIGHMEM +extern unsigned long max_low_pfn; + /* * Must use a macro here due to header dependency issues. page_zone() is not * available at this point. @@ -383,7 +385,7 @@ PAGEFLAG(Readahead, reclaim, PF_NO_COMPOUND) * in order to predict previous gfp_flags or to count something for system * memory management. */ -#define PageHighMem(__p) is_highmem_idx(page_zonenum(__p)) +#define PageHighMem(__p) (page_to_pfn(__p) >= max_low_pfn) #define PageHighMemZone(__p) is_highmem_idx(page_zonenum(__p)) #else PAGEFLAG_FALSE(HighMem) -- 2.7.4