This implements the knuma_migrated queues. The pages are added to these queues through the NUMA hinting page faults (memory follow CPU algorithm with false sharing evaluation) and knuma_migrated then is waken with a certain hysteresis to migrate the memory in round robin from all remote nodes to its local node. The head that belongs to the local node that knuma_migrated runs on, for now must be empty and it's not being used. Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> --- include/linux/mmzone.h | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index dff7115..b60747a 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -666,6 +666,12 @@ typedef struct pglist_data { struct task_struct *kswapd; int kswapd_max_order; enum zone_type classzone_idx; +#ifdef CONFIG_AUTONUMA + spinlock_t autonuma_lock; + struct list_head autonuma_migrate_head[MAX_NUMNODES]; + unsigned long autonuma_nr_migrate_pages; + wait_queue_head_t autonuma_knuma_migrated_wait; +#endif } pg_data_t; #define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages) -- 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>