Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp5909764rwl; Tue, 11 Apr 2023 11:41:16 -0700 (PDT) X-Google-Smtp-Source: AKy350aTsHCSDkf6bEXdivd2CfOD25Qrw3DbWNsJKyKvE6xgI4/CHZZfAC8ZrK6qCgoyuN+u+5Ci X-Received: by 2002:aa7:961c:0:b0:634:8719:a44a with SMTP id q28-20020aa7961c000000b006348719a44amr4702677pfg.4.1681238475903; Tue, 11 Apr 2023 11:41:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681238475; cv=none; d=google.com; s=arc-20160816; b=dxX22hYJo8Rti07Qpb+O2SIcXxVn00X83PCDPpCl+5hUnICdQl+Gg0nK7nwTJH0j/b MeKyXMa5gTYqYlix0bIADfMO6AmHlYOcIQFi2CJ9lbwocQhx8a72cOvxw1qsw5Zsn1cU 5cn9MxsFSZjYnL5jF6zWC0F8Mm0Xt32kBb1K67OZ9lKfwn9O3m/kSR06Svws3xDGrC2g WcRmVSNAL+A5mAEiSBitw5thDwA+t99c4PWe059sZKyRzV63Esay1EcuA1Edv4HJ6AXn U0dA1zWDZ6SwW6FtS5bTzjasp14Q9l1aUnwq+o8QSrGW3BsJxzXhBxh+kguBx5Ar5dJJ 8Q/w== 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=mp0sQiFFTDUpNh6NxMv9OYuqBQq73chrKv/EDkfDVeA=; b=MaJ0+VNDlOjeQhdRTBuBRUb6tihhgkk/BN78y/rBZzUnMqGcAPKCYrf+ASmm1JluOW pY+yd+2jB91ktfrzPZ7mtglhNmum+Szpbq5wRUgd3eT4cm2BAK6YONxGwnKc1D8oh5G5 C1pskdtm6fEbIJOkCT92ArdreCVWTJ8KS+K1ohugl1iuEWCkdZPHasP6/m5i3ypHexB9 L5M11bLNoltKLKfmtqn2OieI+EtMNkbjyLOfAgiw2D+xiY9K7Rjf8ceoOlSh8v9m2TTn u5cGjYlXT17rfZj7L9qvSn+nlgec+o/XBvseXOlZfeVe/xprz7N8zfmFKD14SXoxHCYX idBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b="GxaOKy/L"; 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 x13-20020aa79acd000000b0063aff86689asi18640pfp.353.2023.04.11.11.41.03; Tue, 11 Apr 2023 11:41:15 -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="GxaOKy/L"; 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 S229762AbjDKScY (ORCPT + 99 others); Tue, 11 Apr 2023 14:32:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229490AbjDKScX (ORCPT ); Tue, 11 Apr 2023 14:32:23 -0400 X-Greylist: delayed 243 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Tue, 11 Apr 2023 11:32:22 PDT Received: from out203-205-221-233.mail.qq.com (out203-205-221-233.mail.qq.com [203.205.221.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6F55ABD for ; Tue, 11 Apr 2023 11:32:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1681237940; bh=mp0sQiFFTDUpNh6NxMv9OYuqBQq73chrKv/EDkfDVeA=; h=From:To:Cc:Subject:Date; b=GxaOKy/LD0w8FIvheQXjXS8Ey3/T7x6UysU7mHTCC1qVwDqaEychtuch6oNI6KK6/ pY3umw3qyvpBKll8/A2vfOoCcubMYymoVuGmYm8wHcxwbzrre4LG2X6P5RtLvNZz/l 9n/Iu2Bxo8uLH1o64O8lS+Z8o4EgXfU5zB3xgDnc= Received: from wen-VirtualBox.lan ([106.92.97.36]) by newxmesmtplogicsvrszb6-0.qq.com (NewEsmtp) with SMTP id 632ACC6E; Wed, 12 Apr 2023 02:24:50 +0800 X-QQ-mid: xmsmtpt1681237490tazep2bw9 Message-ID: X-QQ-XMAILINFO: Nwte6vbuj0EqxKzjqFSWD9W9/wTGARFQ0IhiU5/jHK3ELV/l0jLhaDQ2FiELSd HOj/VAjLbJKgEb6Zq08bZ6Swkwkwre0YpLj01kZwffRan0IHjtuK8fhX28vCS6ztIRcxtJX6fSzU C6J7+U9fMQxdswrnF8Dxkf+0oSoCbyxFpxQJL929Rm9a7kT3wnFx6JXoOdiJ3oaYNNhWDIldNx62 kUHRBUP1RkUL+YtJOqxALEVS4qr3qHyDlYzN4c9xhE/VdPyKH5iNbuhGEPZwqdef0OYyCkEJ80pf RCgATxRbKy5BW9bNNoAySXeAZESjSkqhAVCFCvw5o/Kzg6MJlnNKirwNmGuY7th/McCFVa2z5FgZ 7G9ZPL3r5GmeMpuCmkjyLklM1wbSrqfXzn1jy9SXtzhmSYUsh9XrxhrWWBYgPmZGZqaLnU0JIO47 HwR8+it3o8J/35kgXJ58gwBSEA8CLVyJuIkyHew2KapJ3bprH8PHjoiV13cKPrYLuhQM9Yijr/gw 9Gq9Fotoyt5c4uwjjBGTRsKWFe7A/69gWRD0/bf2L8wnwGQCHS16Lq7nyfhL+COc7urPbUygAiEq r6RKUf7kvarIK9V41XID2B7Ncl/DW4lCAIFjFo2u9rKU7UW8nxcUZ/JYz8JIRT3m9zcVVNj3joAX FbXVAS2JK4hzIMZYoasVq2ZCVMAV4gX3PVQHFwkfNKBa2zRRrKY+f20OHup8ZdTevclsbLEBKAvJ RJ5lCUucufl5/FSwtjYNVuAj7/D6H3Qi1FKndNlHAsy1iYgn9AtCHFF/JJnfTIKdYpgnjWiGACdG 8FVloaLV8sD8FcOv9im1cpKiIcA+VvlJL0W7i8aMyi3NdzM9GzIXyp1nUuJ6HduL5FE6YzJih5aL vTd4yZm58C3oByZxNCwwN63U1TvlUOEPaD74GewakHMm1jjkcFQmPXbxOL3S+J9F1L8BeYbCteXH Pos2U9TQUHljwhdKI59UD2u/95Z170MNdLKm8cO0pV/Wb49lIvh5nwWag0zhYeA/adaDAcfeEfF8 ZiNilm5iqgr2mjnBCrxhrgZrlUtbSDqdMNeH8C6A== From: wenyang.linux@foxmail.com To: Andrew Morton Cc: Wen Yang , Mel Gorman , Oscar Salvador , William Lam , Fu Wei , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm: compaction: optimize compact_memory to comply with the admin-guide Date: Wed, 12 Apr 2023 02:24:26 +0800 X-OQ-MSGID: <20230411182426.972-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=3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HELO_DYNAMIC_IPADDR, RCVD_IN_DNSWL_NONE,RDNS_DYNAMIC,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: *** 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. In some critical scenarios, some applications operating it, such as echo 0, have caused serious problems. It has been slightly optimized to comply with the admin-guide. Signed-off-by: Wen Yang Cc: Andrew Morton Cc: Mel Gorman Cc: Oscar Salvador Cc: William Lam Cc: Fu Wei Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org --- mm/compaction.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mm/compaction.c b/mm/compaction.c index c8bcdea15f5f..3c4aa533d61c 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -2780,6 +2780,17 @@ 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) { + struct ctl_table t; + int compact; + int ret; + + t = *table; + t.data = &compact; + + ret = proc_dointvec_minmax(&t, write, buffer, length, ppos); + if (ret) + return ret; + if (write) compact_nodes(); @@ -3099,6 +3110,8 @@ static struct ctl_table vm_compaction[] = { .maxlen = sizeof(int), .mode = 0200, .proc_handler = sysctl_compaction_handler, + .extra1 = SYSCTL_ONE, + .extra2 = SYSCTL_ONE, }, { .procname = "compaction_proactiveness", -- 2.37.2