Messages in this thread | | | Date | Thu, 29 Mar 2012 15:43:35 -0400 | From | KOSAKI Motohiro <> | Subject | Re: [PATCH -mm] do_migrate_pages() calls migrate_to_node() even if task is already on a correct node |
| |
(3/29/12 2:00 PM), Larry Woodman wrote: > On 03/22/2012 03:30 PM, Christoph Lameter wrote: >> On Thu, 22 Mar 2012, Larry Woodman wrote: >> >>>> Application may manage their locality given a range of nodes and each of >>>> the x .. x+n nodes has their particular purpose. >>> So to be clear on this, in that case the intention would be move 3 to 4, 4 to >>> 5 and 5 to 6 >>> to keep the node ordering the same? >> Yup. Have a look at do_migrate_pages and the descrition in the comment by >> there by Paul Jackson. >> >> > Christoph and others what do you think about this??? > > > for_each_node_mask(s, tmp) { >+ >+ /* IFF there is an equal number of source and >+ * destination nodes, maintain relative node distance >+ * even when source and destination nodes overlap. >+ * However, when the node weight is unequal, never move >+ * memory out of any destination nodes */ >+ 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;
I'm confused. Could you please explain why you choose nodes_weight()? On my first impression, it seems almostly unrelated factor.
| |