On 06/18/2016 03:11 AM, KarimAllah Ahmed wrote: > @@ -1067,8 +1067,12 @@ struct mem_section { > * section. (see page_ext.h about this.) > */ > struct page_ext *page_ext; > - unsigned long pad; > + unsigned long pad[3]; > #endif > + > + unsigned long first_pfn; > + unsigned long last_pfn; mem_section started out as a single pointer, and it's getting a bit, um, rotund. Remember, some architectures have a lot of physical address space, and thus a ton of mem_sections, but very little actual memory. This eats valuable RAM if we bloat mem_section too much. Oh, and with this: > /* > * WARNING: mem_section must be a power-of-2 in size for the > * calculation and use of SECTION_ROOT_MASK to make sense. > */ Aren't you making a non-power-of-2 sized 'mem_section" in some cases? This also doesn't handle if there is a hole in the _middle_ of a section. What's wrong with using some bits in the existing usemap? -- 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>