Re: [PATCH] VM routine fixes

From: Christoph Hellwig
Date: Tue Nov 09 2004 - 07:56:57 EST


> +++ linux-2.6.10-rc1-mm3-frv/include/linux/mm.h 2004-11-05 17:44:09.120160519 +0000
> @@ -37,6 +37,10 @@ extern int sysctl_legacy_va_layout;
> #include <asm/processor.h>
> #include <asm/atomic.h>
>
> +#ifndef CONFIG_MMU
> +#define swapper_pml4 NULL
> +#endif
> +
> #ifndef MM_VM_SIZE
> #define MM_VM_SIZE(mm) TASK_SIZE
> #endif
> @@ -640,6 +674,7 @@ extern void remove_shrinker(struct shrin
> * inlining and the symmetry break with pte_alloc_map() that does all
> * of this out-of-line.
> */
> +#ifdef CONFIG_MMU
> static inline pmd_t *pmd_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
> {
> if (pgd_none(*pgd))
> @@ -660,6 +695,7 @@ static inline pgd_t *pgd_alloc_k(struct
> return __pgd_alloc(mm, pml4, address);
> return pml4_pgd_offset_k(pml4, address);
> }
> +#endif

Please don't stick CONFIG_MMU all over the place but keep them in as small
as possible blocks.

> +#ifdef CONFIG_MMU
> {
> .ctl_name = VM_MAX_MAP_COUNT,
> .procname = "max_map_count",
> @@ -763,6 +764,7 @@ static ctl_table vm_table[] = {
> .mode = 0644,
> .proc_handler = &proc_dointvec
> },
> +#endif

As I told you before please move registration of MMU-only sysctls
to a MMU-only file in mm/

> +extern void set_page_refs(struct page *page, int order);

this should probably be an inline.

> mod_page_state(pgfree, 1 << order);
> +
> +#ifndef CONFIG_MMU
> + if (order > 0)
> + for (i = 1 ; i < (1 << order) ; ++i)
> + __put_page(page + i);
> +#endif
> +

this is nasty. The right thing would probably to swich !MMU arches
to use the compount-page mechanism from the hugetlb code for this.

> --- /warthog/kernels/linux-2.6.10-rc1-mm3/mm/tiny-shmem.c 2004-10-27 17:32:38.000000000 +0100
> +++ linux-2.6.10-rc1-mm3-frv/mm/tiny-shmem.c 2004-11-05 14:13:05.000000000 +0000
> @@ -112,7 +112,9 @@ int shmem_zero_setup(struct vm_area_stru
> if (vma->vm_file)
> fput(vma->vm_file);
> vma->vm_file = file;
> +#ifdef CONFIG_MMU
> vma->vm_ops = &generic_file_vm_ops;
> +#endif

And you ocmpletely ignored the previous comment here aswell.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/