From: Christoph Lameter <clameter@sgi.com> To: akpm@osdl.org Cc: Paul Menage <menage@google.com>, linux-kernel@vger.kernel.org, Nick Piggin <nickpiggin@yahoo.com.au>, linux-mm@kvack.org, Andi Kleen <ak@suse.de>, Paul Jackson <pj@sgi.com>, Dave Chinner <dgc@sgi.com>, Christoph Lameter <clameter@sgi.com> Subject: [RFC 6/8] Throttle vm writeout per cpuset Date: Mon, 15 Jan 2007 21:48:14 -0800 (PST) [thread overview] Message-ID: <20070116054814.15358.81212.sendpatchset@schroedinger.engr.sgi.com> (raw) In-Reply-To: <20070116054743.15358.77287.sendpatchset@schroedinger.engr.sgi.com> Throttle VM writeout in a cpuset aware way This bases the vm throttling from the reclaim path on the dirty ratio of the cpuset. Note that a cpuset is only effective if shrink_zone is called from direct reclaim. kswapd has a cpuset context that includes the whole machine and will therefore not throttle unless global limits are reached. Signed-off-by: Christoph Lameter <clameter@sgi.com> Index: linux-2.6.20-rc5/include/linux/writeback.h =================================================================== --- linux-2.6.20-rc5.orig/include/linux/writeback.h 2007-01-15 21:37:05.209897874 -0600 +++ linux-2.6.20-rc5/include/linux/writeback.h 2007-01-15 21:37:33.283671963 -0600 @@ -85,7 +85,7 @@ static inline void wait_on_inode(struct int wakeup_pdflush(long nr_pages, nodemask_t *nodes); void laptop_io_completion(void); void laptop_sync_completion(void); -void throttle_vm_writeout(void); +void throttle_vm_writeout(nodemask_t *); /* These are exported to sysctl. */ extern int dirty_background_ratio; Index: linux-2.6.20-rc5/mm/page-writeback.c =================================================================== --- linux-2.6.20-rc5.orig/mm/page-writeback.c 2007-01-15 21:35:28.013794159 -0600 +++ linux-2.6.20-rc5/mm/page-writeback.c 2007-01-15 21:37:33.302228293 -0600 @@ -349,12 +349,12 @@ void balance_dirty_pages_ratelimited_nr( } EXPORT_SYMBOL(balance_dirty_pages_ratelimited_nr); -void throttle_vm_writeout(void) +void throttle_vm_writeout(nodemask_t *nodes) { struct dirty_limits dl; for ( ; ; ) { - get_dirty_limits(&dl, NULL, &node_online_map); + get_dirty_limits(&dl, NULL, nodes); /* * Boost the allowable dirty threshold a bit for page Index: linux-2.6.20-rc5/mm/vmscan.c =================================================================== --- linux-2.6.20-rc5.orig/mm/vmscan.c 2007-01-15 21:37:26.605346439 -0600 +++ linux-2.6.20-rc5/mm/vmscan.c 2007-01-15 21:37:33.316878027 -0600 @@ -949,7 +949,7 @@ static unsigned long shrink_zone(int pri } } - throttle_vm_writeout(); + throttle_vm_writeout(&cpuset_current_mems_allowed); atomic_dec(&zone->reclaim_in_progress); return nr_reclaimed;
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Lameter <clameter@sgi.com> To: akpm@osdl.org Cc: Paul Menage <menage@google.com>, linux-kernel@vger.kernel.org, Nick Piggin <nickpiggin@yahoo.com.au>, linux-mm@kvack.org, Andi Kleen <ak@suse.de>, Paul Jackson <pj@sgi.com>, Dave Chinner <dgc@sgi.com>, Christoph Lameter <clameter@sgi.com> Subject: [RFC 6/8] Throttle vm writeout per cpuset Date: Mon, 15 Jan 2007 21:48:14 -0800 (PST) [thread overview] Message-ID: <20070116054814.15358.81212.sendpatchset@schroedinger.engr.sgi.com> (raw) In-Reply-To: <20070116054743.15358.77287.sendpatchset@schroedinger.engr.sgi.com> Throttle VM writeout in a cpuset aware way This bases the vm throttling from the reclaim path on the dirty ratio of the cpuset. Note that a cpuset is only effective if shrink_zone is called from direct reclaim. kswapd has a cpuset context that includes the whole machine and will therefore not throttle unless global limits are reached. Signed-off-by: Christoph Lameter <clameter@sgi.com> Index: linux-2.6.20-rc5/include/linux/writeback.h =================================================================== --- linux-2.6.20-rc5.orig/include/linux/writeback.h 2007-01-15 21:37:05.209897874 -0600 +++ linux-2.6.20-rc5/include/linux/writeback.h 2007-01-15 21:37:33.283671963 -0600 @@ -85,7 +85,7 @@ static inline void wait_on_inode(struct int wakeup_pdflush(long nr_pages, nodemask_t *nodes); void laptop_io_completion(void); void laptop_sync_completion(void); -void throttle_vm_writeout(void); +void throttle_vm_writeout(nodemask_t *); /* These are exported to sysctl. */ extern int dirty_background_ratio; Index: linux-2.6.20-rc5/mm/page-writeback.c =================================================================== --- linux-2.6.20-rc5.orig/mm/page-writeback.c 2007-01-15 21:35:28.013794159 -0600 +++ linux-2.6.20-rc5/mm/page-writeback.c 2007-01-15 21:37:33.302228293 -0600 @@ -349,12 +349,12 @@ void balance_dirty_pages_ratelimited_nr( } EXPORT_SYMBOL(balance_dirty_pages_ratelimited_nr); -void throttle_vm_writeout(void) +void throttle_vm_writeout(nodemask_t *nodes) { struct dirty_limits dl; for ( ; ; ) { - get_dirty_limits(&dl, NULL, &node_online_map); + get_dirty_limits(&dl, NULL, nodes); /* * Boost the allowable dirty threshold a bit for page Index: linux-2.6.20-rc5/mm/vmscan.c =================================================================== --- linux-2.6.20-rc5.orig/mm/vmscan.c 2007-01-15 21:37:26.605346439 -0600 +++ linux-2.6.20-rc5/mm/vmscan.c 2007-01-15 21:37:33.316878027 -0600 @@ -949,7 +949,7 @@ static unsigned long shrink_zone(int pri } } - throttle_vm_writeout(); + throttle_vm_writeout(&cpuset_current_mems_allowed); atomic_dec(&zone->reclaim_in_progress); return nr_reclaimed; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-01-16 5:50 UTC|newest] Thread overview: 220+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-01-16 5:47 [RFC 0/8] Cpuset aware writeback Christoph Lameter 2007-01-16 5:47 ` Christoph Lameter 2007-01-16 5:47 ` [RFC 1/8] Convert higest_possible_node_id() into nr_node_ids Christoph Lameter 2007-01-16 5:47 ` Christoph Lameter 2007-01-16 22:05 ` Andi Kleen 2007-01-16 22:05 ` Andi Kleen 2007-01-17 3:14 ` Christoph Lameter 2007-01-17 3:14 ` Christoph Lameter 2007-01-17 4:15 ` Andi Kleen 2007-01-17 4:15 ` Andi Kleen 2007-01-17 4:23 ` Christoph Lameter 2007-01-17 4:23 ` Christoph Lameter 2007-01-16 5:47 ` [RFC 2/8] Add a map to inodes to track dirty pages per node Christoph Lameter 2007-01-16 5:47 ` Christoph Lameter 2007-01-16 5:47 ` [RFC 3/8] Add a nodemask to pdflush functions Christoph Lameter 2007-01-16 5:47 ` Christoph Lameter 2007-01-16 5:48 ` [RFC 4/8] Per cpuset dirty ratio handling and writeout Christoph Lameter 2007-01-16 5:48 ` Christoph Lameter 2007-01-16 5:48 ` [RFC 5/8] Make writeout during reclaim cpuset aware Christoph Lameter 2007-01-16 5:48 ` Christoph Lameter 2007-01-16 22:07 ` Andi Kleen 2007-01-16 22:07 ` Andi Kleen 2007-01-17 4:20 ` Paul Jackson 2007-01-17 4:20 ` Paul Jackson 2007-01-17 4:28 ` Andi Kleen 2007-01-17 4:28 ` Andi Kleen 2007-01-17 4:36 ` Paul Jackson 2007-01-17 4:36 ` Paul Jackson 2007-01-17 5:59 ` Andi Kleen 2007-01-17 5:59 ` Andi Kleen 2007-01-17 6:19 ` Christoph Lameter 2007-01-17 6:19 ` Christoph Lameter 2007-01-17 4:23 ` Christoph Lameter 2007-01-17 4:23 ` Christoph Lameter 2007-01-16 5:48 ` Christoph Lameter [this message] 2007-01-16 5:48 ` [RFC 6/8] Throttle vm writeout per cpuset Christoph Lameter 2007-01-16 5:48 ` [RFC 7/8] Exclude unreclaimable pages from dirty ration calculation Christoph Lameter 2007-01-16 5:48 ` Christoph Lameter 2007-01-18 15:48 ` Nikita Danilov 2007-01-18 15:48 ` Nikita Danilov 2007-01-18 19:56 ` Christoph Lameter 2007-01-18 19:56 ` Christoph Lameter 2007-01-16 5:48 ` [RFC 8/8] Reduce inode memory usage for systems with a high MAX_NUMNODES Christoph Lameter 2007-01-16 5:48 ` Christoph Lameter 2007-01-16 19:52 ` Paul Menage 2007-01-16 19:52 ` Paul Menage 2007-01-16 20:00 ` Christoph Lameter 2007-01-16 20:00 ` Christoph Lameter 2007-01-16 20:06 ` Paul Menage 2007-01-16 20:06 ` Paul Menage 2007-01-16 20:51 ` Christoph Lameter 2007-01-16 20:51 ` Christoph Lameter 2007-01-16 7:38 ` [RFC 0/8] Cpuset aware writeback Peter Zijlstra 2007-01-16 7:38 ` Peter Zijlstra 2007-01-16 20:10 ` Christoph Lameter 2007-01-16 20:10 ` Christoph Lameter 2007-01-16 9:25 ` Paul Jackson 2007-01-16 9:25 ` Paul Jackson 2007-01-16 17:13 ` Christoph Lameter 2007-01-16 17:13 ` Christoph Lameter 2007-01-16 21:53 ` Andrew Morton 2007-01-16 21:53 ` Andrew Morton 2007-01-16 22:08 ` [PATCH] nfs: fix congestion control Peter Zijlstra 2007-01-16 22:08 ` [PATCH] nfs: fix congestion control, " Peter Zijlstra 2007-01-16 22:27 ` [PATCH] " Trond Myklebust 2007-01-16 22:27 ` Trond Myklebust 2007-01-17 2:41 ` Peter Zijlstra 2007-01-17 2:41 ` Peter Zijlstra 2007-01-17 6:15 ` Trond Myklebust 2007-01-17 6:15 ` Trond Myklebust 2007-01-17 8:49 ` Peter Zijlstra 2007-01-17 8:49 ` Peter Zijlstra 2007-01-17 13:50 ` Trond Myklebust 2007-01-17 13:50 ` Trond Myklebust 2007-01-17 14:29 ` Peter Zijlstra 2007-01-17 14:29 ` Peter Zijlstra 2007-01-17 14:45 ` Trond Myklebust 2007-01-17 14:45 ` Trond Myklebust 2007-01-17 20:05 ` Christoph Lameter 2007-01-17 20:05 ` Christoph Lameter 2007-01-17 21:52 ` Peter Zijlstra 2007-01-17 21:52 ` Peter Zijlstra 2007-01-17 21:54 ` Trond Myklebust 2007-01-17 21:54 ` Trond Myklebust 2007-01-18 13:27 ` Peter Zijlstra 2007-01-18 13:27 ` Peter Zijlstra 2007-01-18 15:49 ` Trond Myklebust 2007-01-18 15:49 ` Trond Myklebust 2007-01-19 9:33 ` Peter Zijlstra 2007-01-19 9:33 ` Peter Zijlstra 2007-01-19 13:07 ` Peter Zijlstra 2007-01-19 13:07 ` Peter Zijlstra 2007-01-19 16:51 ` Trond Myklebust 2007-01-19 16:51 ` Trond Myklebust 2007-01-19 17:54 ` Peter Zijlstra 2007-01-19 17:54 ` Peter Zijlstra 2007-01-19 17:20 ` Christoph Lameter 2007-01-19 17:20 ` Christoph Lameter 2007-01-19 17:57 ` Peter Zijlstra 2007-01-19 17:57 ` Peter Zijlstra 2007-01-19 18:02 ` Christoph Lameter 2007-01-19 18:02 ` Christoph Lameter 2007-01-19 18:26 ` Trond Myklebust 2007-01-19 18:26 ` Trond Myklebust 2007-01-19 18:27 ` Christoph Lameter 2007-01-19 18:27 ` Christoph Lameter 2007-01-20 7:01 ` [PATCH] nfs: fix congestion control -v3 Peter Zijlstra 2007-01-20 7:01 ` [PATCH] nfs: fix congestion control -v3, nfs: fix congestion control Peter Zijlstra 2007-01-22 16:12 ` [PATCH] nfs: fix congestion control -v3 Trond Myklebust 2007-01-22 16:12 ` Trond Myklebust 2007-01-25 15:32 ` [PATCH] nfs: fix congestion control -v4 Peter Zijlstra 2007-01-25 15:32 ` Peter Zijlstra 2007-01-26 5:02 ` Andrew Morton 2007-01-26 5:02 ` Andrew Morton 2007-01-26 8:00 ` Peter Zijlstra 2007-01-26 8:00 ` Peter Zijlstra 2007-01-26 8:50 ` Peter Zijlstra 2007-01-26 8:50 ` Peter Zijlstra 2007-01-26 5:09 ` Andrew Morton 2007-01-26 5:09 ` Andrew Morton 2007-01-26 5:31 ` Christoph Lameter 2007-01-26 5:31 ` Christoph Lameter 2007-01-26 6:04 ` Andrew Morton 2007-01-26 6:04 ` Andrew Morton 2007-01-26 6:53 ` Christoph Lameter 2007-01-26 6:53 ` Christoph Lameter 2007-01-26 8:03 ` Peter Zijlstra 2007-01-26 8:03 ` Peter Zijlstra 2007-01-26 8:51 ` Andrew Morton 2007-01-26 8:51 ` Andrew Morton 2007-01-26 9:01 ` Peter Zijlstra 2007-01-26 9:01 ` Peter Zijlstra 2007-02-20 12:59 ` Peter Zijlstra 2007-02-20 12:59 ` Peter Zijlstra 2007-01-22 17:59 ` [PATCH] nfs: fix congestion control -v3 Christoph Lameter 2007-01-22 17:59 ` Christoph Lameter 2007-01-17 23:15 ` [PATCH] nfs: fix congestion control Christoph Hellwig 2007-01-17 23:15 ` Christoph Hellwig 2007-01-16 22:15 ` [RFC 0/8] Cpuset aware writeback Christoph Lameter 2007-01-16 22:15 ` Christoph Lameter 2007-01-16 23:40 ` Andrew Morton 2007-01-16 23:40 ` Andrew Morton 2007-01-17 0:16 ` Christoph Lameter 2007-01-17 0:16 ` Christoph Lameter 2007-01-17 1:07 ` Andrew Morton 2007-01-17 1:07 ` Andrew Morton 2007-01-17 1:30 ` Christoph Lameter 2007-01-17 1:30 ` Christoph Lameter 2007-01-17 2:34 ` Andrew Morton 2007-01-17 2:34 ` Andrew Morton 2007-01-17 3:40 ` Christoph Lameter 2007-01-17 3:40 ` Christoph Lameter 2007-01-17 4:02 ` Paul Jackson 2007-01-17 4:02 ` Paul Jackson 2007-01-17 4:05 ` Andrew Morton 2007-01-17 4:05 ` Andrew Morton 2007-01-17 6:27 ` Christoph Lameter 2007-01-17 6:27 ` Christoph Lameter 2007-01-17 7:00 ` Andrew Morton 2007-01-17 7:00 ` Andrew Morton 2007-01-17 8:01 ` Paul Jackson 2007-01-17 8:01 ` Paul Jackson 2007-01-17 9:57 ` Andrew Morton 2007-01-17 9:57 ` Andrew Morton 2007-01-17 19:43 ` Christoph Lameter 2007-01-17 19:43 ` Christoph Lameter 2007-01-17 22:10 ` Andrew Morton 2007-01-17 22:10 ` Andrew Morton 2007-01-18 1:10 ` Christoph Lameter 2007-01-18 1:10 ` Christoph Lameter 2007-01-18 1:25 ` Andrew Morton 2007-01-18 1:25 ` Andrew Morton 2007-01-18 5:21 ` Christoph Lameter 2007-01-18 5:21 ` Christoph Lameter 2007-01-16 23:44 ` David Chinner 2007-01-16 23:44 ` David Chinner 2007-01-16 22:01 ` Andi Kleen 2007-01-16 22:01 ` Andi Kleen 2007-01-16 22:18 ` Christoph Lameter 2007-01-16 22:18 ` Christoph Lameter 2007-02-02 1:38 ` Ethan Solomita 2007-02-02 1:38 ` Ethan Solomita 2007-02-02 2:16 ` Christoph Lameter 2007-02-02 2:16 ` Christoph Lameter 2007-02-02 4:03 ` Andrew Morton 2007-02-02 4:03 ` Andrew Morton 2007-02-02 5:29 ` Christoph Lameter 2007-02-02 5:29 ` Christoph Lameter 2007-02-02 6:02 ` Neil Brown 2007-02-02 6:02 ` Neil Brown 2007-02-02 6:17 ` Christoph Lameter 2007-02-02 6:17 ` Christoph Lameter 2007-02-02 6:41 ` Neil Brown 2007-02-02 6:41 ` Neil Brown 2007-02-02 7:12 ` Andrew Morton 2007-02-02 7:12 ` Andrew Morton 2007-03-21 21:11 ` Ethan Solomita 2007-03-21 21:11 ` Ethan Solomita 2007-03-21 21:29 ` Christoph Lameter 2007-03-21 21:29 ` Christoph Lameter 2007-03-21 21:52 ` Andrew Morton 2007-03-21 21:52 ` Andrew Morton 2007-03-21 21:57 ` Christoph Lameter 2007-03-21 21:57 ` Christoph Lameter 2007-04-19 2:07 ` Ethan Solomita 2007-04-19 2:07 ` Ethan Solomita 2007-04-19 2:55 ` Christoph Lameter 2007-04-19 2:55 ` Christoph Lameter 2007-04-19 7:52 ` Ethan Solomita 2007-04-19 7:52 ` Ethan Solomita 2007-04-19 16:03 ` Christoph Lameter 2007-04-19 16:03 ` Christoph Lameter 2007-04-21 1:37 ` Ethan Solomita 2007-04-21 1:37 ` Ethan Solomita 2007-04-21 1:48 ` Christoph Lameter 2007-04-21 1:48 ` Christoph Lameter 2007-04-21 8:15 ` Ethan Solomita 2007-04-21 8:15 ` Ethan Solomita 2007-04-21 15:40 ` Christoph Lameter 2007-04-21 15:40 ` Christoph Lameter
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20070116054814.15358.81212.sendpatchset@schroedinger.engr.sgi.com \ --to=clameter@sgi.com \ --cc=ak@suse.de \ --cc=akpm@osdl.org \ --cc=dgc@sgi.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=menage@google.com \ --cc=nickpiggin@yahoo.com.au \ --cc=pj@sgi.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.