On 2015/6/18 13:58, Vlastimil Babka wrote: > On 18.6.2015 3:23, Xishi Qiu wrote: >> On 2015/6/16 17:46, Vlastimil Babka wrote: >> >>> On 06/16/2015 10:17 AM, Xishi Qiu wrote: >>>> On 2015/6/16 15:53, Vlastimil Babka wrote: >>>> >>>>> On 06/04/2015 02:54 PM, Xishi Qiu wrote: >>>>>> >>>>>> 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? >>> >>> Normal zone can span the mirror zone just fine. However, it will result in zone >>> scanners such as compaction to skip over the mirror zone inefficiently. Hmm... > > On the other hand, it would skip just as inefficiently over MIGRATE_MIRROR > pageblocks within a Normal zone. Since migrating pages between MIGRATE_MIRROR > and other types pageblocks would violate what the allocations requested. > > Having separate zone instead would allow compaction to run specifically on the > zone and defragment movable allocations there (i.e. userspace pages if/when > userspace requesting mirrored memory is supported). > >>> >> >> Hi Vlastimil, >> >> If there are many mirror regions in one node, then it will be many holes in the >> normal zone, is this fine? > > Yeah, it doesn't matter how many holes there are. So mirror zone and normal zone will span each other, right? e.g. node 1: 4G-8G(normal), 8-12G(mirror), 12-16G(normal), 16-24G(mirror), 24-28G(normal) ... normal: start=4G, size=28-4=24G, mirror: start=8G, size=24-8=16G, I think zone is defined according to the special address range, like 16M(DMA), 4G(DMA32), and is it appropriate to add a new mirror zone with a volatile physical address? Thanks, Xishi Qiu -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>