From patchwork Thu Jun 23 02:08:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: CGEL X-Patchwork-Id: 12891688 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 8B92DC43334 for ; Thu, 23 Jun 2022 02:08:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E200F8E0108; Wed, 22 Jun 2022 22:08:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DD0838E00FA; Wed, 22 Jun 2022 22:08:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CBEA68E0108; Wed, 22 Jun 2022 22:08:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id BE0728E00FA for ; Wed, 22 Jun 2022 22:08:57 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id 8A09F121172 for ; Thu, 23 Jun 2022 02:08:57 +0000 (UTC) X-FDA: 79607867514.15.BA02998 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf24.hostedemail.com (Postfix) with ESMTP id 31D60180006 for ; Thu, 23 Jun 2022 02:08:57 +0000 (UTC) Received: by mail-pl1-f178.google.com with SMTP id i15so16916706plr.1 for ; Wed, 22 Jun 2022 19:08:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=gFNqrvmdrehhVYe9abTr2VyL7ULkOZ03V3dAQM99o3U=; b=SGChNjh3wO0ObI0jHGsZTaKlJj3CIJcWvDAzyZMCNJ5hj6FLxOS4qy55ap+u2LUvCI bqwQXvR7CapH0pFjzh3BET+HiW/z0nRkjuDUl0QOQfI81Be6/vScx1BbC9yeyb/eVQ3A vDTpwmZdpT7QKGSGK2nSVt2kcRy9ZwpW7LmeWROAoG6mtXYuBB25F0uJm3wJBfG+gUzQ 1EYKlZZHIYqfk3D5ttHKbgtOETES9idlfX8AG+9sp5OtAldbsXf7Usx1nVc2QZFHhzGh 24kgaU6LFPQt9MVUXtBTLAtmx4R+v7KNqM48J5/No/GwBj3Rn1fdYH1GOI4Pf6byNsC5 QARA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=gFNqrvmdrehhVYe9abTr2VyL7ULkOZ03V3dAQM99o3U=; b=ZrYQR9Y5m8TcQeMVK6fC81eNZj3Yxm0Dr1qtYJF0ux0OsQWM195iAyQ8wVjD3vdOOr URyEW0UHQ+cEg6VBzSFX1NEX+XAkho2JeRQS0/LCRADhUat2jXbpIWPpj7mOU20EhDYP tMqaT/H/Aayk4dWK3khQ92OItpIib79JPc4VhMaG6X7+FxbCH/bEp1RJ7lipbfHtpz8b vaSVcABioEV4FKT9MBfKpyE2TXiKdzbq8j1lzTdWrbWk2+7okAKTLu+S6Tm5UoJxECAZ Cu/zqktT3DYusWvzLuwY2IbDiVlRbiO2WhuWWEXdELBw6k2kq90BbfwS38luLyvAesSP VdXA== X-Gm-Message-State: AJIora9E7i0jOBiDVBccFBNV4yGXINHJu45UYWECP4ZeGuvoIfiL/ThU ijb+SjYTjABz2nvYhNS/3Fk= X-Google-Smtp-Source: AGRyM1ut5eimvJbLkUkpUbKtQdua0qme/fASO93DfJczTES2Dr+mvKAK+7WB1CaD9RFgVQRi3RXVcw== X-Received: by 2002:a17:90a:f314:b0:1ec:91a9:3256 with SMTP id ca20-20020a17090af31400b001ec91a93256mr1430541pjb.155.1655950136037; Wed, 22 Jun 2022 19:08:56 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id jg4-20020a17090326c400b001663cf001besm13090011plb.174.2022.06.22.19.08.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jun 2022 19:08:55 -0700 (PDT) From: cgel.zte@gmail.com X-Google-Original-From: yang.yang29@zte.com.cn To: akpm@linux-foundation.org, willy@infradead.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yang Yang , CGEL ZTE Subject: [PATCH v2] mm/page_alloc: make the annotations of available memory more accurate Date: Thu, 23 Jun 2022 02:08:34 +0000 Message-Id: <20220623020833.972979-1-yang.yang29@zte.com.cn> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1655950137; a=rsa-sha256; cv=none; b=o2X0pbLTGJWmFO+tEPyPwkuuWMHR3yDu5bBNvOlyQ8RvjT93eaFf1QCddBOpkBNjs9D82r OEs+I/gUxPwQn9siXPzbgUn3UYAiu+KhseiZeWWC9RvxUr7SbKfNhimv7k/uv2ilm+a+6r KiAB8CykhfB1s5yUFG5hfaQxE+kvkqc= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=SGChNjh3; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of cgel.zte@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=cgel.zte@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1655950137; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=gFNqrvmdrehhVYe9abTr2VyL7ULkOZ03V3dAQM99o3U=; b=fZoSI+sMayBJCvZDiLbUkmH1wAc/d0mr54qO0WDlXEEWSZ+b6GO7Em2jLnCcNV8oDAU425 66gsjCegTAJHcn37U8j5cj+BwovjrHFLF5AHR25G/VLFwevekdum9fC3W3lpxefvCLmRAK E0cs/T2UAKhzJkUhee793a9YieUN4oc= X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 31D60180006 Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=SGChNjh3; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of cgel.zte@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=cgel.zte@gmail.com X-Stat-Signature: yhhwqw6h6oxfed9to9xp7qnnbyxfzj5y X-Rspam-User: X-HE-Tag: 1655950137-779976 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: From: Yang Yang Not all the systems use swap, so estimating available memory would help to prevent swapping or OOM of system that not use swap. And we need to reserve some page cache to prevent swapping or thrashing. If somebody is accessing the pages in pagecache, and if too much would be freed, most accesses might mean reading data from disk, i.e. thrashing. Signed-off-by: Yang Yang Signed-off-by: CGEL ZTE --- v2: - add signoff --- mm/page_alloc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index e538dde2c1c0..233f68d31cdd 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5889,14 +5889,14 @@ long si_mem_available(void) /* * Estimate the amount of memory available for userspace allocations, - * without causing swapping. + * without causing swapping or OOM. */ available = global_zone_page_state(NR_FREE_PAGES) - totalreserve_pages; /* * Not all the page cache can be freed, otherwise the system will - * start swapping. Assume at least half of the page cache, or the - * low watermark worth of cache, needs to stay. + * start swapping or thrashing. Assume at least half of the page + * cache, or the low watermark worth of cache, needs to stay. */ pagecache = pages[LRU_ACTIVE_FILE] + pages[LRU_INACTIVE_FILE]; pagecache -= min(pagecache / 2, wmark_low);