Re: [PATCH -mm V3] do_migrate_pages() calls migrate_to_node() even iftask is already on a correct node
From: KOSAKI Motohiro
Date: Thu Apr 26 2012 - 21:14:35 EST
> @@ -1012,6 +1012,26 @@ int do_migrate_pages(struct mm_struct *mm,
> int dest = 0;
>
> for_each_node_mask(s, tmp) {
> +
> + /*
> + * do_migrate_pages() tries to maintain the
> + * relative node relationship of the pages
> + * established between threads and memory areas.
> + *
> + * However if the number of source nodes is not
> + * equal to the number of destination nodes we
> + * can not preserve this node relative relationship.
> + * In that case, skip copying memory from a node
> that
> + * is in the destination mask.
> + *
> + * Example: [2,3,4] -> [3,4,5] moves everything.
> + * [0-7] - > [3,4,5] moves only
> 0,1,2,6,7.
> + */
> +
> + if ((nodes_weight(*from_nodes) !=
> nodes_weight(*to_nodes)) &&
> + (node_isset(s, *to_nodes)))
> + continue;
> +
> d = node_remap(s, *from_nodes, *to_nodes);
> if (s == d)
> continue;
Acked-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
N?§²æìr¸?yúè?Øb²X¬¶Ç§vØ^?)Þº{.nÇ+?·¥?{±?êçzX§¶?¡Ü¨}©?²Æ zÚ&j:+v?¨¾«?êçzZ+?Ê+zf£¢·h??§~??Ûiÿûàz¹®w¥¢¸??¨èÚ&¢)ߢf?ù^jÇ«y§m?á@A«a¶Úÿ0¶ìh®å?i