On Wed, Oct 03, 2007 at 07:47:45AM +1000, David Chinner wrote:You mean slow writers and fast RAID? That would be exactly the case these patches try to improve. The old writeback behaviors are sluggish when there is - single big dirty file; - single congested device the queues may well build up slowly, hit background_limit, and continue to build up, until hit dirty_limit. That means: - kupdate writeback could leave behind many expired dirty data - background writeback used to return prematurely - eventually it relies on balance_dirty_pages() to do the job, which means - writers get throttled unnecessarily - dirty_limit pages are pinned unnecessarily This patchset makes kupdate/background writeback more responsible, so that if (avg-write-speed < device-capabilities), the dirty data are synced timely, and we don't have to go for balance_dirty_pages(). So for your question of queue depth, the answer is: the queue length will not build up in the first place. Also the name of congestion_wait() could be misleading: - when not congested, congestion_wait() will wakeup on write completions; - when congested, congestion_wait() could also wakeup on write completions on other non-congested devices. So congestion_wait(100ms) normally only takes 0.1-10ms. For the more_io case, congestion_wait() serves more like 'to take a breath'. Tests show that the system could go mad without it. Regards, Fengguang -
| Dave Young | Re: 2.6.24-rc3-mm1 |
| Linus Torvalds | Linux 2.6.27-rc8 |
| monstr | [PATCH 52/56] microblaze_v2: pci headers |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
git: | |
| Steffen Prohaska | Re: CRLF problems with Git on Win32 |
| Junio C Hamano | Re: [kernel.org users] [RFD] On deprecating "git-foo" for builtins |
| Junio C Hamano | Re: Cleaning up git user-interface warts |
| Jakub Narebski | Re: VCS comparison table |
| Larry McVoy | Re: tcp bw in 2.6 |
| Gerrit Renker | Re: [DCCP] [RFC] [Patchv2 1/1]: Queuing policies -- reworked version of Tomasz's p... |
| Jussi Kivilinna | [PATCH v2 3/3] net_sched: Add size table for qdiscs |
| Gerrit Renker | [PATCH 13/37] dccp: Deprecate Ack Ratio sysctl |
| Richard Stallman | Real men don't attack straw men |
| Tanvir | Re: Adobe Flash on OpenBSD |
| Zbigniew Baniewski | Re: What is our ultimate goal?? |
| Kevin Neff | Patching a SSH 'Weakness' |
| high memory | 10 hours ago | Linux kernel |
| semaphore access speed | 13 hours ago | Applications and Utilities |
| the kernel how to power off the machine | 14 hours ago | Linux kernel |
| Easter Eggs in windows XP | 16 hours ago | Windows |
| Shared swap partition | 17 hours ago | Linux general |
| Root password | 17 hours ago | Linux general |
| Where/when DNOTIFY is used? | 19 hours ago | Linux kernel |
| How to convert Linux Kernel built-in module into a loadable module | 22 hours ago | Linux kernel |
| Linux 2.6.24 and I/O schedulers | 22 hours ago | Linux kernel |
| USB Driver -- Interrupt Polling -- A Little Help Please | 1 day ago | Linux general |
