On Thu, 2007-10-04 at 15:00 +0200, Miklos Szeredi wrote: > > > 1) File backed pages -> file > > > > > > dirty + writeback count remains constant > > > > > > 2) Anonymous pages -> swap > > > > > > writeback count increases, dirty balancing will hold back file > > > writeback in favor of swap > > > > > > So the real question is: does case 2 need rate limiting, or is it OK > > > to let the device queue fill with swap pages as fast as possible? > > > > > Because balance_dirty_pages() maintains: > > > > nr_dirty + nr_unstable + nr_writeback < > > total_dirty + nr_cpus * ratelimit_pages > > > > throttle_vm_writeout() _should_ not deadlock on that, unless you're > > caught in the error term: nr_cpus * ratelimit_pages. > > And it does get caught on that in small memory machines. This > deadlock is easily reproducable on a 32MB UML instance. Ah, yes, for those that is indeed easily doable. > I haven't yet > tested with the per-bdi patches, but I don't think they make a > difference in this case. Correct, they would not. > > Which can only happen when it is larger than 10% of dirty_thresh. > > > > Which is even more unlikely since it doesn't account nr_dirty (as I > > think it should). > > I think nr_dirty is totally irrelevant. Since we don't care about > case 1), and in case 2) nr_dirty doesn't play any role. Ah, but its correct to have since we compare against dirty_thresh, which is defined to be a unit of nr_dirty + nr_unstable + nr_writeback. if we take one of these out, then we get an undefined amount of space extra. > > As for 2), yes I think having a limit on the total number of pages in > > flight is a good thing. > > Why? for my swapping over network thingies I need to put a bound on the amount of outgoing traffic in flight because that bounds the amount of memory consumed by the sending side. > > But that said, there might be better ways to do that. > > Sure, if we do need to globally limit the number of under-writeback > pages, then I think we need to do it independently of the dirty > accounting. It need not be global, it could be per BDI as well, but yes.
Attachment:
signature.asc
Description: This is a digitally signed message part
- Follow-Ups:
- Re: [PATCH] remove throttle_vm_writeout()
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] remove throttle_vm_writeout()
- References:
- [PATCH] remove throttle_vm_writeout()
- From: Miklos Szeredi <[email protected]>
- Re: [PATCH] remove throttle_vm_writeout()
- From: Peter Zijlstra <[email protected]>
- Re: [PATCH] remove throttle_vm_writeout()
- From: Miklos Szeredi <[email protected]>
- [PATCH] remove throttle_vm_writeout()
- Prev by Date: Re: Memory controller merge (was Re: -mm merge plans for 2.6.24)
- Next by Date: Re: video resume stuff
- Previous by thread: Re: [PATCH] remove throttle_vm_writeout()
- Next by thread: Re: [PATCH] remove throttle_vm_writeout()
- Index(es):