From: Doug Berger <opendmb@gmail.com> To: Andrew Morton <akpm@linux-foundation.org> Cc: Jonathan Corbet <corbet@lwn.net>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Frank Rowand <frowand.list@gmail.com>, Mike Kravetz <mike.kravetz@oracle.com>, Muchun Song <songmuchun@bytedance.com>, Mike Rapoport <rppt@kernel.org>, Christoph Hellwig <hch@lst.de>, Marek Szyprowski <m.szyprowski@samsung.com>, Robin Murphy <robin.murphy@arm.com>, Borislav Petkov <bp@suse.de>, "Paul E. McKenney" <paulmck@kernel.org>, Neeraj Upadhyay <quic_neeraju@quicinc.com>, Randy Dunlap <rdunlap@infradead.org>, Damien Le Moal <damien.lemoal@opensource.wdc.com>, Doug Berger <opendmb@gmail.com>, Florian Fainelli <f.fainelli@gmail.com>, David Hildenbrand <david@redhat.com>, Zi Yan <ziy@nvidia.com>, Oscar Salvador <osalvador@suse.de>, Hari Bathini <hbathini@linux.ibm.com>, Kees Cook <keescook@chromium.org>, - <devicetree-spec@vger.kernel.org>, KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>, Mel Gorman <mgorman@suse.de>, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-mm@kvack.org, iommu@lists.linux.dev Subject: [PATCH 00/21] mm: introduce Designated Movable Blocks Date: Tue, 13 Sep 2022 12:54:47 -0700 [thread overview] Message-ID: <20220913195508.3511038-1-opendmb@gmail.com> (raw) MOTIVATION: Some Broadcom devices (e.g. 7445, 7278) contain multiple memory controllers with each mapped in a different address range within a Uniform Memory Architecture. Some users of these systems have expressed the desire to locate ZONE_MOVABLE memory on each memory controller to allow user space intensive processing to make better use of the additional memory bandwidth. Unfortunately, the historical monotonic layout of zones would mean that if the lowest addressed memory controller contains ZONE_MOVABLE memory then all of the memory available from memory controllers at higher addresses must also be in the ZONE_MOVABLE zone. This would force all kernel memory accesses onto the lowest addressed memory controller and significantly reduce the amount of memory available for non-movable allocations. The main objective of this patch set is therefore to allow a block of memory to be designated as part of the ZONE_MOVABLE zone where it will always only be used by the kernel page allocator to satisfy requests for movable pages. The term Designated Movable Block is introduced here to represent such a block. The favored implementation allows modification of the 'movablecore' kernel parameter to allow specification of a base address and support for multiple blocks. The existing 'movablecore' mechanisms are retained. Other mechanisms based on device tree are also included in this set. BACKGROUND: NUMA architectures support distributing movablecore memory across each node, but it is undesirable to introduce the overhead and complexities of NUMA on systems that don't have a Non-Uniform Memory Architecture. Commit 342332e6a925 ("mm/page_alloc.c: introduce kernelcore=mirror option") also depends on zone overlap to support sytems with multiple mirrored ranges. Commit c6f03e2903c9 ("mm, memory_hotplug: remove zone restrictions") embraced overlapped zones for memory hotplug. This commit set follows their lead to allow the ZONE_MOVABLE zone to overlap other zones while spanning the pages from the lowest Designated Movable Block to the end of the node. Designated Movable Blocks are made absent from overlapping zones and present within the ZONE_MOVABLE zone. I initially investigated an implementation using a Designated Movable migrate type in line with comments[1] made by Mel Gorman regarding a "sticky" MIGRATE_MOVABLE type to avoid using ZONE_MOVABLE. However, this approach was riskier since it was much more instrusive on the allocation paths. Ultimately, the progress made by the memory hotplug folks to expand the ZONE_MOVABLE functionality convinced me to follow this approach. OPPORTUNITIES: There have been many attempts to modify the behavior of the kernel page allocators use of CMA regions. This implementation of Designated Movable Blocks creates an opportunity to repurpose the CMA allocator to operate on ZONE_MOVABLE memory that the kernel page allocator can use more agressively, without affecting the existing CMA implementation. It is hoped that the "shared-dmb-pool" approach included here will be useful in cases where memory sharing is more important than allocation latency. CMA introduced a paradigm where multiple allocators could operate on the same region of memory, and that paradigm can be extended to Designated Movable Blocks as well. I was interested in using kernel resource management as a mechanism for exposing Designated Movable Block resources (e.g. /proc/iomem) that would be used by the kernel page allocator like any other ZONE_MOVABLE memory, but could be claimed by an alternative allocator (e.g. CMA). Unfortunately, this becomes complicated because the kernel resource implementation varies materially across different architectures and I do not require this capability so I have deferred that. The MEMBLOCK_MOVABLE and MEMBLOCK_HOTPLUG have a lot in common and could potentially be consolidated, but I chose to avoid that here to reduce controversy. The CMA and DMB alignment constraints are currently the same so the logic could be simplified, but this implementation keeps them distinct to facilitate independent evolution of the implementations if necessary. COMMITS: Commits 1-3 represent bug fixes that could have been submitted separately and should be submitted to linux-stable. They are included here because of later commit dependencies to facilitate review of the entire patch set. Commits 4-6 are enhancements of hugepage migration to support contiguous allocations (i.e. alloc_contig_range). These are potentially of value if a non-gigantic hugepage can be allocated through fallback from MIGRATE_CMA pageblocks or for the allocation of gigantic pages. Their real value is to support CMA from Designated Movable Blocks. Commits 7-15 make up the preferred embodiment of the concept of Designated Movable Block support. The remaining commits (i.e. 16-21) are examples of additional opportunites to use DMBs with other kernel services to achieve more aggressive sharing of DMB reservations with the kernel page allocator. It is hoped that they are of value to others, but they can be reviewed and evaluated separately from the other commits in this set if there is controversy and/or opportunites for improvement. [1] https://lore.kernel.org/lkml/20160428103927.GM2858@techsingularity.net/ Doug Berger (21): mm/page_isolation: protect cma from isolate_single_pageblock mm/hugetlb: correct max_huge_pages accounting on demote mm/hugetlb: correct demote page offset logic mm/hugetlb: refactor alloc_and_dissolve_huge_page mm/hugetlb: allow migrated hugepage to dissolve when freed mm/hugetlb: add hugepage isolation support lib/show_mem.c: display MovableOnly mm/vmstat: show start_pfn when zone spans pages mm/page_alloc: calculate node_spanned_pages from pfns mm/page_alloc.c: allow oversized movablecore mm/page_alloc: introduce init_reserved_pageblock() memblock: introduce MEMBLOCK_MOVABLE flag mm/dmb: Introduce Designated Movable Blocks mm/page_alloc: make alloc_contig_pages DMB aware mm/page_alloc: allow base for movablecore dt-bindings: reserved-memory: introduce designated-movable-block mm/dmb: introduce rmem designated-movable-block mm/cma: support CMA in Designated Movable Blocks dt-bindings: reserved-memory: shared-dma-pool: support DMB mm/cma: introduce rmem shared-dmb-pool mm/hugetlb: introduce hugetlb_dmb .../admin-guide/kernel-parameters.txt | 17 +- .../designated-movable-block.yaml | 51 ++++ .../reserved-memory/shared-dma-pool.yaml | 8 + drivers/of/of_reserved_mem.c | 20 +- include/linux/cma.h | 13 +- include/linux/dmb.h | 28 +++ include/linux/gfp.h | 5 +- include/linux/hugetlb.h | 5 + include/linux/memblock.h | 8 + kernel/dma/contiguous.c | 33 ++- lib/show_mem.c | 2 +- mm/Kconfig | 12 + mm/Makefile | 1 + mm/cma.c | 58 +++-- mm/dmb.c | 156 ++++++++++++ mm/hugetlb.c | 194 +++++++++++---- mm/memblock.c | 30 ++- mm/migrate.c | 1 + mm/page_alloc.c | 225 +++++++++++++----- mm/page_isolation.c | 75 +++--- mm/vmstat.c | 5 + 21 files changed, 765 insertions(+), 182 deletions(-) create mode 100644 Documentation/devicetree/bindings/reserved-memory/designated-movable-block.yaml create mode 100644 include/linux/dmb.h create mode 100644 mm/dmb.c -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Doug Berger <opendmb-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> To: Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> Cc: Jonathan Corbet <corbet-T1hC0tSOHrs@public.gmane.org>, Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>, Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Mike Kravetz <mike.kravetz-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>, Muchun Song <songmuchun-EC8Uxl6Npydl57MIdRCFDg@public.gmane.org>, Mike Rapoport <rppt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>, Marek Szyprowski <m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>, Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>, Borislav Petkov <bp-l3A5Bk7waGM@public.gmane.org>, "Paul E. McKenney" <paulmck-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Neeraj Upadhyay <quic_neeraju-jfJNa2p1gH1BDgjK7y7TUQ@public.gmane.org>, Randy Dunlap <rdunlap-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>, Damien Le Moal <damien.lemoal-yzvPICuk2AC/Fx7ZUtofftBPR1lH4CV8@public.gmane.org>, Doug Berger <opendmb-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Florian Fainelli <f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, David Hildenbrand <david-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>, Zi Yan <ziy-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>, Oscar Salvador <osalvador@su> Subject: [PATCH 00/21] mm: introduce Designated Movable Blocks Date: Tue, 13 Sep 2022 12:54:47 -0700 [thread overview] Message-ID: <20220913195508.3511038-1-opendmb@gmail.com> (raw) MOTIVATION: Some Broadcom devices (e.g. 7445, 7278) contain multiple memory controllers with each mapped in a different address range within a Uniform Memory Architecture. Some users of these systems have expressed the desire to locate ZONE_MOVABLE memory on each memory controller to allow user space intensive processing to make better use of the additional memory bandwidth. Unfortunately, the historical monotonic layout of zones would mean that if the lowest addressed memory controller contains ZONE_MOVABLE memory then all of the memory available from memory controllers at higher addresses must also be in the ZONE_MOVABLE zone. This would force all kernel memory accesses onto the lowest addressed memory controller and significantly reduce the amount of memory available for non-movable allocations. The main objective of this patch set is therefore to allow a block of memory to be designated as part of the ZONE_MOVABLE zone where it will always only be used by the kernel page allocator to satisfy requests for movable pages. The term Designated Movable Block is introduced here to represent such a block. The favored implementation allows modification of the 'movablecore' kernel parameter to allow specification of a base address and support for multiple blocks. The existing 'movablecore' mechanisms are retained. Other mechanisms based on device tree are also included in this set. BACKGROUND: NUMA architectures support distributing movablecore memory across each node, but it is undesirable to introduce the overhead and complexities of NUMA on systems that don't have a Non-Uniform Memory Architecture. Commit 342332e6a925 ("mm/page_alloc.c: introduce kernelcore=mirror option") also depends on zone overlap to support sytems with multiple mirrored ranges. Commit c6f03e2903c9 ("mm, memory_hotplug: remove zone restrictions") embraced overlapped zones for memory hotplug. This commit set follows their lead to allow the ZONE_MOVABLE zone to overlap other zones while spanning the pages from the lowest Designated Movable Block to the end of the node. Designated Movable Blocks are made absent from overlapping zones and present within the ZONE_MOVABLE zone. I initially investigated an implementation using a Designated Movable migrate type in line with comments[1] made by Mel Gorman regarding a "sticky" MIGRATE_MOVABLE type to avoid using ZONE_MOVABLE. However, this approach was riskier since it was much more instrusive on the allocation paths. Ultimately, the progress made by the memory hotplug folks to expand the ZONE_MOVABLE functionality convinced me to follow this approach. OPPORTUNITIES: There have been many attempts to modify the behavior of the kernel page allocators use of CMA regions. This implementation of Designated Movable Blocks creates an opportunity to repurpose the CMA allocator to operate on ZONE_MOVABLE memory that the kernel page allocator can use more agressively, without affecting the existing CMA implementation. It is hoped that the "shared-dmb-pool" approach included here will be useful in cases where memory sharing is more important than allocation latency. CMA introduced a paradigm where multiple allocators could operate on the same region of memory, and that paradigm can be extended to Designated Movable Blocks as well. I was interested in using kernel resource management as a mechanism for exposing Designated Movable Block resources (e.g. /proc/iomem) that would be used by the kernel page allocator like any other ZONE_MOVABLE memory, but could be claimed by an alternative allocator (e.g. CMA). Unfortunately, this becomes complicated because the kernel resource implementation varies materially across different architectures and I do not require this capability so I have deferred that. The MEMBLOCK_MOVABLE and MEMBLOCK_HOTPLUG have a lot in common and could potentially be consolidated, but I chose to avoid that here to reduce controversy. The CMA and DMB alignment constraints are currently the same so the logic could be simplified, but this implementation keeps them distinct to facilitate independent evolution of the implementations if necessary. COMMITS: Commits 1-3 represent bug fixes that could have been submitted separately and should be submitted to linux-stable. They are included here because of later commit dependencies to facilitate review of the entire patch set. Commits 4-6 are enhancements of hugepage migration to support contiguous allocations (i.e. alloc_contig_range). These are potentially of value if a non-gigantic hugepage can be allocated through fallback from MIGRATE_CMA pageblocks or for the allocation of gigantic pages. Their real value is to support CMA from Designated Movable Blocks. Commits 7-15 make up the preferred embodiment of the concept of Designated Movable Block support. The remaining commits (i.e. 16-21) are examples of additional opportunites to use DMBs with other kernel services to achieve more aggressive sharing of DMB reservations with the kernel page allocator. It is hoped that they are of value to others, but they can be reviewed and evaluated separately from the other commits in this set if there is controversy and/or opportunites for improvement. [1] https://lore.kernel.org/lkml/20160428103927.GM2858-3eNAlZScCAx27rWaFMvyedHuzzzSOjJt@public.gmane.org/ Doug Berger (21): mm/page_isolation: protect cma from isolate_single_pageblock mm/hugetlb: correct max_huge_pages accounting on demote mm/hugetlb: correct demote page offset logic mm/hugetlb: refactor alloc_and_dissolve_huge_page mm/hugetlb: allow migrated hugepage to dissolve when freed mm/hugetlb: add hugepage isolation support lib/show_mem.c: display MovableOnly mm/vmstat: show start_pfn when zone spans pages mm/page_alloc: calculate node_spanned_pages from pfns mm/page_alloc.c: allow oversized movablecore mm/page_alloc: introduce init_reserved_pageblock() memblock: introduce MEMBLOCK_MOVABLE flag mm/dmb: Introduce Designated Movable Blocks mm/page_alloc: make alloc_contig_pages DMB aware mm/page_alloc: allow base for movablecore dt-bindings: reserved-memory: introduce designated-movable-block mm/dmb: introduce rmem designated-movable-block mm/cma: support CMA in Designated Movable Blocks dt-bindings: reserved-memory: shared-dma-pool: support DMB mm/cma: introduce rmem shared-dmb-pool mm/hugetlb: introduce hugetlb_dmb .../admin-guide/kernel-parameters.txt | 17 +- .../designated-movable-block.yaml | 51 ++++ .../reserved-memory/shared-dma-pool.yaml | 8 + drivers/of/of_reserved_mem.c | 20 +- include/linux/cma.h | 13 +- include/linux/dmb.h | 28 +++ include/linux/gfp.h | 5 +- include/linux/hugetlb.h | 5 + include/linux/memblock.h | 8 + kernel/dma/contiguous.c | 33 ++- lib/show_mem.c | 2 +- mm/Kconfig | 12 + mm/Makefile | 1 + mm/cma.c | 58 +++-- mm/dmb.c | 156 ++++++++++++ mm/hugetlb.c | 194 +++++++++++---- mm/memblock.c | 30 ++- mm/migrate.c | 1 + mm/page_alloc.c | 225 +++++++++++++----- mm/page_isolation.c | 75 +++--- mm/vmstat.c | 5 + 21 files changed, 765 insertions(+), 182 deletions(-) create mode 100644 Documentation/devicetree/bindings/reserved-memory/designated-movable-block.yaml create mode 100644 include/linux/dmb.h create mode 100644 mm/dmb.c -- 2.25.1
next reply other threads:[~2022-09-13 19:58 UTC|newest] Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-09-13 19:54 Doug Berger [this message] 2022-09-13 19:54 ` [PATCH 00/21] mm: introduce Designated Movable Blocks Doug Berger 2022-09-13 19:54 ` [PATCH 01/21] mm/page_isolation: protect cma from isolate_single_pageblock Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-14 0:02 ` Zi Yan 2022-09-14 0:02 ` Zi Yan 2022-09-14 0:59 ` Doug Berger 2022-09-14 0:59 ` Doug Berger 2022-09-14 1:09 ` Zi Yan 2022-09-14 1:09 ` Zi Yan 2022-09-14 1:47 ` Doug Berger 2022-09-14 1:47 ` Doug Berger 2022-09-14 1:53 ` Zi Yan 2022-09-14 1:53 ` Zi Yan 2022-09-14 17:27 ` Doug Berger 2022-09-14 17:27 ` Doug Berger 2022-09-16 3:40 ` kernel test robot 2022-09-16 3:40 ` kernel test robot 2022-09-13 19:54 ` [PATCH 02/21] mm/hugetlb: correct max_huge_pages accounting on demote Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-14 17:23 ` Mike Kravetz 2022-09-14 17:23 ` Mike Kravetz 2022-09-14 17:26 ` Florian Fainelli 2022-09-14 17:26 ` Florian Fainelli 2022-09-14 18:43 ` Mike Kravetz 2022-09-14 18:43 ` Mike Kravetz 2022-09-14 17:30 ` Doug Berger 2022-09-14 17:30 ` Doug Berger 2022-09-14 20:58 ` Andrew Morton 2022-09-14 20:58 ` Andrew Morton 2022-09-14 21:11 ` Mike Kravetz 2022-09-14 21:11 ` Mike Kravetz 2022-09-13 19:54 ` [PATCH 03/21] mm/hugetlb: correct demote page offset logic Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 23:34 ` Matthew Wilcox 2022-09-13 23:34 ` Matthew Wilcox 2022-09-14 1:07 ` Doug Berger 2022-09-14 1:07 ` Doug Berger 2022-09-14 17:08 ` Mike Kravetz 2022-09-14 17:08 ` Mike Kravetz 2022-09-14 17:54 ` Doug Berger 2022-09-15 1:40 ` Muchun Song 2022-09-15 1:40 ` Muchun Song 2022-09-13 19:54 ` [PATCH 04/21] mm/hugetlb: refactor alloc_and_dissolve_huge_page Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 19:54 ` [PATCH 05/21] mm/hugetlb: allow migrated hugepage to dissolve when freed Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 19:54 ` [PATCH 06/21] mm/hugetlb: add hugepage isolation support Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 19:54 ` [PATCH 07/21] lib/show_mem.c: display MovableOnly Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 19:54 ` [PATCH 08/21] mm/vmstat: show start_pfn when zone spans pages Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 19:54 ` [PATCH 09/21] mm/page_alloc: calculate node_spanned_pages from pfns Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 19:54 ` [PATCH 10/21] mm/page_alloc.c: allow oversized movablecore Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 19:54 ` [PATCH 11/21] mm/page_alloc: introduce init_reserved_pageblock() Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 19:54 ` [PATCH 12/21] memblock: introduce MEMBLOCK_MOVABLE flag Doug Berger 2022-09-13 19:54 ` Doug Berger 2022-09-13 19:55 ` [PATCH 13/21] mm/dmb: Introduce Designated Movable Blocks Doug Berger 2022-09-13 19:55 ` Doug Berger 2022-09-13 19:55 ` [PATCH 14/21] mm/page_alloc: make alloc_contig_pages DMB aware Doug Berger 2022-09-13 19:55 ` Doug Berger 2022-09-13 19:55 ` [PATCH 15/21] mm/page_alloc: allow base for movablecore Doug Berger 2022-09-13 19:55 ` Doug Berger 2022-09-13 19:55 ` [PATCH 16/21] dt-bindings: reserved-memory: introduce designated-movable-block Doug Berger 2022-09-13 19:55 ` Doug Berger 2022-09-14 14:55 ` Rob Herring 2022-09-14 14:55 ` Rob Herring 2022-09-14 17:13 ` Doug Berger 2022-09-14 17:13 ` Doug Berger 2022-09-18 10:31 ` Krzysztof Kozlowski 2022-09-18 10:31 ` Krzysztof Kozlowski 2022-09-18 23:12 ` Doug Berger 2022-09-18 23:12 ` Doug Berger 2022-09-19 11:03 ` Krzysztof Kozlowski 2022-09-19 11:03 ` Krzysztof Kozlowski 2022-09-21 0:14 ` Doug Berger 2022-09-21 0:14 ` Doug Berger 2022-09-21 6:35 ` Krzysztof Kozlowski 2022-09-21 6:35 ` Krzysztof Kozlowski 2022-09-18 10:28 ` Krzysztof Kozlowski 2022-09-18 10:28 ` Krzysztof Kozlowski 2022-09-18 22:41 ` Doug Berger 2022-09-18 22:41 ` Doug Berger 2022-09-13 19:55 ` [PATCH 17/21] mm/dmb: introduce rmem designated-movable-block Doug Berger 2022-09-13 19:55 ` Doug Berger 2022-09-13 19:55 ` [PATCH 18/21] mm/cma: support CMA in Designated Movable Blocks Doug Berger 2022-09-13 19:55 ` Doug Berger 2022-09-14 17:07 ` kernel test robot 2022-09-14 17:07 ` kernel test robot 2022-09-14 17:58 ` kernel test robot 2022-09-14 17:58 ` kernel test robot 2022-09-14 22:03 ` kernel test robot 2022-09-14 22:03 ` kernel test robot 2022-09-13 19:55 ` [PATCH 19/21] dt-bindings: reserved-memory: shared-dma-pool: support DMB Doug Berger 2022-09-13 19:55 ` Doug Berger 2022-09-13 19:55 ` [PATCH 20/21] mm/cma: introduce rmem shared-dmb-pool Doug Berger 2022-09-13 19:55 ` Doug Berger 2022-09-13 19:55 ` [PATCH 21/21] mm/hugetlb: introduce hugetlb_dmb Doug Berger 2022-09-13 19:55 ` Doug Berger 2022-09-14 13:21 ` [PATCH 00/21] mm: introduce Designated Movable Blocks Rob Herring 2022-09-14 13:21 ` Rob Herring 2022-09-14 16:57 ` Doug Berger 2022-09-14 16:57 ` Doug Berger 2022-09-14 18:07 ` Rob Herring 2022-09-14 18:07 ` Rob Herring 2022-09-19 9:00 ` David Hildenbrand 2022-09-19 9:00 ` David Hildenbrand 2022-09-20 1:03 ` Doug Berger 2022-09-20 1:03 ` Doug Berger 2022-09-23 11:19 ` Mike Rapoport 2022-09-23 11:19 ` Mike Rapoport 2022-09-23 22:10 ` Doug Berger 2022-09-23 22:10 ` Doug Berger 2022-09-29 9:00 ` David Hildenbrand 2022-09-29 9:00 ` David Hildenbrand 2022-10-01 0:42 ` Doug Berger 2022-10-05 18:39 ` David Hildenbrand 2022-10-12 23:38 ` Doug Berger
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220913195508.3511038-1-opendmb@gmail.com \ --to=opendmb@gmail.com \ --cc=akpm@linux-foundation.org \ --cc=bp@suse.de \ --cc=corbet@lwn.net \ --cc=damien.lemoal@opensource.wdc.com \ --cc=david@redhat.com \ --cc=devicetree-spec@vger.kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=f.fainelli@gmail.com \ --cc=frowand.list@gmail.com \ --cc=hbathini@linux.ibm.com \ --cc=hch@lst.de \ --cc=iommu@lists.linux.dev \ --cc=keescook@chromium.org \ --cc=kosaki.motohiro@jp.fujitsu.com \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=m.szyprowski@samsung.com \ --cc=mgorman@suse.de \ --cc=mike.kravetz@oracle.com \ --cc=osalvador@suse.de \ --cc=paulmck@kernel.org \ --cc=quic_neeraju@quicinc.com \ --cc=rdunlap@infradead.org \ --cc=robh+dt@kernel.org \ --cc=robin.murphy@arm.com \ --cc=rppt@kernel.org \ --cc=songmuchun@bytedance.com \ --cc=ziy@nvidia.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.