Re: [PATCH] Make CONFIG_MIGRATION available for s390

From: Yasunori Goto
Date: Mon Jul 07 2008 - 06:36:19 EST



> > Index: linux-2.6/include/linux/migrate.h
> > ===================================================================
> > --- linux-2.6.orig/include/linux/migrate.h
> > +++ linux-2.6/include/linux/migrate.h
> > @@ -13,6 +13,7 @@ static inline int vma_migratable(struct
> > {
> > if (vma->vm_flags & (VM_IO|VM_HUGETLB|VM_PFNMAP|VM_RESERVED))
> > return 0;
> > +#ifdef CONFIG_NUMA
> > /*
> > * Migration allocates pages in the highest zone. If we cannot
> > * do so then migration (at least from node to node) is not
> > @@ -22,6 +23,7 @@ static inline int vma_migratable(struct
> > gfp_zone(mapping_gfp_mask(vma->vm_file->f_mapping))
> > < policy_zone)
> > return 0;
> > +#endif
>
> include/linux/mempolicy.h already has a !NUMA section could we not just
> define policy_zone as 0 in that and leave this code unconditionally
> compiled? Perhaps also adding a NUMA_BUILD && to this 'if' should that
> be clearer.
>
Ah, yes. It's better. :-)


> But this does make me feel uneasy. Are we really saying all memory on
> an s390 is migratable. That seems unlikely. As I understand the NUMA
> case, we only allow migration of memory in the last zone (last two if we
> have a MOVABLE zone) why are things different just because we have a
> single 'node'. Hmmm. I suspect strongly that something is missnamed
> more than there is a problem.

If my understanding is correct, even if this policy_zone check is removed,
page isolation will just fail due to some busy pages.
In hotplug case, it means giving up of hotremoving,
and kernel must be rollback to make same condition of previous
starting offline_pages().
This check means just "early" check, but not so effective for hotremoving,
I think....


Thanks.

--
Yasunori Goto


--
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/