Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp7166603rwr; Tue, 25 Apr 2023 09:00:25 -0700 (PDT) X-Google-Smtp-Source: AKy350YDeqj3Tf3r3OlHm1Xvl1vt1F9eFCPmrZnsinsUel4149V/pLGW2JVtcGBxddHShH4UDv5z X-Received: by 2002:a05:6a21:6817:b0:f0:164b:fa5d with SMTP id wr23-20020a056a21681700b000f0164bfa5dmr20429276pzb.15.1682438424588; Tue, 25 Apr 2023 09:00:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682438424; cv=none; d=google.com; s=arc-20160816; b=B/DuVEPp76EmYzxFURjZs/eQ4+pN8bOCQWYIBfOUOdf7OhwJtxrR90ifmWG3weedjk Zplb1zoIL6Jj5d9Hx4B3x5+AAZ2J9WKn4Kr6KTZ3PUAjV5ynIYgeE2RDDM2yeqlCHnrF u9eMhY5hjcXuaBZ70OKGxEElgcrKI8/rYP8SD+NXWtdg45DDao4u6UrrKHe5jNcZM1rF YkoghpxKJZtnrRX/P5nR7DcY8NiBPO89mx8fxNlgw0Tvo03dAi5vCsfyrT+8pvbRA+En uQbFSV6vztFFO6xAiRTfBuYTSK/7reKpQZeD4FvkNeCpIgNkoLKgnhHe/PvmQEBXRtxs QqHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version:date :subject:cc:to:from:message-id:dkim-signature; bh=JlYbbOs6z6hz+QzmnaXvi+VrUzPthQqcCo2R3Rs46yk=; b=rvWNIvoApHyiawQ70ZqOitiQ4jfOYTSRVPsZxnBb2fNW+ipe+zD+m2Bfz7j77lSmWe wAT8Ph7EElfITLFLKHxId9CHWDvKvhqC/Z6JzcQwBBNuboO1dnV2UIeSWDxzT3EH4rqC ZcFpA4kBFQiaPCx8X7t9H53Z91dESKZVUcO7KDxy2uFRQOTtWYJ2nHvy51deVZYs07i+ qjhxrrBxfDZj6lJ1a0jMKmIEpL4cg/O1X6LunPum5cL1NiwiKg0MSVpOs/nbZwMCXcHs 1icrALANHwL0gof0xcLKFBdXhxHTm7rN/f3jlZvvLlnYDknjuY8AuvzyZHIBC5Jnkp97 CKrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b=N4zKowrp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n127-20020a632785000000b004fc2f19bacasi14651219pgn.120.2023.04.25.09.00.10; Tue, 25 Apr 2023 09:00:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b=N4zKowrp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234590AbjDYPwy (ORCPT + 99 others); Tue, 25 Apr 2023 11:52:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36062 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234585AbjDYPwx (ORCPT ); Tue, 25 Apr 2023 11:52:53 -0400 Received: from out203-205-251-84.mail.qq.com (unknown [203.205.251.84]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D65A435AC for ; Tue, 25 Apr 2023 08:52:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1682437965; bh=JlYbbOs6z6hz+QzmnaXvi+VrUzPthQqcCo2R3Rs46yk=; h=From:To:Cc:Subject:Date; b=N4zKowrp+DkgWYGqEn2ck72aJy+qhilu/hQKZ7Sx6sipgx4v3DOCukeRfUUpTe+ah FJuPEQFweQTs+JMagWqVNPG16tRI8UQ2p19/KhdzgW6wkBFzsIvnQWeEHgK36b0Ya8 OxmAhdzjPUUiwduhQ/VQx9S1zgIoiIu+w4JMsyPQ= Received: from wen-VirtualBox.lan ([106.92.97.36]) by newxmesmtplogicsvrszb6-0.qq.com (NewEsmtp) with SMTP id D2AA7EF8; Tue, 25 Apr 2023 23:52:42 +0800 X-QQ-mid: xmsmtpt1682437962trnudvj3a Message-ID: X-QQ-XMAILINFO: NCCl67D2lQ93xU+TdbuXKJH9/3z14+g0kHC1RIf5AlMXcdy0ey+UTbsytNU0Yl aMMJYE5gEOmNuwFfF+cwQOGgOXWyDvGp36YYooRoKboBuwPGO3Wn83IaRNgFNvDdptpObrbIAt/1 qWJatIVZsc3QP0Dy+WedF/p5rx9cG7MiErCUfACU8HXsjZOs+NXOxVkj3kYR+ee8Zdc9VWIaEGrC NgibYn/UXRxUddF+azICdYkcXhFhbQe+X0h6WyqHCkxETfq4Yu7rBgSxzoqC7B76ZLJtLkanU+gz gQQQmgZ6bDk20hYaxwQafdK6Y9ifN1uGdLVIQpX/NWi7ao4RgnR0qykqMAchh1GDT4e7wY/tNISJ dV+1jKUrn9XWul0arhNL5HiTpTqOfUWWHa1f0O2D0ZpXzdHzTIjFNqyowYn6z+MMQUpbtQZXAuRA nKQxuRHnfCtGUV0+7oPO3SUWy5KZFRMRADiu+x4Cezxr5u85WrWiuUsH1/mUPN5LhEbhB7J217fs wE7dJCGoXjz1b9v0cLkbbKs8y/Lmd6jArWKjHHqvB2lMV8IFYM0akbBawuc09tE1RNFNWRD8muto SWr8BArpbJ4KLLZPMYDHlESkWTdmucv0RSkLTSNoliw1OSwOVQOHxVDak9ZrLHGybYV3DXc3LsX5 JWqkPzohmXZgv8Sw4M/gY/A0quqtewWr4f1+hGoWsJ3tmhzKRpCPpJmErvXOjCsyYfPoPfnyiORB LCnwZiB3V74DeTRtounqdVFaaJzC7yGsdY1n4nnT3aZpMPtJsC3nD+uau4G+b41NaUlu9B2p9ZSf 8npIHfvwL+eKite+dbMk22lkdNUDlqp68aaFPQ7NDs2EYctDQdXC2RGdODb36AcKHoJlcUS6v3Yv 8z5uSa0Q9+PS/g8ScwQFNvOZRzzoA/EB0ADDxw/7LuOGSDqHWNgJXxIjxjKI6SXk18xfzphQsQba 4ZUZoxlCwNEE0Tns3AYuSBG0MvyLnDVwYtF74M2Lq5TG0y8gEjHI+Kb43daO2pLJ99fyvnKr8ZtY JUu4/4nkFzAsehKfplPQYTIkl0zlJ82c7NtvIVG/jXcSmblRZYtBHoSL45EqMOiwJCMqRYoQ== From: wenyang.linux@foxmail.com To: Andrew Morton Cc: Wen Yang , Mel Gorman , Oscar Salvador , William Lam , Pintu Kumar , Fu Wei , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] mm: compaction: optimize compact_memory to comply with the admin-guide Date: Tue, 25 Apr 2023 23:52:35 +0800 X-OQ-MSGID: <20230425155235.1020-1-wenyang.linux@foxmail.com> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, HELO_DYNAMIC_IPADDR,RDNS_DYNAMIC,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Wen Yang For the /proc/sys/vm/compact_memory file, the admin-guide states: When 1 is written to the file, all zones are compacted such that free memory is available in contiguous blocks where possible. This can be important for example in the allocation of huge pages although processes will also directly compact memory as required But it was not strictly followed, writing any value would cause all zones to be compacted. It has been slightly optimized to comply with the admin-guide. Enforce the 1 on the unlikely chance that the sysctl handler is ever extended to do something different. Commit ef4984384172 ("mm/compaction: remove unused variable sysctl_compact_memory") has also been optimized a bit here, as the declaration in the external header file has been eliminated, and sysctl_compact_memory also needs to be verified. Signed-off-by: Wen Yang Cc: Andrew Morton Cc: Mel Gorman Cc: Oscar Salvador Cc: William Lam Cc: Pintu Kumar Cc: Fu Wei Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org --- mm/compaction.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mm/compaction.c b/mm/compaction.c index c8bcdea15f5f..ba57d4178866 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -1736,6 +1736,7 @@ static int sysctl_compact_unevictable_allowed __read_mostly = CONFIG_COMPACT_UNE */ static unsigned int __read_mostly sysctl_compaction_proactiveness = 20; static int sysctl_extfrag_threshold = 500; +static int sysctl_compact_memory; static inline void update_fast_start_pfn(struct compact_control *cc, unsigned long pfn) @@ -2780,6 +2781,15 @@ static int compaction_proactiveness_sysctl_handler(struct ctl_table *table, int static int sysctl_compaction_handler(struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { + int ret; + + ret = proc_dointvec(table, write, buffer, length, ppos); + if (ret) + return ret; + + if (sysctl_compact_memory != 1) + return -EINVAL; + if (write) compact_nodes(); @@ -3095,7 +3105,7 @@ static int proc_dointvec_minmax_warn_RT_change(struct ctl_table *table, static struct ctl_table vm_compaction[] = { { .procname = "compact_memory", - .data = NULL, + .data = &sysctl_compact_memory, .maxlen = sizeof(int), .mode = 0200, .proc_handler = sysctl_compaction_handler, -- 2.37.2