lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 21 Nov 2012 10:21:37 +0000 From: Mel Gorman <mgorman@...e.de> To: Peter Zijlstra <a.p.zijlstra@...llo.nl>, Andrea Arcangeli <aarcange@...hat.com>, Ingo Molnar <mingo@...nel.org> Cc: Rik van Riel <riel@...hat.com>, Johannes Weiner <hannes@...xchg.org>, Hugh Dickins <hughd@...gle.com>, Thomas Gleixner <tglx@...utronix.de>, Paul Turner <pjt@...gle.com>, Lee Schermerhorn <Lee.Schermerhorn@...com>, Alex Shi <lkml.alex@...il.com>, Linus Torvalds <torvalds@...ux-foundation.org>, Andrew Morton <akpm@...ux-foundation.org>, Linux-MM <linux-mm@...ck.org>, LKML <linux-kernel@...r.kernel.org>, Mel Gorman <mgorman@...e.de> Subject: [PATCH 31/46] mm: numa: Structures for Migrate On Fault per NUMA migration rate limiting From: Andrea Arcangeli <aarcange@...hat.com> This defines the per-node data used by Migrate On Fault in order to rate limit the migration. The rate limiting is applied independently to each destination node. Signed-off-by: Andrea Arcangeli <aarcange@...hat.com> Signed-off-by: Mel Gorman <mgorman@...e.de> --- include/linux/mmzone.h | 13 +++++++++++++ mm/page_alloc.c | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index a23923b..1ed16e5 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -717,6 +717,19 @@ typedef struct pglist_data { struct task_struct *kswapd; /* Protected by lock_memory_hotplug() */ int kswapd_max_order; enum zone_type classzone_idx; +#ifdef CONFIG_BALANCE_NUMA + /* + * Lock serializing the per destination node AutoNUMA memory + * migration rate limiting data. + */ + spinlock_t balancenuma_migrate_lock; + + /* Rate limiting time interval */ + unsigned long balancenuma_migrate_next_window; + + /* Number of pages migrated during the rate limiting time interval */ + unsigned long balancenuma_migrate_nr_pages; +#endif } pg_data_t; #define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 5953dc2..df58654 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4449,6 +4449,11 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat, int ret; pgdat_resize_init(pgdat); +#ifdef CONFIG_BALANCE_NUMA + spin_lock_init(&pgdat->balancenuma_migrate_lock); + pgdat->balancenuma_migrate_nr_pages = 0; + pgdat->balancenuma_migrate_next_window = jiffies; +#endif init_waitqueue_head(&pgdat->kswapd_wait); init_waitqueue_head(&pgdat->pfmemalloc_wait); pgdat_page_cgroup_init(pgdat); -- 1.7.9.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists