Messages in this thread | | | Date | Tue, 27 Jan 2015 13:24:33 -0800 | From | Andrew Morton <> | Subject | Re: mmotm 2015-01-22-15-04: qemu failures due to 'mm: account pmd page tables to the process' |
| |
On Tue, 27 Jan 2015 08:24:28 -0800 Guenter Roeck <linux@roeck-us.net> 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?
| |