On 2015/6/16 15:53, Vlastimil Babka wrote: > On 06/04/2015 02:54 PM, Xishi Qiu wrote: >> 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 can support the feature after boot time. It introduces >> mirror_info >> to save the mirrored memory range. Then use __GFP_MIRROR to allocate >> mirrored >> pages. >> >> I think add a new migratetype is btter and easier than a new zone, so I use > > If the mirrored memory is in a single reasonably compact (no large holes) > range > (per NUMA node) and won't dynamically change its size, then zone might be a > better option. For one thing, it will still allow distinguishing movable and > unmovable allocations within the mirrored memory. > > We had enough fun with MIGRATE_CMA and all kinds of checks it added to > allocator > hot paths, and even CMA is now considering moving to a separate zone. >
Hi, how about the problem of this case: e.g. node 0: 0-4G(dma and dma32) node 1: 4G-8G(normal), 8-12G(mirror), 12-16G(normal), so more than one normal zone in a node? or normal zone just span the mirror zone? Thanks, Xishi Qiu -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/