Message ID | 20220811231643.1012912-1-zi.yan@sent.com (mailing list archive) |
---|---|
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 4FC36C25B06 for <linux-mm@archiver.kernel.org>; Thu, 11 Aug 2022 23:16:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BC57D6B0073; Thu, 11 Aug 2022 19:16:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B74906B0075; Thu, 11 Aug 2022 19:16:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C8208E0001; Thu, 11 Aug 2022 19:16:46 -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 89FE06B0073 for <linux-mm@kvack.org>; Thu, 11 Aug 2022 19:16:46 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 51D591C7386 for <linux-mm@kvack.org>; Thu, 11 Aug 2022 23:16:46 +0000 (UTC) X-FDA: 79788873612.24.AE5D758 Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by imf04.hostedemail.com (Postfix) with ESMTP id A1B9240030 for <linux-mm@kvack.org>; Thu, 11 Aug 2022 23:16:45 +0000 (UTC) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 3EF4A5C015E; Thu, 11 Aug 2022 19:16:45 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Thu, 11 Aug 2022 19:16:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sent.com; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:message-id:mime-version:reply-to:reply-to:sender :subject:subject:to:to; s=fm1; t=1660259805; x=1660346205; bh=Bg lT4qc1w1x8AVsv4V7eNfTzEYdPHnAtOkQttta3jos=; b=JhNPHD54B9V4uEleVy Z7EoCwoBKHa5MepofQ355mPzDqh8i8FW5GwPjn2YqGvKoIDJWbOVAKWHjFPvnJjQ uE5i7ox+Ssm379wK1hz6bntO9xyGKdIshHw/frfUTZyjooX0Y3xiWo5GqSQGbe12 isfDgxIaKgE1AJKXL7bdPRq3VeAc/vQMe0nakXhdAqJNbMqdJw8O4y5uzZsD2Kuc 7+pouuz9tXzOMHM6tV6iGVYjESm+oRTYgKrCver21RQ/V8Jd6FQj8tnXnqw6uWFj VuS9IrVamiwGriFByZTdxzWpyOp7CTPpMTjpBDUo0jBlCF4xOzHw2wDXzYQCYpnB 4CiQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:message-id:mime-version:reply-to:reply-to:sender :subject:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; t=1660259805; x=1660346205; bh=B glT4qc1w1x8AVsv4V7eNfTzEYdPHnAtOkQttta3jos=; b=V5BNVd4B6U7Y37Sra SVEt23KHdpRGpWiFL+tXAIc+sJM4FO1cRcsKkEN+yRFUe4U9uYWmatBKx65K2VMK 4Yc8mi9Sdq0EEKWP5tX9bN7GZo2E0IG0iX6qHm5FY82YzGTmfRFMQbyxRyOAbauA DMth/pNZeD9V/07sA3oYIx4D4Zc7a8ny5Y9hlEOYPkfPzJTnLWs5oA/u+g0Ontaw fZRCdp/jjKB7ZDNaAQJ0DQNUdGkbZF/cuuo7JY7o8JOuhaI1PLdPzqS+KJ2vfiyk F5ZqRLk2/SWy5a0PIoXpvt0bNcIMC8J4wHcPxucfqIzBqBEKX6kybxUdIw+7KmU1 dY2AQ== X-ME-Sender: <xms:3I31YlN7nYGL15X7bYHLVYikphev6_JlcN3mlVYybty6Wb9EhCEwJQ> <xme:3I31Yn8wVJ-SEBPUg9v3RmFEqEizcWDvZ9mqi_8I8XFr8I9Cmu_jFtFgSOO33ScX4 E81cUxQYK-oEtuj8Q> X-ME-Received: <xmr:3I31YkQY30iOkED9OPAw26lY3sZya7sm5Ec8Fj3n4yYIc9b5-_IF5ktaf7TBgEZj6-r8Valo1lCtQLLlhg> X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdeghedgudelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkofhrgggtgfesthhqredtredtjeenucfhrhhomhepkghiucgj rghnuceoiihirdihrghnsehsvghnthdrtghomheqnecuggftrfgrthhtvghrnhepfefghf fggfdtteeffeejuddvueegjeejieffjeffhfegvefgffeufeeikeetudeknecuffhomhgr ihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpeiiihdrhigrnhesshgvnhhtrdgtohhm X-ME-Proxy: <xmx:3I31YhvZXRIf0eJXHOTfzlVa-kBlhWuPek1GINHg-XzJeS3QWg1Jew> <xmx:3I31Ytd2K-6kjpFx8GVLT_YMXL3kjAl4PIaHwR2KtOff3kT1elu3lg> <xmx:3I31Yt1fYfbOGwYqdQRjqxXcPaQRG5mZh5M4hl8ip0cyJ5RpdBWCSg> <xmx:3Y31YuVsydm3iVt2R5m1FsBTs2uXNttg30BdZW0hQBki-I-R5VLjZA> Feedback-ID: iccd040f4:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 11 Aug 2022 19:16:43 -0400 (EDT) From: Zi Yan <zi.yan@sent.com> To: linux-mm@kvack.org Cc: David Hildenbrand <david@redhat.com>, Matthew Wilcox <willy@infradead.org>, Vlastimil Babka <vbabka@suse.cz>, "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>, Mike Kravetz <mike.kravetz@oracle.com>, John Hubbard <jhubbard@nvidia.com>, Yang Shi <shy828301@gmail.com>, David Rientjes <rientjes@google.com>, James Houghton <jthoughton@google.com>, Mike Rapoport <rppt@kernel.org>, linux-kernel@vger.kernel.org Subject: [RFC PATCH v2 00/12] Make MAX_ORDER adjustable as a kernel boot time parameter. Date: Thu, 11 Aug 2022 19:16:31 -0400 Message-Id: <20220811231643.1012912-1-zi.yan@sent.com> X-Mailer: git-send-email 2.35.1 Reply-To: Zi Yan <ziy@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1660259805; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=BglT4qc1w1x8AVsv4V7eNfTzEYdPHnAtOkQttta3jos=; b=gtr6D4qz5/baqW/dyz0OFf3EFpEvVL9ZSGP/8pKDMIB3XM5uSHvlpRajBxjX4ViW3Hk/1u yWC3n9flE4UDi8G9nsVSJ0EHA8mSTThmbuLEvDk3qLNx3SkOiJONDyRp7ukgt0zds6dWua KbmPhcURL6nSGCvBaeoKH5H4RFmP3qs= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=sent.com header.s=fm1 header.b=JhNPHD54; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=V5BNVd4B; dmarc=pass (policy=none) header.from=sent.com; spf=pass (imf04.hostedemail.com: domain of zi.yan@sent.com designates 66.111.4.28 as permitted sender) smtp.mailfrom=zi.yan@sent.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1660259805; a=rsa-sha256; cv=none; b=DmKQn9srPtd7CZmoYzazMyuv1DzcCE6gXwZqhhxa9zskrEyXTrmFe2lnRgTwv1D9PEa/Ql ol/KK/pMZ3/zzhX/DVBer8C3+uMG8aiURMa9l0wV7Lg8T7bo022DfcQ/L0/nCpVit9IwUJ CqV4ZD2lVnXYxKZvCPm7FLsS82L0+iI= X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: A1B9240030 X-Rspam-User: X-Stat-Signature: u1cid67cjyhzf78oksezq8kkqsb556ck Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=sent.com header.s=fm1 header.b=JhNPHD54; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=V5BNVd4B; dmarc=pass (policy=none) header.from=sent.com; spf=pass (imf04.hostedemail.com: domain of zi.yan@sent.com designates 66.111.4.28 as permitted sender) smtp.mailfrom=zi.yan@sent.com X-HE-Tag: 1660259805-194236 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: <linux-mm.kvack.org> |
Series |
Make MAX_ORDER adjustable as a kernel boot time parameter.
|
expand
|
From: Zi Yan <ziy@nvidia.com> Hi all, This patchset adds support for kernel boot time adjustable MAX_ORDER, so that user can change the largest size of pages buddy allocator allocates. It is on top of mm-everything-2022-08-11-02-10. Motivation === This enables kernel to allocate 1GB pages and is necessary for my ongoing work on adding support for 1GB PUD THP[1]. This is also the conclusion I came up with after some discussion with David Hildenbrand on what methods should be used for allocating gigantic pages[2], since other approaches like using CMA allocator or alloc_contig_pages() are regarded as suboptimal. In addition, make MAX_ORDER a kernel boot time parameter can enable user to adjust buddy allocator without recompiling the kernel for their own needs, so that one can still have a small MAX_ORDER if he/she does not need to allocate gigantic pages like 1GB PUD THPs. Background === At the moment, kernel imposes MAX_ORDER - 1 + PAGE_SHFIT < SECTION_SIZE_BITS restriction. This prevents buddy allocator merging pages across memory sections, as PFNs might not be contiguous and code like page++ would fail. But this would not be an issue when SPARSEMEM_VMEMMAP is set, since all struct page are virtually contiguous. So boot time adjustable MAX_ORDER depends on SPARSEMEM_VMEMMAP. Description === I tested the patchset on both x86_64 and ARM64 at 4KB base pages. The systems boot and run. It definitely needs more tests and reviews. In terms of the concerns on performance degradation if MAX_ORDER is increased, I run vm-scalability from lkp comparing current system, my patchset with MAX_ORDER=11 and my patchset with MAX_ORDER=20 on a x86_64 VM and saw almost no performance difference, please attached vm-scalability reports. Patch 1 renames FORCE_MAX_ZONEORDER to ARCH_FORCE_MAX_ORDER for a more precise description. Patch 2 changes MAX_ORDER to represent the max order of pages allocated by buddy allocator. right now MAX_ORDER - 1 represents that and it is confusing. Suggested by Vlastimil Babka. Patch 3 replaces MAX_ORDER with MAX_PHYS_CONTIG_ORDER when it is used to indicate the maximum number of physically contiguous pages. Patch 4 fixes deferred struct page initialization when MAX_ORDER is bigger than a memory section size. Patch 5-8 convert the use of MAX_ORDER to pageblock_order. Since pageblock_order is a constant when MAX_ORDER can be changed at boot time and close to current MAX_ORDER value. I separate changes to different patches for easy review and can merge them into a single one if that works better. Patch 9 adds a new Kconfig option SET_MAX_ORDER to allow specifying MAX_ORDER when ARCH_FORCE_MAX_ORDER is not used by the arch, like x86_64. Patch 10 converts statically allocated arrays with MAX_ORDER length to dynamic ones if possible and prepares for making MAX_ORDER a boot time parameter. Patch 11 adds a new MIN_MAX_ORDER constant to replace soon-to-be-dynamic MAX_ORDER for places where converting static array to dynamic one is causing hassle and not necessary, i.e., ARM64 hypervisor page allocation and SLAB. Patch 12 changes MAX_ORDER to be a kernel boot time parameter and it is opt-in as an mm/Kconfig option. Any suggestion and/or comment is welcome. Thanks. [1] https://lore.kernel.org/linux-mm/20200928175428.4110504-1-zi.yan@sent.com/ [2] https://lore.kernel.org/linux-mm/e132fdd9-65af-1cad-8a6e-71844ebfe6a2@redhat.com/ Performance comparison ==== Only the changed stats is shown below. If you do not see some stats, they are the same across three. ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/small-allocs/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 1266004 -0.3% 1262674 +1.1% 1279441 vm-scalability.median ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/small-allocs-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 76016 +0.2% 76178 +1.2% 76936 vm-scalability.median 1216312 +0.2% 1218252 +1.2% 1231465 vm-scalability.throughput 3.653e+08 +0.2% 3.659e+08 +1.3% 3.701e+08 vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/mmap-xread-seq-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 1574020 ± 2% +0.1% 1576169 -2.3% 1537232 ± 2% vm-scalability.median 25184277 ± 2% +0.1% 25218477 -2.3% 24595646 ± 2% vm-scalability.throughput 7.567e+09 ± 2% +0.1% 7.575e+09 -2.3% 7.395e+09 ± 2% vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/mmap-pread-rand/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 2.28 ± 11% -21.0% 1.80 ± 11% -18.2% 1.87 ± 11% vm-scalability.free_time 8.58 ± 9% +3.4 11.95 ± 7% +1.1 9.69 ± 13% vm-scalability.stddev% 1541489 -0.2% 1539102 +1.3% 1561678 vm-scalability.throughput ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/mmap-pread-rand-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 94376 +0.4% 94716 +1.8% 96103 vm-scalability.median 12.96 ± 3% +11.9 24.88 ± 80% +0.3 13.30 ± 5% vm-scalability.stddev% 1509455 +0.8% 1522093 +1.8% 1536886 vm-scalability.throughput ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/lru-file-readtwice/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 433656 -5.3% 410460 ± 2% -4.8% 412737 vm-scalability.median 13879867 -5.5% 13118050 ± 2% -4.8% 13212361 vm-scalability.throughput 4.164e+09 -5.5% 3.935e+09 ± 2% -4.8% 3.964e+09 vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/lru-file-mmap-read/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 488915 ± 3% -2.3% 477658 ± 6% -11.7% 431771 ± 6% vm-scalability.median 120.69 ± 35% -39.0 81.65 ± 84% -89.1 31.56 ±154% vm-scalability.stddev% 8106774 ± 4% -3.3% 7835670 ± 7% -13.9% 6981078 ± 8% vm-scalability.throughput 2.435e+09 ± 4% -3.4% 2.353e+09 ± 7% -13.8% 2.099e+09 ± 8% vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/anon-rx-rand-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 196783 -0.8% 195189 ± 2% -2.8% 191323 vm-scalability.median 53.88 ± 3% -4.9 48.96 ± 2% -43.9 9.95 ± 35% vm-scalability.stddev% ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/anon-r-seq-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 50.03 ± 29% -15.9 34.08 ± 12% -2.4 47.66 ± 32% vm-scalability.stddev% ========================================================================================= compiler/kconfig/rootfs/runtime/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/qemu-vm/anon-r-rand/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 3.82 -0.8% 3.79 -0.6% 3.79 ± 3% vm-scalability.free_time 172116 +0.3% 172685 -2.1% 168557 vm-scalability.median 75.53 ± 12% -15.6 59.88 ± 13% -60.9 14.64 ± 17% vm-scalability.stddev% ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/8T/qemu-vm/anon-wx-seq-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 798340 +0.8% 804861 -3.0% 774082 vm-scalability.median 1.55 ± 28% -0.1 1.47 ± 32% +0.6 2.19 ± 14% vm-scalability.median_stddev% 1.55 ± 28% -0.1 1.47 ± 32% +0.6 2.19 ± 14% vm-scalability.stddev% 12773455 +0.8% 12877783 -3.0% 12385319 vm-scalability.throughput ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/8T/qemu-vm/anon-w-seq/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 0.13 +4.1% 0.14 ± 3% +37.0% 0.18 vm-scalability.free_time 923091 -0.6% 917275 ± 2% +3.7% 957298 vm-scalability.median 4.57 ± 2% -1.7 2.89 ± 15% -3.9 0.68 ± 7% vm-scalability.median_stddev% 14811265 -0.5% 14731710 +1.8% 15079698 vm-scalability.throughput 3.173e+09 -0.5% 3.156e+09 ± 2% -1.2% 3.134e+09 vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/8T/qemu-vm/anon-w-seq-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 0.07 +1.1% 0.07 +3.6% 0.07 vm-scalability.free_time 667055 -1.6% 656481 -1.4% 657861 vm-scalability.median 2.22 ± 4% -0.1 2.12 ± 6% +0.4 2.60 ± 14% vm-scalability.median_stddev% 10817276 -1.3% 10673638 -2.3% 10568517 vm-scalability.throughput 2.022e+09 -1.0% 2.002e+09 -1.5% 1.991e+09 vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/8T/qemu-vm/anon-cow-seq/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 475554 -0.5% 473278 +2.6% 487908 vm-scalability.median 4.20 ± 2% -1.5 2.73 ± 6% -3.3 0.89 ± 6% vm-scalability.median_stddev% 3.58 ± 3% -1.0 2.58 ± 5% -1.7 1.88 ± 9% vm-scalability.stddev% 7533010 +0.4% 7559545 +1.7% 7663820 vm-scalability.throughput 1.764e+09 +1.8% 1.795e+09 +1.2% 1.785e+09 vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/8T/qemu-vm/anon-cow-seq-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 1.13 ± 14% -0.3 0.85 ± 15% -0.5 0.66 ± 32% vm-scalability.median_stddev% 1.13 ± 14% -0.3 0.85 ± 15% -0.5 0.66 ± 32% vm-scalability.stddev% ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/512G/qemu-vm/anon-wx-rand-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 72308 -1.4% 71294 ± 3% -7.9% 66569 vm-scalability.median 0.96 ± 11% -0.0 0.94 ± 14% -0.5 0.44 ± 5% vm-scalability.stddev% 2.743e+08 -0.0% 2.743e+08 +12.7% 3.09e+08 vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/512G/qemu-vm/anon-w-rand/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 0.09 +0.8% 0.09 ± 3% +5.9% 0.10 ± 3% vm-scalability.free_time 67458 ± 2% -6.0% 63414 ± 2% -11.3% 59805 vm-scalability.median 4.66 ± 36% +4.7 9.38 ± 34% -2.2 2.50 ± 23% vm-scalability.median_stddev% 971866 -1.3% 959227 -2.3% 949434 vm-scalability.throughput 2.469e+08 -0.0% 2.469e+08 +11.1% 2.743e+08 vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/512G/qemu-vm/anon-w-rand-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 0.12 ± 2% +2.8% 0.13 +10.5% 0.14 ± 3% vm-scalability.free_time 65926 ± 3% -1.8% 64711 ± 4% -9.3% 59770 vm-scalability.median 4.51 ± 38% +1.3 5.83 ± 48% -3.1 1.44 ± 31% vm-scalability.median_stddev% 1.24 ± 24% -0.3 0.93 ± 25% -0.8 0.48 ± 17% vm-scalability.stddev% 2.395e+08 +1.5% 2.432e+08 +11.5% 2.67e+08 vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/512G/qemu-vm/anon-cow-rand/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 63519 ± 3% -2.3% 62074 ± 2% -12.2% 55775 vm-scalability.median 914972 -1.2% 904135 -2.4% 893097 vm-scalability.throughput 2.323e+08 -0.0% 2.323e+08 +11.1% 2.582e+08 vm-scalability.workload ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/512G/qemu-vm/anon-cow-rand-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 64719 ± 2% -1.7% 63626 ± 2% -7.4% 59953 vm-scalability.median 3.32 ± 77% +1.3 4.64 ± 64% -2.3 1.02 ± 60% vm-scalability.median_stddev% 0.83 ± 27% -0.1 0.74 ± 53% -0.7 0.18 ± 43% vm-scalability.stddev% ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/2T/qemu-vm/shm-xread-seq/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 346505 +2.5% 355073 +1.8% 352797 vm-scalability.median 1.29 ± 26% +0.4 1.73 ± 11% +0.2 1.47 ± 22% vm-scalability.median_stddev% 1.29 ± 26% +0.4 1.73 ± 11% +0.2 1.47 ± 22% vm-scalability.stddev% 5544053 +2.5% 5681145 +1.8% 5644734 vm-scalability.throughput ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/2T/qemu-vm/shm-pread-seq/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 3.06 +10.8% 3.40 +11.5% 3.42 vm-scalability.free_time 344737 +3.5% 356824 +2.0% 351766 vm-scalability.median 5515773 +3.5% 5709150 +2.0% 5628245 vm-scalability.throughput ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/2T/qemu-vm/shm-pread-seq-mt/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 363265 +2.4% 371881 +2.0% 370384 vm-scalability.median 5807625 +2.4% 5948137 +2.0% 5922313 vm-scalability.throughput ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/256G/qemu-vm/msync/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 124686 ± 4% +2.9% 128345 +9.0% 135953 vm-scalability.median 19.68 ± 9% -1.2 18.47 ± 6% -5.0 14.67 ± 3% vm-scalability.median_stddev% 18.87 ± 9% -1.5 17.38 ± 9% -6.1 12.76 ± 4% vm-scalability.stddev% 2047903 ± 2% +2.1% 2090681 +4.4% 2138545 vm-scalability.throughput ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/256G/qemu-vm/lru-shm-rand/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 0.03 -0.4% 0.03 -2.0% 0.02 vm-scalability.free_time 7.02 ± 18% +0.7 7.68 ± 12% -5.4 1.65 ± 13% vm-scalability.median_stddev% ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/1T/qemu-vm/lru-shm/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 2.36 ± 4% -0.5 1.90 ± 13% -1.6 0.80 ± 20% vm-scalability.median_stddev% ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/16G/qemu-vm/shm-xread-rand/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 168.32 ± 6% -0.1 168.24 ± 17% -114.4 53.94 ± 59% vm-scalability.stddev% ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/16G/qemu-vm/shm-pread-rand/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 172.46 ± 8% -14.2 158.30 ± 20% -106.4 66.04 ± 74% vm-scalability.stddev% ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase/unit_size: gcc-11/defconfig/debian/300s/16G/qemu-vm/shm-pread-rand-mt/vm-scalability/1G commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 0.06 ± 4% +5.0% 0.07 ± 5% +38.6% 0.09 ± 6% vm-scalability.free_time ========================================================================================= compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase: gcc-11/defconfig/debian/300s/128G/qemu-vm/truncate-seq/vm-scalability commit: 5.19.0-rc4-mm-everything+ 5.19.0-rc4-boot-time-max-order-10+ 5.19.0-rc4-boot-time-max-order-20+ 5.19.0-rc4-mm-ev 5.19.0-rc4-boot-time-max-or 5.19.0-rc4-boot-time-max-or ---------------- --------------------------- --------------------------- %stddev %change %stddev %change %stddev \ | \ | \ 9.00 ± 15% +1.6 10.59 ± 11% -2.6 6.35 ± 8% vm-scalability.median_fault_stddev% 9.00 ± 15% +1.6 10.59 ± 11% -2.6 6.35 ± 8% vm-scalability.stddev_fault% Zi Yan (12): arch: mm: rename FORCE_MAX_ZONEORDER to ARCH_FORCE_MAX_ORDER mm: rectify MAX_ORDER semantics to be the largest page order from buddy allocator mm: replace MAX_ORDER when it is used to indicate max physical contiguity. mm: adapt deferred struct page init to new MAX_ORDER. mm: prevent pageblock size being larger than section size. fs: proc: use pageblock_nr_pages for reschedule period in read_kcore() virtio: virtio_balloon: use pageblock_order instead of MAX_ORDER mm/page_reporting: set page_reporting_order to -1 to prevent it running mm: Make MAX_ORDER of buddy allocator configurable via Kconfig SET_MAX_ORDER. mm: convert MAX_ORDER sized static arrays to dynamic ones. mm: introduce MIN_MAX_ORDER to replace MAX_ORDER as compile time constant. mm: make MAX_ORDER a kernel boot time parameter. .../admin-guide/kdump/vmcoreinfo.rst | 4 +- .../admin-guide/kernel-parameters.txt | 9 +- arch/Kconfig | 4 + arch/arc/Kconfig | 6 +- arch/arm/Kconfig | 14 +- arch/arm/configs/imx_v6_v7_defconfig | 2 +- arch/arm/configs/milbeaut_m10v_defconfig | 2 +- arch/arm/configs/oxnas_v6_defconfig | 2 +- arch/arm/configs/sama7_defconfig | 2 +- arch/arm64/Kconfig | 18 ++- arch/arm64/include/asm/sparsemem.h | 2 +- arch/arm64/kvm/hyp/include/nvhe/gfp.h | 2 +- arch/arm64/kvm/hyp/nvhe/page_alloc.c | 2 +- arch/csky/Kconfig | 4 +- arch/ia64/Kconfig | 10 +- arch/ia64/include/asm/sparsemem.h | 6 +- arch/ia64/mm/hugetlbpage.c | 2 +- arch/m68k/Kconfig.cpu | 10 +- arch/mips/Kconfig | 24 ++-- arch/nios2/Kconfig | 12 +- arch/powerpc/Kconfig | 32 ++--- arch/powerpc/configs/85xx/ge_imp3a_defconfig | 2 +- arch/powerpc/configs/fsl-emb-nonhw.config | 2 +- arch/powerpc/mm/book3s64/iommu_api.c | 2 +- arch/powerpc/mm/hugetlbpage.c | 2 +- arch/powerpc/platforms/powernv/pci-ioda.c | 2 +- arch/sh/configs/ecovec24_defconfig | 2 +- arch/sh/mm/Kconfig | 22 ++- arch/sparc/Kconfig | 10 +- arch/sparc/kernel/pci_sun4v.c | 2 +- arch/sparc/kernel/traps_64.c | 2 +- arch/sparc/mm/tsb.c | 4 +- arch/um/kernel/um_arch.c | 4 +- arch/xtensa/Kconfig | 10 +- drivers/base/regmap/regmap-debugfs.c | 8 +- drivers/crypto/hisilicon/sgl.c | 6 +- .../gpu/drm/i915/gem/selftests/huge_pages.c | 2 +- drivers/gpu/drm/ttm/ttm_device.c | 7 +- drivers/gpu/drm/ttm/ttm_pool.c | 72 ++++++++-- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 2 +- drivers/irqchip/irq-gic-v3-its.c | 4 +- drivers/md/dm-bufio.c | 2 +- drivers/misc/genwqe/card_utils.c | 2 +- drivers/net/ethernet/ibm/ibmvnic.h | 2 +- drivers/video/fbdev/hyperv_fb.c | 6 +- drivers/virtio/virtio_balloon.c | 2 +- drivers/virtio/virtio_mem.c | 8 +- fs/proc/kcore.c | 2 +- fs/ramfs/file-nommu.c | 2 +- include/drm/ttm/ttm_pool.h | 4 +- include/linux/hugetlb.h | 2 +- include/linux/mmzone.h | 36 ++++- include/linux/pageblock-flags.h | 21 ++- include/linux/slab.h | 8 +- kernel/crash_core.c | 2 +- kernel/dma/pool.c | 8 +- mm/Kconfig | 33 ++++- mm/compaction.c | 8 +- mm/debug_vm_pgtable.c | 4 +- mm/huge_memory.c | 2 +- mm/hugetlb.c | 4 +- mm/internal.h | 10 +- mm/memblock.c | 8 +- mm/memory.c | 4 +- mm/memory_hotplug.c | 6 +- mm/page_alloc.c | 128 +++++++++++++----- mm/page_isolation.c | 14 +- mm/page_owner.c | 6 +- mm/page_reporting.c | 8 +- mm/shuffle.h | 2 +- mm/slab.c | 2 +- mm/slub.c | 6 +- mm/vmscan.c | 1 - mm/vmstat.c | 14 +- net/smc/smc_ib.c | 2 +- scripts/checkpatch.pl | 8 ++ security/integrity/ima/ima_crypto.c | 2 +- tools/testing/memblock/linux/mmzone.h | 6 +- 78 files changed, 451 insertions(+), 270 deletions(-)