I didn't read this thoughly yet because I will be travelling shortly but this point alone just made ask, because it seems there is some misunderstanding On Fri 28-04-17 11:04:27, Igor Stoppa wrote: [...] > * if one is happy to have a 64bits type, allow for as many zones as > it's possible to fit, or anyway more than what is possible with > the 32 bit mask. zones are currently placed in struct page::flags. And that already is 64b size on 64b arches. And we do not really have any room spare there. We encode page flags, zone id, numa_nid/sparse section_nr there. How can you add more without enlarging the struct page itself or using external means to store the same information (page_ext comes to mind)? Even if the later would be possible then note thatpage_zone() is used in many performance sensitive paths and making it perform well with special casing would be far from trivial. -- Michal Hocko SUSE Labs -- 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>