Re: [PATCH -mm] do_migrate_pages() calls migrate_to_node() even if task is already on a correct node

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/29/2012 03:43 PM, KOSAKI Motohiro wrote:
(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.

nodes_weight() tells us the number of nodes in the cpuset so if you are migrating from say 2, 3 &4 to 3, 4 &5 we wont go from 2 to 5 and call it done like the original patch did. With this patch we will preserve the migrating of 2, 3 &4 to 3, 4 &5 yet
if we are migrating from 0-7 to 3-4 we wont do this:

Migrating 7 to 4
Migrating 6 to 3
Migrating 5 to 4
Migrating 4 to 3
Migrating 1 to 4
Migrating 3 to 4
Migrating 0 to 3
Migrating 2 to 3

Instead, will do this:

Migrating 7 to 4
Migrating 6 to 3
Migrating 5 to 4
Migrating 1 to 4
Migrating 0 to 3
Migrating 2 to 3

Larry



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]