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 C04A3C4345F for ; Fri, 12 Apr 2024 03:27:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2D08E6B0089; Thu, 11 Apr 2024 23:27:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 280C16B008C; Thu, 11 Apr 2024 23:27:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 16F216B0092; Thu, 11 Apr 2024 23:27:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id ED0586B0089 for ; Thu, 11 Apr 2024 23:27:23 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id ABD97120C39 for ; Fri, 12 Apr 2024 03:27:23 +0000 (UTC) X-FDA: 81999444366.11.D193E6D Received: from out30-112.freemail.mail.aliyun.com (out30-112.freemail.mail.aliyun.com [115.124.30.112]) by imf26.hostedemail.com (Postfix) with ESMTP id 082AB140005 for ; Fri, 12 Apr 2024 03:27:20 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=XGElWPrJ; spf=pass (imf26.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.112 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712892442; a=rsa-sha256; cv=none; b=p6+ZzbQk38v1GfQ3jyzTv4yTM8XKmiP2+BCmKPuz8CLonMGFelVlDz7P48q6g4J54MKf9m QoVnOAfTIWLtDzeey83s25A+nOFzEqTI/gVE+UHgeApgFyggb0U/Tq0czeE3xxztSeO6la u3PowJBHoMRGMcB/3S4adY86IVKl6eQ= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=XGElWPrJ; spf=pass (imf26.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.112 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712892442; 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=2fkGS+MFyueb1gRjvWZU73/oYEQkBz+kgZl5y/+I3Ww=; b=xMl9G59RV2412YZyj4Y/UWftv2h0D+iXvoEELIVikxQI628Qvmcc0EYPotWjLPMiW3c5+B kg2Q0I2j3aDjad/yAocEMrnRavAB/GZ9JzNTt7vzoiQ0Y+sYl6QSGVMpgn9zXvxCFEKP1J BKNShRzvKQKesfAkmGIYsRBpIVHtECc= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1712892437; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=2fkGS+MFyueb1gRjvWZU73/oYEQkBz+kgZl5y/+I3Ww=; b=XGElWPrJ8MeiROWQkTeP6Ey0U4Oeyjsfa+3FLQqJRvUqMpAvhXHZcvU+pdQybxLHR+E8GnXbQlwNJ5evKPcYQmojd04kw1lCwLUCezbpMo5RAVBw2ZYUnUciFRPk6FYDgSKsfEO9uojqaVxjW6HsdHSGUX1MrNG5uyvLPajgZw8= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R151e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046051;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=12;SR=0;TI=SMTPD_---0W4Mumqi_1712892435; Received: from localhost(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0W4Mumqi_1712892435) by smtp.aliyun-inc.com; Fri, 12 Apr 2024 11:27:16 +0800 From: Baolin Wang To: akpm@linux-foundation.org Cc: hannes@cmpxchg.org, mgorman@techsingularity.net, vbabka@suse.cz, 21cnbao@gmail.com, ryan.roberts@arm.com, david@redhat.com, ying.huang@intel.com, ziy@nvidia.com, baolin.wang@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm: page_alloc: allowing mTHP compaction to capture the freed page directly Date: Fri, 12 Apr 2024 11:27:04 +0800 Message-Id: <8118a5d66a034736a48433beddaca60ed78577c4.1712892329.git.baolin.wang@linux.alibaba.com> X-Mailer: git-send-email 2.39.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 082AB140005 X-Stat-Signature: 8ngrfmr1ixjiaabounieteys9c5azg5q X-Rspam-User: X-HE-Tag: 1712892440-79287 X-HE-Meta: U2FsdGVkX1+kziDAmgWnY5ae8aP7wgonQqDAdG0j45oF3BEsSwJ+pYqcVknkvevGGsyNCLhDXWY3uZnS0M/Uz0d4Z/NWgJTB5ap0fpJ41AloVFbOK23I7Bo3NK4L+MrE4GKLuuRIBgAec2D5h5+M9inww7oKwlemlGtsEZbtL/ionuAfWOEZrC8bk2tZ1vlOF8K/VpdOSTKa+wDmYRMot0Dl6CEIacBw1wj7+XvGSv3zDjSAx/TbCbeGfbXt0kHmyhK+HhWCXEwqNNMJ0WUNMGgV+8/7cz73IZSfKTSEwXiBauiF35BHF0qpG6u09Z7aphszxWDac6I+B+yWFHI1GLO6tA8g+0R9ut6pC2Db9ZH1FBGOrUlInxqbyr4CbY3T2WWSEjUF8ozoP9H3vz1joLTwIw5ydeJJ8x86SUw8N/LWiUjvZLVieXmq/8YKQwrimjIt4lnSLShf6CbDAXtEELs8aeOkuLjUr+TmtqlflbhSDwqlOT70KZapy33/hYNUR7df0NBPLUnfjROj9oEMKfPcuDvh+/Sr0iFS2Ikm603UpD6nWNhteIe6bbcHHRF4vfNhEMXsKpcxyxiVBHYTrdppyQR7xlVbya+K7QThVAnwFQQgsXe0NWmUhds2CkXyHUs5oO/KrhW58KLWfJAKm/yKSaPyoTtZjsEUx1rBTQqvy889H4l33HPV3kzRriFa3+ErbixEG6VlFCnx7ClF3ot3nw142XR/g1lpaOyKp5O5m7N5IklqbBiDtP2DC5bpA0r/pPI2bggawMuFawIT+xhQNQ7T+2ymyoA9ZgtEBNXz8o8Xqzt0+O4LmlXY+Jh4rJu2ReUiDq6DFHWbtWxnhuJzAY9qSJ6C3P14+Luqa/ZJoBMyoHbMqUptJS9gDNZ5zgUFKIrLXVursiKsAEALw3ixdMeAUtr9QaLV7I77xvAoMxMFKdaQDvLQcxHIJw9vLNb23HPcXg8FgqEXYfV GzDEcCOD t0GFXmw3W2DAg8hU5cYMld+YtTAah4sB0G0zs3vkB3rjvOub5BjRn/KVPffs7A5w6fAWPIXyIoU3fsLyvBdmt9+d2tsUOUDTdU30bCEo4GbMVcgdHKLl8kSwc6K4NMbFQZvSV7IPzWHzG8tVNKVQ+R2x/BfVWXLdMvdr+MiF5vQp/b4LdhBQdWGH93HwX/W099PCsCinm5VZ8oJe+Ti13XQqnIPFnQO+ZzflYNm+cOHX3ZhPkVQik7Y7GJ7kMatMY07L2VQwPZcyEkPYM+m2L4SRPRuSJ9aFRQ3mF X-Bogosity: Ham, tests=bogofilter, spamicity=0.000167, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Currently, compaction_capture() does not allow lower-order allocations to directly capture the movable free pages, even though lower-order allocations might also be requesting movable pages, that can lead to more compaction scanning. And, with the enablement of mTHP, such situations will become more common. Thus allowing lower-order (mTHP) allocations of movable page types directly capture the movable free pages can avoid unnecessary compaction scanning, meanwhile that won't pollute the movable pageblock. With testing 1M mTHP compaction, it can be seen that compaction scanning is significantly reduced. mm-unstable patched Ops Compaction pages isolated 116598741.00 120946702.00 Ops Compaction migrate scanned 1764870054.00 1488621550.00 Ops Compaction free scanned 7707879039.00 4986299318.00 Ops Compact scan efficiency 22.90 29.85 Ops Compaction cost 73797.69 72933.48 Signed-off-by: Baolin Wang --- mm/page_alloc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index b51becf03d1e..33d4a1be927b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -595,12 +595,14 @@ compaction_capture(struct capture_control *capc, struct page *page, return false; /* - * Do not let lower order allocations pollute a movable pageblock. + * Do not let lower order allocations pollute a movable pageblock + * unless compaction is also requesting movable pages. * This might let an unmovable request use a reclaimable pageblock * and vice-versa but no more than normal fallback logic which can * have trouble finding a high-order free page. */ - if (order < pageblock_order && migratetype == MIGRATE_MOVABLE) + if (order < pageblock_order && migratetype == MIGRATE_MOVABLE && + capc->cc->migratetype != MIGRATE_MOVABLE) return false; capc->page = page; -- 2.39.3