From mboxrd@z Thu Jan 1 00:00:00 1970 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 C2390C7619A for ; Tue, 11 Apr 2023 18:25:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1ED486B0078; Tue, 11 Apr 2023 14:25:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 19C976B007B; Tue, 11 Apr 2023 14:25:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0654E900002; Tue, 11 Apr 2023 14:25:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id E7A076B0078 for ; Tue, 11 Apr 2023 14:25:11 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id AF75A14062A for ; Tue, 11 Apr 2023 18:25:11 +0000 (UTC) X-FDA: 80669937222.21.8A90F00 Received: from out203-205-251-72.mail.qq.com (out203-205-251-72.mail.qq.com [203.205.251.72]) by imf19.hostedemail.com (Postfix) with ESMTP id 4FBE11A001F for ; Tue, 11 Apr 2023 18:25:07 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=foxmail.com header.s=s201512 header.b=O0Qoze+p; spf=pass (imf19.hostedemail.com: domain of wenyang.linux@foxmail.com designates 203.205.251.72 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=1681237509; a=rsa-sha256; cv=none; b=YWQLb2EvUTpAqVyYmOe1AvhiDWmha5hj8XBtN0BnjEwUObgzbT6Uqw3eYcs8hQ0S3HLiby X9D9E3aFnBzSYyNy6Uhi3B1KNF63Aoxe8LTR2BBqs1eHu86IsXWha8sjwYgW9jJ3ywavRt AWBCEq3qcivtYZI6OCepfEJxoThZRDk= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=foxmail.com header.s=s201512 header.b=O0Qoze+p; spf=pass (imf19.hostedemail.com: domain of wenyang.linux@foxmail.com designates 203.205.251.72 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=1681237509; 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=mp0sQiFFTDUpNh6NxMv9OYuqBQq73chrKv/EDkfDVeA=; b=GgRJuXHlYRfA+M2CUu6b2c3qhcbsAdH1KuframW97xDA0MSmdUIYlPz+5S4DIzkCKwf8Af g1YhVK2caBSGEXPbdGkar8sWDn6fhVFx5KkjIxyJXpWK5OcANajjfvUdxoDE6Q50gY4xkU Ze2V3XEU1kp+xHCiK75CjvCUuwfJQ5g= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1681237493; bh=mp0sQiFFTDUpNh6NxMv9OYuqBQq73chrKv/EDkfDVeA=; h=From:To:Cc:Subject:Date; b=O0Qoze+pmJd55fTN4IN/pYbyjL4CvRVzM5u80oG7ZARUJr1fcOgtJEXyd9nHxlNO/ qychL37DvXf+tfuMgexDBLSwyu4pKeSSpamQQpUb2EmcSNHbYtph68kXloNVA8r2NV VRlJWI9B+ErI5qxbtbkQJxBXGWAuucsMnl3xxWE0= 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-Rspam-User: X-Rspamd-Queue-Id: 4FBE11A001F X-Rspamd-Server: rspam01 X-Stat-Signature: mq8ssserx396j5kshjsrmiqin769q8w3 X-HE-Tag: 1681237507-267939 X-HE-Meta: U2FsdGVkX1/dSNv6UBij8MPg/6c5g0nRhk41KfptUfhGZQSdu29SyUvdrhGxyeJRP0IALSVYiihl2xvMPp5YmX5XFHrk3KyfB57h+9t1n98RWr2p8z2kLKEOLJxbJrwAgDPot7h/rdXOockmu/RKl1c3HLyeRtzFsxuNz4moL9RAlJrDRkC2ZX1x99sPf1jbukEpawJSE0cb309p6d8x4wueHezgFNQpQJcsainvPC2jp42+THApo3VZLVoMaCXCwvHv1gV7/ZMRzgr+ei9vLI8YLDSV6AJDzgwJRZhRLuVovbgajdsNFPJYUYP+7RorcKcQBwapX6H1hmF1sq9hkkwobecBJQ1mdz2itejfjz+E3xjcEPzF0IPH13cmf3usJBuGsLEUtKPMOmC6rvDh0/WH+vupR5qtQ9MAWK1dZamu92kgr95BKQO4FBxp4yYud/QO3AhinXiNClfgi+vFx6mbhd2UvZMMFtT6VWUXZKysLNoqvLEkp6Fif6JfXHt0gh8HfYbZsJHAyt7ECngceCBew6L3EqY2pGqovWEQVgaz3Z5wzE2+7tF0cMrO3v6lN9pmrVfNZ9CtFwK89aohS+nIiooex0z5nJwGzOERiG+fP5s9NMp5UzW6J6B2moViloQ7uww2D5Y2lYTTfCJJ1e+QLdCR1nRWldQy6eziVNjq1nkqSTudYyOT5vfe7RCsRtglMwJ2GDTq6q1f132U9Bw0/Sq+KGqzHxGXACQD6NoYCOQXv+rHWZqdaGyvLWCPLnEbLmZb1il/HGYhzXWYIq4KPFyMo8tQn5+G1IH5PnK45iouy6mlNwFevUH3rM2SmDBdBmzrF9NDp+QKFHBnYQJaZSPatQnp9EBVehyyHbRwwp+QxJT/ZLCBsUaUf5Dl26iQQcDwKHyZp/GJ72ttr8o9q4Z7STAyMDNve1scGp6i4OhwtzRYRynhCTzUZyAlZrBzNenxz1eeCwIpH3p AawwCZBP eiPS7KOxRsZ95jsob0pN8I5Y6ll8Z/M1hVH5Sb9RkA7/s7B400Zf+ys7Xi3p9aFG+4fNubCkNtlRV9RceooIdFQDFgbYTB56LtiKc9jjIhUlSDfsVNaf/JwIWTd63SKlQdoYAYQerj/6mHHTINluMyiIvP1d39GGze/JVQLBL0GfXoHXydArBY7rLxjjVC27yljL39keBL9YxcFwsSQeWDqvjcZGp2j+MYnctRL/FsXLVi0OU78pcV5geeLPhK5GTkag5GxdW2L+sMJ4+iouZUmDAx1bpFmArh2EwrG3NSryfJgtTxIwRx5Rqbwj3E+1bbAFS+NJdX6lj+530frzRCu7KeOttEJQKOAlASdQBtAj+jcoBaYTRRCv2EJzG5li8RrdcqPYFZoOYyaddB41NhMKikYVF76S84JHStnPVrwXP1/h24Xm3tff6wIkgpHdTbKNtx4NwkDgU40vm/RsPcvsi66q7FxYmZ8Jii1eqR5I5cF1BMG2ev2SdInyFgX1YteycP+OmFbWoNIZXcgEQtqj02lkIRCZCFMG4lnjPgYRxiAL0AyqVhAW+0hPXmJy3wOp5IBQJCBV7ahqQ22LeG4DPJQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, 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. 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