Per device dirty throttling patches These patches aim to improve balance_dirty_pages() and directly address three issues: 1) inter device starvation 2) stacked device deadlocks 3) inter process starvation 1 and 2 are a direct result from removing the global dirty limit and using per device dirty limits. By giving each device its own dirty limit is will no longer starve another device, and the cyclic dependancy on the dirty limit is broken. In order to efficiently distribute the dirty limit across the independant devices a floating proportion is used, this will allocate a share of the total limit proportional to the device's recent activity. 3 is done by also scaling the dirty limit proportional to the current task's recent dirty rate. Changes since -v9: - cleaned up the perpcu_counter_init code - little fixups - fwd port to .23-rc4-mm1 Changes since -v8: - cleanup of the proportion code - fix percpu_counter_add(&counter, -(unsigned long)) - fix per task dirty rate code - fwd port to .23-rc2-mm2 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: [PATCH 00/23] per device dirty throttling -v10
- From: "John Stoffel" <john@stoffel.org>
- [PATCH 19/23] mm: expose BDI statistics in sysfs.
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 23/23] debug: sysfs files for the current ratio/size/total
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 22/23] mm: dirty balancing for tasks
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 03/23] lib: percpu_counter_sub
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 14/23] mtd: clean up the backing_dev_info usage
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 13/23] mtd: bdi init hooks
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 12/23] containers: bdi init hooks
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 10/23] lib: percpu_counter_init_irq
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 15/23] mtd: give mtdconcat devices their own backing_dev_info
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 09/23] lib: percpu_counter_init error handling
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 07/23] lib: percpu_counter_sum_positive
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 04/23] lib: percpu_counter variable batch
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 16/23] mm: scalable bdi statistics counters.
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 20/23] lib: floating proportions
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 01/23] nfs: remove congestion_end()
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 21/23] mm: per device dirty threshold
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 05/23] lib: make percpu_counter_add take s64
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 11/23] mm: bdi init hooks
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 17/23] mm: count reclaimable pages per BDI
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 18/23] mm: count writeback pages per BDI
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 08/23] lib: percpu_count_sum()
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 02/23] lib: percpu_counter_add
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- [PATCH 06/23] lib: percpu_counter_set
- From: Peter Zijlstra <a.p.zijlstra@chello.nl>
- Re: [PATCH 00/23] per device dirty throttling -v10
- Prev by Date: [PATCH 02/23] lib: percpu_counter_add
- Next by Date: [PATCH 08/23] lib: percpu_count_sum()
- Previous by thread: 2.6.23-rc5 hangs on boot, apparently when initializing the EC
- Next by thread: [PATCH 06/23] lib: percpu_counter_set
- Index(es):
![]() |