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 E8F77C369AB for ; Thu, 24 Apr 2025 15:38:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 336F96B00B6; Thu, 24 Apr 2025 11:38:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2BEEE6B00B8; Thu, 24 Apr 2025 11:38:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 162236B00B9; Thu, 24 Apr 2025 11:38:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id DF0E36B00B6 for ; Thu, 24 Apr 2025 11:38:50 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 30E8280F39 for ; Thu, 24 Apr 2025 15:38:51 +0000 (UTC) X-FDA: 83369345262.02.DB4005F Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf07.hostedemail.com (Postfix) with ESMTP id 5D57940013 for ; Thu, 24 Apr 2025 15:38:49 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=gzTHdKLY; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of haowenchao22@gmail.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=haowenchao22@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745509129; a=rsa-sha256; cv=none; b=NO4pkE2TUua64DV00AfIfE8NHhe0dSvBtusPS23yWE6f3+KoHIWTH+ILJuNz2vABpTMvb9 LgxcOSrdT5uT8i7kmQWr6gEeHWJkyHh1yqHwJOCorpbLrwUV3trHx/GA9t34Vn+4or6/pi U13hRaf2qNhJ+AgN96ah6Vnkfpf5NIY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745509129; 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=YMZq5BIo218i4D6TktEoD1uPCCSFjpDHymQoxUTcIGs=; b=sp43azJslcIXFM6gNRhTqA2TFaQ96o0O5lpSUWgX+X8WM8R80tyVE1TNrGtMYz4XVUqWPG 5kV4QNzApaRxJZt/U8qHidCPtxytyQbyVHhCtVQ96qXrHHuvfoQsKNH8LhdDq6tgB+TaYc vi5iwee6uFd7TdMUr76Plvvsev4oGc0= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=gzTHdKLY; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf07.hostedemail.com: domain of haowenchao22@gmail.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=haowenchao22@gmail.com Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-227cf12df27so11901875ad.0 for ; Thu, 24 Apr 2025 08:38:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745509128; x=1746113928; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=YMZq5BIo218i4D6TktEoD1uPCCSFjpDHymQoxUTcIGs=; b=gzTHdKLYWHfpIZWkmb/daMgaQuF7204RmO+0+nBJgPW7bVWkgpaBHltD3t6ZNdDdP6 nU5j9N65KbYCN++6UgWoRYfxB7kBCHTe/MyorUdmFVl03B640d+MumRlTQI+aRo1USBo XvvTSpoHquPwqdbIWQaixmuBOKHYNCqBfk9dZhOR8yOtmr3HxvOS2sYmDaT6N9ZUBQZr 0e1p8LOlv9AqHA71TW4LV6Zb59oePTHPXnW0ObawcuJPIjdt+gb418iFbmKJ5k7Jxf1m WEm/ZR32dYlNmdds3rcOkWPTLM9/0pUHi4D5CHT7P8D7X4dmbDXb+erVSrQ/h8kapVcz lv9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745509128; x=1746113928; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=YMZq5BIo218i4D6TktEoD1uPCCSFjpDHymQoxUTcIGs=; b=dv0aFgHvx9aUChBHcrEemUjcS5bdUTkUDHtMLB0eYdt1lpC+AMN+0dATL/KoMQhJ9V X/vZedRQs5K7ycyLSr6K9NaAgobAXOO5DnYK5edX+bmldSkT1BhwWbrpa/Zv/FWqGw9m IdCzH2BOWkjsWxuFkdDV+tjvQmsHMiTOfNGt88icixxzZ8s8YXA7OLmkAfkSd/rRDEIJ +iiBSx+TBvKEVqVfPvxzPeJrTcq0TjuWWkq1T6KTHma2I6EKgyQ2WcAyXI3r67lV+qok dVhCD8gg7Ldhgl1Y8wCpiYPbzcGqbRhCcV7ZPRD3nZjccYenbUYFUjgTEq5MINfmr6xN jJNw== X-Forwarded-Encrypted: i=1; AJvYcCV5TOmO7Oa656lgtLDxZ86k8fMpJNY6+e16UbWBHWL4rqbb7GhbsAA4Fih/pQkU0ae6FT0VDQhbMw==@kvack.org X-Gm-Message-State: AOJu0Yyri1QAEFarquVcUQn1XsYI8JnhlLd11pr54po8cHXCVfWCD6bI CY58Z0qi6l+8ViDVlh1Wu+/bisyT0QZVMN7r/8OmzQwBdl9/P55x X-Gm-Gg: ASbGncsq7wHevyGxH3XxhWVQ7BLg2nBwQ95UZk0o58dlW/UE6LdZHt6HYjVJrKKBnGT P+pfKHXAazPN0hH5vm3Fwq6FiPagSl1TfrbsTnsKCiREexehqRL/KwlBrovG5pFhX+X3cghhwHf b1VWBjUTuc1Q3O1zMBZVRWqMRQ3fKyhZngc/3feoJMPz19kj62rZHjbgQAEHa9aqlACgmMl4ntt 5FjJQY5E8flsZs9p98uqQbhd9D1zmUwDGM2DBjURdH4bOOcbd4oCjUYjyoQ27qswqpxShFG+0/e /MSuRukjEgC42kWfKMT3zZNk4pvwcNN+yfmPHhNq3v4W7BY/CWI26rFVw+ARHpJXudn+5NxWSZJ 0mGE= X-Google-Smtp-Source: AGHT+IHDEK7d65NrxKEunlmd0aA/6lv4ShD9+LzWHbNgshbEr4lZLTvlMvqJZ13PCTBtv5McnqFwZQ== X-Received: by 2002:a17:902:f646:b0:215:9eac:1857 with SMTP id d9443c01a7336-22db4792e1dmr37318305ad.5.1745509128195; Thu, 24 Apr 2025 08:38:48 -0700 (PDT) Received: from localhost.localdomain ([43.224.245.237]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db5221c8dsm14841445ad.259.2025.04.24.08.38.46 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 24 Apr 2025 08:38:47 -0700 (PDT) From: Wenchao Hao To: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Wenchao Hao Subject: [PATCH] mm/compaction: do not break pages whose order is larger than target order Date: Thu, 24 Apr 2025 23:38:15 +0800 Message-Id: <20250424153815.4003-1-haowenchao22@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 5D57940013 X-Stat-Signature: 5rcrd6q85wnzrorr9nxi7frowh7ezahm X-Rspam-User: X-HE-Tag: 1745509129-747240 X-HE-Meta: U2FsdGVkX18JY5YSEGO53jFmWNbtUfMCQU0mg2qNWJNgitlkDL1k+qYfYbvpdEOecDfJzg28NhWujYGZNViD01mgTXNxhpkVQGuYiFVkFqa1KBI8cVf9vF5rdZjiZoSomKmcA1P/SrZ5QwgOW0ON7EOpfQy1dSKe0AwQaZfxev8aAKT3PzMpcV4Zdpigkwhb11/ucIWRIbe3pcojJTggrQP0zARo/HzUwa26F0QBEIlBdkNi6dVUD255+70PcekVvVGOxwK2ZkKelCZQ33hJoqh0cf+gvfE4M0bGfiuk3J/St/1UVuT+C9stVVhIDiuczmA1KrC/1/AbP8uu2R4BqvpgXOptII3dQ3g7d+zL6Rg07TkkXCt1zGsdLNRp85JuHOaQwEYb61dpiJRKFP2xg/796U50l9+JSoVEI+pqGrFhunlnVKx4ecGQVfWf76RnK4yueHqKi+tUvTkafF1YCBTtJV5kqThqbSCJkLZsdEY9GPtYyt4owNmydZc25KBn0f2Ku+Scp2zix8D1joNEh6aVopnr8ycjHkAePAi2DDre9BHeHLLWaYi3LPkk60DafFJ+Cl6kvQilhdqpBc9Fp7cr7UIP9Pkm/GgvoI2a+knedL+nkradn+6XTHzZJ5DMGfM8WbmStB/G0GhRZpYbs8R35VMcnKtSiO+nOorWiPBrwhcZlU+JvNRr6o6coKUCdELZfXNM1kAE+FVDD1Hut/rzrDHinZoatyiVTIo1vo3nAe4AUrbpjU2RFL2nGcnvK0CfeKKWEhK9eC+eQodPeqGbcKOXCUPsBCKLcjQ2EHAyTiVCwoa/CTCgwY4jhmYrD+QzfiAl/7J23N3Dy3UPRKasoMMxuEgCbLV+6tUQVztPy27lwjtWrjjMtsdPk42XmhJgvrHswX7GeR5PdrJOdjgZK52zbbnlz+XTxmhs+FoRBk82g9g1wfUOGITXrjbcP7MRZbFMcpWJQiDEf86 mzj1kMZ5 BhDiKALYkxIfHlmif8iHag6QZCORo1fZj4NxfV7AePqpmNL3BnL/zV1BOZ3iRvuidzPJFTx20mwnHknzh3WgaUUHHEyistGlHsLmzwPFyAIYd0nxJp6kNqIInSN+2Qh9FEsuh3/hsyfOD29XBFLzxw6ooZreYtEsADAdh78r57UeGt2QBIFYcnEP2vlW2zqWFKgR1AdyQx+cO0PeOpA9JdaFTja7wsd7k9a7sZn9TXtxyoBgnErJuVDiNz/nicVotpWtigrvz4/gVnEsnyXp/oGM4jluWan2nlmeJc4tz0YDQt7eRA/FzSBnN0kM4NH+6qHx6OK3L/MWqx2AHA9xWdO/KFjHpsSVZWWXSIxtZeMOtCK9n7acsJMUM3ikNgrzZaX9mNVYdBNaUE4cJXs0b2p9z3Q== 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: List-Subscribe: List-Unsubscribe: When scanning free pages for memory compaction, if the compaction target order is explicitly specified, do not split pages in buddy whose order are larger than compaction target order. Signed-off-by: Wenchao Hao --- mm/compaction.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mm/compaction.c b/mm/compaction.c index 3925cb61dbb8..b0ed0831c400 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -656,6 +656,17 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, /* Found a free page, will break it into order-0 pages */ order = buddy_order(page); + + /* + * Do not break free pages whose order is larger than + * compact's desired order + */ + if (cc->order != -1 && order >= cc->order) { + blockpfn += (1 << order) - 1; + page += (1 << order) - 1; + goto isolate_fail; + } + isolated = __isolate_free_page(page, order); if (!isolated) break; -- 2.34.1