On Tue, 27 Jan 2015 08:24:28 -0800 Guenter Roeck <linux@xxxxxxxxxxxx> wrote: > > __PAGETABLE_PMD_FOLDED is defined during <asm/pgtable.h> which is not > > included into <linux/mm_types.h>. And we cannot include it here since > > many of <asm/pgtables> needs <linux/mm_types.h> to define struct page. > > > > I failed to come up with better solution rather than put nr_pmds into > > mm_struct unconditionally. > > > > One possible solution would be to expose number of page table levels > > architecture has via Kconfig, but that's ugly and requires changes to > > all architectures. > > > FWIW, I tried a number of approaches. Ultimately I gave up and concluded > that it has to be either this patch or, as you say here, we would have > to add something like PAGETABLE_PMD_FOLDED as a Kconfig option. It's certainly a big mess. Yes, I expect that moving __PAGETABLE_PMD_FOLDED and probably PAGETABLE_LEVELS into Kconfig logic would be a good fix. Adding 8 bytes to the mm_struct (sometimes) isn't a huge issue, but it does make the kernel just a little bit worse. Has anyone taken a look at what the Kconfig approach would look like? Possibly another fix for this would be to move mm_struct into its own header file, or something along those lines? -- 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>