From patchwork Tue Apr 25 15:52:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wen Yang X-Patchwork-Id: 13223445 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 9AC60C77B61 for ; Tue, 25 Apr 2023 15:53:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 015CC6B0081; Tue, 25 Apr 2023 11:53:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EE0726B0082; Tue, 25 Apr 2023 11:53:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DA7E56B0083; Tue, 25 Apr 2023 11:53:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C75F36B0081 for ; Tue, 25 Apr 2023 11:53:03 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 6AEDD80272 for ; Tue, 25 Apr 2023 15:53:03 +0000 (UTC) X-FDA: 80720357046.08.809EB8F Received: from out162-62-57-210.mail.qq.com (out162-62-57-210.mail.qq.com [162.62.57.210]) by imf14.hostedemail.com (Postfix) with ESMTP id C2A1A100004 for ; Tue, 25 Apr 2023 15:53:00 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=foxmail.com header.s=s201512 header.b=N4zKowrp; spf=pass (imf14.hostedemail.com: domain of wenyang.linux@foxmail.com designates 162.62.57.210 as permitted sender) smtp.mailfrom=wenyang.linux@foxmail.com; dmarc=pass (policy=none) header.from=foxmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682437981; 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=JlYbbOs6z6hz+QzmnaXvi+VrUzPthQqcCo2R3Rs46yk=; b=zxS4Gma0DaDB8Y/74O89MbdRSbUlljJuspWljtDfgjBoUFtC1tYAYbN5uuXUWXZRc2Gl/0 UdYAxj/M7zh1em/aZXV4dtfwZ1ZX0ZN3ToVRRV5I8w5bKfw8NBV6BdhETg8lKDGGawWu6M XINpKio1p7LavQyokMggqCh/F671Ths= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=foxmail.com header.s=s201512 header.b=N4zKowrp; spf=pass (imf14.hostedemail.com: domain of wenyang.linux@foxmail.com designates 162.62.57.210 as permitted sender) smtp.mailfrom=wenyang.linux@foxmail.com; dmarc=pass (policy=none) header.from=foxmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682437981; a=rsa-sha256; cv=none; b=3IBZndEGcGqFQCLgHLAgNOFQJbJqRPHUJzCNVJJHZ/JlVEN9ixlnj22ufu2NKDjwPKfdFf HxQg3gMEvk+zAgde+UPojgitDSrkdKlindP0cjW/GBFP+MbW6pIP73sR69PBvD4/lIC/Qu XtuTStzYk9AmZ+XNLM1H1eGnWW3zr5A= 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 X-Rspamd-Queue-Id: C2A1A100004 X-Stat-Signature: s1psw19kogt7an5qyeouk6d74nc15swy X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1682437980-952864 X-HE-Meta: U2FsdGVkX19v+V7/lP6ZdtiFY2JzSrtSFc8ck+zkY+9qjii5hMwkqJPnBXX4e6MYI57T3H6ZvWejFH1RSqH0bm+uTrPxXaS1ObK0fNICTtwLrGzLPjTAkFGLEhYreqk7GeTC17cpoZ0DlCM4yBX1s7a5hU6Y5AtS0X0nlvM8zJEYeOqBIPDajipl2oG4s2euH5AeCgGtAqv7+HDtVYHpVF6dN9aoFE9HcZ+zOWCtRoGJhLYHzRxO2qVkIKO1wDg5NzGYvbYdtmnkMV6n9rymX6sbaLuXtQDIobb1KidPHcNjvxcdABm1Bz2eIJDT1eew2asCDkzrjnH36VnVb9UJKFbOXok+GR3ECoRrzAeanmBaSxyGqUKlNPcevr5fSjvqJCHPU+igAo7D+0bFMobGt6SQ4YXvxMEVu07rws6FNtVzx+4MxLmkcfUSuYlmh+bh0GMMDTyEJCdihFLO8pDzMlrUJGvHoVFYvaB3GxC9tRM5xI6lGBmi21aCl8xFg0C0ENXMRQpd2qnIImo8Mdz5xDd1madTYyxvzoXFXrsqU/NfAXSa+2xb/36PSt+N9E4WqcyYfZuK1olnRYFl73q4RdAtKNdnIZdyLncTnRLjftJQZfz7bETLVP25Q9ksPa4GjFSG+b0mMF+8IVmKqcE101YYLRTkSZptzWsRWFhLLfgELulDiNxP6ykqQCTgdfU0+Rf/3eErmVWTv4+mvvLiBXzf9Wt1Z7jGgT/6LFNRoC1u57JXRBh54ZzcUjdCd/q5GFY1v4bh+HBPgZdiBmnWI64Wu2mhCI+qgdJ+Zty+t4Vf0zBq7ufPZb4OJwKvQFOIfQg3VncKrBUVUrkqP0//lHCupJMF++QHpuPazWFSiQlLZT8Q7o54gwrvKBCDmVLxrhfomGcmaXWdP7Q7AoQktjC0gcBkbrxC3sP2zUOPDTPbbHwKzisWTVUM5tM1WlnZ0PN39uFQo9O5jbrWfBo VVUe9Idf dzsxf9bNJGF40WvD7lTmnJhdyoVVODv3DLRDPsSkJGsRMGXFa/pQD/vaUhN00vpXS0xzit34tc7PerdQFY9+P91/F5gubK/dPDqXJBSmuaBGAFQPkH3jR9OjSp1I8/R6EEf14PRrsGcLnw9/tPZSK5lKEER/s0/hWj5zhMc8ErUVbNWWKjxNloUcLwx6FdD4QUQZHWXWco1HFQ5Y40OwfBloerLDD3ai2I+V2FE41k2dFrys9aUKhVw/OBiEHRpVUn/sUgB/L73t+9KTjKHnVs/BFO30JyirhiZZsTHazFWWNYlPj2iTke7JL5OkSIGwBnCIWz9qNfnOU9Go26p6Jx/tHZ2QIS+r2buMrmrQAQtX37zD0mX2kq28a+RoRLgXbGknOne5RanwAdTnwYN79X8a2HOsYcoQ4vb/3LX/bgeKZJHEMfxwzp67YSG/VJlBNVhZ1aK3QqJUiFAmrPlOh76aXC7JV5hAy44bvcxVTkysOptU7xF5HY+QnCLdlZD1R9qCo5Z4qc8O+EQEBts04t/ISnbksfoRCHYMm1NgqXQ5TtKpPe4TQD/eH/wfgQjSnPaz3+vsdmJIMo58CHoMgGiBouoyt72U+zOhEVh41vs4UWb+NgjDCs2lnoqjVRub2bts/ 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: 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 Acked-by: Mel Gorman --- 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,