Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp2287750ybb; Sun, 12 Apr 2020 02:15:33 -0700 (PDT) X-Google-Smtp-Source: APiQypKTLfVEYh+pbJFWSE7LXNDs6H/VHXA12aKB7dq8BllJ8W0F1FRJSEpqNULkCXxgjJhr75c6 X-Received: by 2002:a05:620a:2222:: with SMTP id n2mr688492qkh.5.1586682933764; Sun, 12 Apr 2020 02:15:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586682933; cv=none; d=google.com; s=arc-20160816; b=WToeMoSgY95tlnE1nIjPKC5fMwLLIjC5+m12HAunvreEN1U4+iiHxYNImD6Av0bUFc U3vY+p2ExbtsfoAgPMaT7r61dchYy/f+9/GfLMrA8fThkx0wt1QtG175G1VdJoYNQpsX PAlLkfl9BSxkRRcdJQmRmEYamitE1NBTnaW3fT+eTY8P9LMiCLK6UJZeIhWp6szRq+u0 et3J7tZXP4YoT00o8t3wVA8LeEARzVQoeZTp27pWwlwJX3223PojG2CKBKC9qwdHUBaR PQ4HRNTkQ1BEtT9ohDXbWLkriCsWOqZOZjUcE2zXfTuI5K3wYzw5TWSuDCfOTlWeBP+s bsSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:mail-followup-to:message-id:subject:to:date:from :dkim-signature; bh=hUbPx5am7etltmgoue9kYTx6WYTCCq/rXLPPJIBdwBM=; b=0bgQjbioy99mBwRZm7AQbaCaQtL0OxwPAGX1aAnuCj1U6KNAQQ/wzH+vCX280Yd3lx 04KvJf+OGQVg6pJmvCEmALSdXfKJ8qGlGNugwzmpkA3UrRARGnwivxtx20Jj6BwtEYXX Wyl5GHsK1WI7ee8+BMyI2UC6aoeygu9XUcOy7GfCKMt5JkUyNK2p/DpB4Fw2HBrgnNr/ +cxFsR6uoG6QNhjg+4b4WjAHNPLKVCFT+XygpjFXuE0mF4k8aB+wxtA/qeuwr8DDd1Gh /aH1p6JUf3WwleXfKwFCyNuDFsVNigttftcUInZCvmepvy9fpyj50aSOv3IO3WCbugTO AMmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="hoeVsy/P"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id 6si3737731qth.171.2020.04.12.02.15.19; Sun, 12 Apr 2020 02:15:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="hoeVsy/P"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1726962AbgDLJOY (ORCPT + 99 others); Sun, 12 Apr 2020 05:14:24 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:44386 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725878AbgDLJOX (ORCPT ); Sun, 12 Apr 2020 05:14:23 -0400 Received: by mail-pl1-f193.google.com with SMTP id h11so2334719plr.11 for ; Sun, 12 Apr 2020 02:14:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:date:to:subject:message-id:mail-followup-to:mime-version :content-disposition:user-agent; bh=hUbPx5am7etltmgoue9kYTx6WYTCCq/rXLPPJIBdwBM=; b=hoeVsy/PTGVtnZswBoThfSYj3QyaEdgABmWYzdgE9+v4MzxAcHXiHwFyVjvbGuPHDt 4cn1IWPV/t2tu5UVyplPVhq37lKqT/grtiihag1SZkKY6U+ypcsPgBGDNp1GItKNePFN biT7HlJHUef1ciLA/ywlvGGsG3PZkt1qQ5eM1Z21pSkdQ0eO+FhbxJ+7b5BO/VcaTszo nCWEKZBYiFBHhu+5SSUOMtOcPnlL7X9WnI4ENXAxSiDPemNEPkXjequM6r3ZVI7K6KRQ EkN8IKN5geL2OuSBZFen07/5LuU5FK4oCNY8Ujl1uHhX6mQDEippj0an3EZTa6n7g/rM gvvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:date:to:subject:message-id:mail-followup-to :mime-version:content-disposition:user-agent; bh=hUbPx5am7etltmgoue9kYTx6WYTCCq/rXLPPJIBdwBM=; b=jYaH4ff5NzG2MD4KD+ywvbFqNFsqk5TUOTFf1eeC2xaWqEGqDtH3ExouKUcFdxECl9 igUwwIkWg8rFRdoc9wSyYhNeQrAq+gq7xGads8QuvmrhVcs0GsFXfkexGr6LdVoTPnZE R9p8kG2R5now4GEtK650aMTFNfwq/rdpaw/5r+EDdZq3zFYeO72eumtUTQlPzBe1XQNf n2E0pE29u9g5ShS64w91N38uD4kv7jeOYQmiZjJDJ1pJybfwdXLsyePB2n0dtd4daduc AUHnMws+KQ1HTJ5Oul7caTD7qyz/kFd55YI+CXW3mPmnM2/i99Nc1oXyB2q5KT12GyS9 +LHQ== X-Gm-Message-State: AGi0PuYnIjPBTUHxE3sxrTDamX0YtwzSH/uxHJCPkq1q4F9MCEYN3S0f C3onK53oUypXkcXvc3Eq4aU= X-Received: by 2002:a17:90a:f00b:: with SMTP id bt11mr15479384pjb.71.1586682863092; Sun, 12 Apr 2020 02:14:23 -0700 (PDT) Received: from open-light-1.localdomain ([66.98.113.28]) by smtp.gmail.com with ESMTPSA id bt19sm6173756pjb.3.2020.04.12.02.14.21 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Apr 2020 02:14:22 -0700 (PDT) From: liliangleo X-Google-Original-From: liliangleo Date: Sun, 12 Apr 2020 05:08:56 -0400 To: Alexander Duyck , Mel Gorman , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrea Arcangeli , Dan Williams , Dave Hansen , David Hildenbrand , Michal Hocko , Andrew Morton , Alex Williamson Subject: [RFC PATCH 2/4] mm: Add batch size for free page reporting Message-ID: <20200412090853.GA19578@open-light-1.localdomain> Mail-Followup-To: Alexander Duyck , Mel Gorman , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrea Arcangeli , Dan Williams , Dave Hansen , David Hildenbrand , Michal Hocko , Andrew Morton , Alex Williamson MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use the page order as the only threshold for page reporting is not flexible, add a batch size as another threshold, so the reporting will be triggered only when the amount of free page is bigger than the batch size. Cc: Alexander Duyck Cc: Mel Gorman Cc: Andrea Arcangeli Cc: Dan Williams Cc: Dave Hansen Cc: David Hildenbrand Cc: Michal Hocko Cc: Andrew Morton Cc: Alex Williamson Signed-off-by: liliangleo --- mm/page_reporting.c | 2 ++ mm/page_reporting.h | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/mm/page_reporting.c b/mm/page_reporting.c index 3a7084e508e1..dc7a22a4b752 100644 --- a/mm/page_reporting.c +++ b/mm/page_reporting.c @@ -14,6 +14,8 @@ #define PAGE_REPORTING_DELAY (2 * HZ) #define MAX_SCAN_NUM 1024 +unsigned long page_report_batch_size __read_mostly = 4 * 1024 * 1024UL; + static struct page_reporting_dev_info __rcu *pr_dev_info __read_mostly; enum { diff --git a/mm/page_reporting.h b/mm/page_reporting.h index aa6d37f4dc22..f18c85ecdfe0 100644 --- a/mm/page_reporting.h +++ b/mm/page_reporting.h @@ -12,6 +12,8 @@ #define PAGE_REPORTING_MIN_ORDER pageblock_order +extern unsigned long page_report_batch_size; + #ifdef CONFIG_PAGE_REPORTING DECLARE_STATIC_KEY_FALSE(page_reporting_enabled); void __page_reporting_notify(void); @@ -33,6 +35,8 @@ static inline bool page_reported(struct page *page) */ static inline void page_reporting_notify_free(unsigned int order) { + static long batch_size; + /* Called from hot path in __free_one_page() */ if (!static_branch_unlikely(&page_reporting_enabled)) return; @@ -41,8 +45,12 @@ static inline void page_reporting_notify_free(unsigned int order) if (order < PAGE_REPORTING_MIN_ORDER) return; - /* This will add a few cycles, but should be called infrequently */ - __page_reporting_notify(); + batch_size += (1 << order) << PAGE_SHIFT; + if (batch_size >= page_report_batch_size) { + batch_size = 0; + /* This add a few cycles, but should be called infrequently */ + __page_reporting_notify(); + } } #else /* CONFIG_PAGE_REPORTING */ #define page_reported(_page) false -- 2.14.1