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 A9493EB64DC for ; Sun, 25 Jun 2023 04:27:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C53548D0002; Sun, 25 Jun 2023 00:27:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BDD188D0001; Sun, 25 Jun 2023 00:27:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A7D7B8D0002; Sun, 25 Jun 2023 00:27:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 94B8D8D0001 for ; Sun, 25 Jun 2023 00:27:23 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 619F114020E for ; Sun, 25 Jun 2023 04:27:23 +0000 (UTC) X-FDA: 80939985966.25.51BFB86 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by imf02.hostedemail.com (Postfix) with ESMTP id D10FA8001C for ; Sun, 25 Jun 2023 04:27:20 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=AaAYLFPh; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf02.hostedemail.com: domain of ying.huang@intel.com designates 192.55.52.151 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687667241; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JFj0sqegEC28fLJaim5fCb9harB+cra+ZLNiuSjlkwQ=; b=eP2FmhaisNaJAZHtECpNfBO514KekxzXaYCGoZhAeg4kjBipV0XQ4zy6KgOOn12AqMxtW4 9j4k3vglgRC36iULGqP0AxaTl13WkdssER1EkfxOtJXxsS1uj4y5QCD06PGgnNP0Q+Uwo9 MIelaxRNO2jCz9GAyyvpIhlh0SlDXoA= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=AaAYLFPh; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf02.hostedemail.com: domain of ying.huang@intel.com designates 192.55.52.151 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687667241; a=rsa-sha256; cv=none; b=an5QiaKK8gPk5M3Nou0DXU4gC+p7xAsIEJ7kHIfPgv3xH0OCOdhqyQdp/MQM1FIToP7ojH dZXDFCjUAKCoS2Glpg5DtjNRWKMRimrQKQNh87GAQjnfDKwxzLIt5mgoSIk9e99pehUhVq JPg0ki1e1pZzp95i1u/bng6PfI1Iy/0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687667240; x=1719203240; h=from:to:cc:subject:references:date:in-reply-to: message-id:mime-version; bh=WG/a/leZ5bfG3f0ZpT4IG5ONI8r8aX0EZR5+oB50gPI=; b=AaAYLFPh2CFWyXQ7gb9BgFNt+n/hDZn7tJtPsIYrGj3L7LpmdA7PSNAE /21CettQqU+LpeLHhB47T4nKFedq0GIm4xZN4h+TgsY1R/iMpktb5jSq7 uUQWzmVA3xZDmJ8kWsq4ezMMcUHISQOm2sJNKcGhnqCPUlnX/TBtC1K7m yEjiejOFpNvVwaVtwnRvPcEZcce+kU0cGNZGPyOrmmiXrjSHoj1HK7hoa f9oSoQqtAXjlMHlkQ1pvpXLns3u5G552See4alVjKqHY3on3mRphM0WQg sk6910U7leuU7Kh10upZ7M7XRc8n856MCBAClI6TPlWl+3S8FBzirOobZ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10751"; a="341362925" X-IronPort-AV: E=Sophos;i="6.01,156,1684825200"; d="scan'208";a="341362925" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2023 21:27:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10751"; a="693082585" X-IronPort-AV: E=Sophos;i="6.01,156,1684825200"; d="scan'208";a="693082585" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2023 21:27:16 -0700 From: "Huang, Ying" To: liuq Cc: , , Subject: Re: [PATCH v5] mm/page_alloc: fix min_free_kbytes calculation regarding ZONE_MOVABLE References: <20230625031656.23941-1-liuq131@chinatelecom.cn> Date: Sun, 25 Jun 2023 12:25:14 +0800 In-Reply-To: <20230625031656.23941-1-liuq131@chinatelecom.cn> (liuq's message of "Sun, 25 Jun 2023 11:16:56 +0800") Message-ID: <87h6qw6udx.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspamd-Queue-Id: D10FA8001C X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: xm7usmri1wfwibmnz7sfj45urrutzi6r X-HE-Tag: 1687667240-20701 X-HE-Meta: U2FsdGVkX1/vxJJIEYpjLb2r4UGLoTl1WqhDEcO19mpnTptbTkvqzSyFlAurmrIFjg1uhhTA5TrXC5lFcUdXpiSI0kbwWa7h3AmoXioZBZoUAq3mou4zy2gtI7W+w4dyg6cBBXhPTwNXDYt3omZeECbmPbr1q011YRfCjMF36NYFUudN2P2wmwoE2bLMSE3jxX7bp6RAcfYkHEA7wY9WTTwYGqEnRiz/XFlm4qNbabgcBBGwVu3btU+oO4OmafZaC1PQgv/tr1pjYreVuUJwaz0D1drSpo7KOQmAYjb1WUVczeh8Lmq4NrbugaZjkU2d1O2zmkz8BJmnA2If9d+Q462shywRKKyqMAdNk3qJ1Rk8hLy+649KRqYDmA1pS6/BwbiogmcmIYlDhpIK95B0k6AV1FJR5Jo5rroYR5u9tqqzbQLzQ36mthrsJTO1jINE+MUbxIW7Sy3Deaoe8BxsHt3WWHQDEGfrn4L30s8s0Ws7p/BIT5y1eQ119Y41he6JQ3xYOCLTPiQTyS/jjqyJ9fpzTHMuDumDImVcpx+DDfZwQanUtsTwNm3hvhyu0H4oQamY8uC7VVI+tZ3+9RUSGlhMBj3TH8f79SqQ8RC1bmS3UDCOQUNep8w3DysI/tylr4ZlpegZaj4lqCTeJuFcsQ6m8qd+FRrHY2KV1bPz5ZFbuiIhY57UzyiayGQ1VEdm4K+Rg1G3BtWaHSa8x3ymjt9h2fwxGIDaObg4mBucFcq8iju/OcRXpXoTaOsgYhEiZYwrklqNlsB8JH37k8vV+GbVSwHDEtR0B8shu3m+8chSwHS26nKv5zTlOX3wOFwS79GJeBDH1Fo/P+ZZFYxXT0rus8AYF94+0JO/MrgKC9tputNBNNxg6WcwGK8ZLZ51D1I9IgatbUohCWL92ZgOkp2B0Rayvow9HzIZjOlRdAUVT7k3Mf8S08r6ARiwBkwWUekNZ3Ys/q3PzTxDEaa zL12pCnm bXUoW09mBkVDk1LJofwcZZe2FkP9y8jZVPRLlZey5Yh0hXBraeKhXxhqI9EHMv2jeWOTTEYle0oePwjJ4KGumlj5Mz7iSaiN9m+pxHjxWc525bWRDBiQ7sYgn+vOFRllIzJIpCLq4al25BaVWpQBLP2xC8bf/hIt9byWw+WTMt7UWGA1/X8IkhEoHUV0VMIhmS3PkBZVQFwuRv4iDHwn+C+++Kg== 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: liuq writes: > The current calculation of min_free_kbytes only uses ZONE_DMA and > ZONE_NORMAL pages,but the ZONE_MOVABLE zone->_watermark[WMARK_MIN] > will also divide part of min_free_kbytes.This will cause the min > watermark of ZONE_NORMAL to be too small in the presence of ZONE_MOVEABLE. > > __GFP_HIGH and PF_MEMALLOC allocations usually don't need movable > zone pages, so just like ZONE_HIGHMEM, cap pages_min to a small > value in __setup_per_zone_wmarks(). > > On my testing machine with 16GB of memory (transparent hugepage is > turned off by default, and movablecore=12G is configured) > The following is a comparative test data of watermark_min > > no patch add patch > ZONE_DMA 1 8 > ZONE_DMA32 151 709 > ZONE_NORMAL 233 1113 > ZONE_MOVABLE 1434 128 > min_free_kbytes 7288 7326 > > Signed-off-by: liuq Thanks! Reviewed-by: "Huang, Ying" > --- > mm/page_alloc.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 47421bedc12b..590ed8725e09 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -6362,9 +6362,9 @@ static void __setup_per_zone_wmarks(void) > struct zone *zone; > unsigned long flags; > > - /* Calculate total number of !ZONE_HIGHMEM pages */ > + /* Calculate total number of !ZONE_HIGHMEM and !ZONE_MOVABLE pages */ > for_each_zone(zone) { > - if (!is_highmem(zone)) > + if (!is_highmem(zone) && zone_idx(zone) != ZONE_MOVABLE) > lowmem_pages += zone_managed_pages(zone); > } > > @@ -6374,15 +6374,15 @@ static void __setup_per_zone_wmarks(void) > spin_lock_irqsave(&zone->lock, flags); > tmp = (u64)pages_min * zone_managed_pages(zone); > do_div(tmp, lowmem_pages); > - if (is_highmem(zone)) { > + if (is_highmem(zone) || zone_idx(zone) == ZONE_MOVABLE) { > /* > * __GFP_HIGH and PF_MEMALLOC allocations usually don't > - * need highmem pages, so cap pages_min to a small > - * value here. > + * need highmem and movable zones pages, so cap pages_min > + * to a small value here. > * > * The WMARK_HIGH-WMARK_LOW and (WMARK_LOW-WMARK_MIN) > * deltas control async page reclaim, and so should > - * not be capped for highmem. > + * not be capped for highmem and movable zones. > */ > unsigned long min_pages;