RFC mm: mirrored memory support for page buddy allocations
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 RFC Latest8 patches 20 repliesIn review
- v1 RFC12 patches 49 repliesSuperseded
Changes in v2 from the cover letter
- Use memblock which marked MEMBLOCK_MIRROR to find mirrored memory instead of mirror_info.
- Remove __GFP_MIRROR and /proc/sys/vm/mirrorable.
- Use mirrored memory for all kernel allocations.
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/8 | mm: add a new config to manage the codemm/ | +8 | 2 replies | |
| 2/8 | mm: introduce MIGRATE_MIRROR to manage the mirrored pagesinclude/ mm/ mm/ | +15 | 4 replies | |
| 3/8 | mm: find mirrored memory in memblockinclude/ mm/ | +27 | 0 replies | |
| 4/8 | mm: add mirrored memory to buddy systeminclude/ mm/ mm/ +1 more | +30 | 1 reply | |
| 5/8 | mm: introduce a new zone_stat_item NR_FREE_MIRROR_PAGESinclude/ include/ mm/ | +4 | 0 replies | |
| 6/8 | mm: add free mirrored pages infodrivers/ fs/ mm/ | +22 | 0 replies | |
| 7/8 | mm: add the buddy system interfaceinclude/ mm/ mm/ | +23 | 4 replies | |
| 8/8 | mm: add the PCP interfacemm/ | +61 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [RFC v2 PATCH 0/8] mm: mirrored memory support for page buddy allocations
Intel Xeon processor E7 v3 product family-based platforms introduces support for partial memory mirroring called as 'Address Range Mirroring'. This feature allows BIOS to specify a subset of total available memory to be mirrored (and optionally also specify whether to mirror the range 0-4 GB). This capability allows user to make an appropriate tradeoff between non-mirrored memory range and mirrored memory range thus optimizing total available memory and still achieving highly reliable memory range for mission critical workloads and/or kernel space.
Tony has already send a patchset to supprot this feature at boot time.
https://lkml.org/lkml/2015/5/8/521
This patchset is based on Tony's, it can support the feature after boot time. Use mirrored memory for all kernel allocations.
TBD:
- Add compatibility with memory online/offline, memory compaction, CMA...
- Need to discuss the implementation ideas, add a new zone or a new migratetype or others.
V2:
- Use memblock which marked MEMBLOCK_MIRROR to find mirrored memory instead of mirror_info.
- Remove __GFP_MIRROR and /proc/sys/vm/mirrorable.
- Use mirrored memory for all kernel allocations.
Xishi Qiu (8):
mm: add a new config to manage the code
mm: introduce MIGRATE_MIRROR to manage the mirrored pages
mm: find mirrored memory in memblock
mm: add mirrored memory to buddy system
mm: introduce a new zone_stat_item NR_FREE_MIRROR_PAGES
mm: add free mirrored pages info
mm: add the buddy system interface
mm: add the PCP interface
drivers/base/node.c | 17 ++++--- fs/proc/meminfo.c | 6 +++ include/linux/memblock.h | 29 ++++++++++-- include/linux/mmzone.h | 10 ++++ include/linux/vmstat.h | 2 + mm/Kconfig | 8 ++++ mm/memblock.c | 33 +++++++++++-- mm/nobootmem.c | 3 ++ mm/page_alloc.c | 117 ++++++++++++++++++++++++++++++++++++----------- mm/vmstat.c | 4 ++ 10 files changed, 190 insertions(+), 39 deletions(-)
Signature · 1 line
2.0.0