* [patch 1/1] Writeback fix for concurrent large and small file writes
@ 2007-11-28 19:29 Michael Rubin
[not found] ` <E1IxXMP-0002i8-4S@localhost>
2007-11-29 2:13 ` Frans Pop
0 siblings, 2 replies; 12+ messages in thread
From: Michael Rubin @ 2007-11-28 19:29 UTC (permalink / raw)
To: a.p.zijlstra, akpm, linux-kernel, linux-mm, wfg
^ permalink raw reply [flat|nested] 12+ messages in thread[parent not found: <E1IxXMP-0002i8-4S@localhost>]
* Re: [patch 1/1] Writeback fix for concurrent large and small file writes
[not found] ` <E1IxXMP-0002i8-4S@localhost>
@ 2007-11-29 0:34 ` Fengguang Wu
2007-11-29 19:51 ` Michael Rubin
2007-11-29 20:16 ` Michael Rubin
0 siblings, 2 replies; 12+ messages in thread
From: Fengguang Wu @ 2007-11-29 0:34 UTC (permalink / raw)
To: Michael Rubin; +Cc: a.p.zijlstra, akpm, linux-kernel, linux-mm, Chris Mason
On Wed, Nov 28, 2007 at 11:29:57AM -0800, Michael Rubin wrote:
> >From mrubin@matchstick.corp.google.com Wed Nov 28 11:10:06 2007
> Message-Id: <20071128190121.716364000@matchstick.corp.google.com>
> Date: Wed, 28 Nov 2007 11:01:21 -0800
> From: mrubin@google.com
> To: mrubin@google.com
> Subject: [patch 1/1] Writeback fix for concurrent large and small file writes.
>
> From: Michael Rubin <mrubin@google.com>
>
> Fixing a bug where writing to large files while concurrently writing to
> smaller ones creates a situation where writeback cannot keep up with the
Could you demonstrate the situation? Or if I guess it right, could it
be fixed by the following patch? (not a nack: If so, your patch could
also be considered as a general purpose improvement, instead of a bug
fix.)
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 0fca820..62e62e2 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -301,7 +301,7 @@ __sync_single_inode(struct inode *inode, struct writeback_control *wbc)
* Someone redirtied the inode while were writing back
* the pages.
*/
- redirty_tail(inode);
+ requeue_io(inode);
} else if (atomic_read(&inode->i_count)) {
/*
* The inode is clean, inuse
Thank you,
Fengguang
> traffic and memory baloons until the we hit the threshold watermark. This
> can result in surprising latency spikes when syncing. This latency
> can take minutes on large memory systems. Upon request I can provide
> a test to reproduce this situation. The flush tree fixes this issue and
> fixes several other minor issues with fairness also.
>
> 1) Adding a data structure to guarantee fairness when writing inodes
> to disk. The flush_tree is based on an rbtree. The only difference is
> how duplicate keys are chained off the same rb_node.
>
> 2) Added a FS flag to mark file systems that are not disk backed so we
> don't have to flush them. Not sure I marked all of them. But just marking
> these improves writeback performance.
>
> 3) Added an inode flag to allow inodes to be marked so that they are
> never written back to disk. See get_pipe_inode.
>
> Under autotest this patch has passed: fsx, bonnie, and iozone. I am
> currently writing more writeback focused tests (which so far have been
> passed) to add into autotest.
>
> Signed-off-by: Michael Rubin <mrubin@google.com>
> ---
--
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>
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [patch 1/1] Writeback fix for concurrent large and small file writes
2007-11-29 0:34 ` Fengguang Wu
@ 2007-11-29 19:51 ` Michael Rubin
2007-11-29 20:16 ` Michael Rubin
1 sibling, 0 replies; 12+ messages in thread
From: Michael Rubin @ 2007-11-29 19:51 UTC (permalink / raw)
To: Fengguang Wu; +Cc: a.p.zijlstra, akpm, linux-kernel, linux-mm, Chris Mason
So Feng's one line change fixes the problem at hand. I will do some
more testing with it and then submit his patch credited with him for
2.6.24. If that's cool with Feng.
Also I will take the comment changes and re-submit my patch for 2.6.25
for general purpose improvement and see what happens.
mrubin
On Nov 28, 2007 4:34 PM, Fengguang Wu <wfg@mail.ustc.edu.cn> wrote:
> On Wed, Nov 28, 2007 at 11:29:57AM -0800, Michael Rubin wrote:
> > >From mrubin@matchstick.corp.google.com Wed Nov 28 11:10:06 2007
> > Message-Id: <20071128190121.716364000@matchstick.corp.google.com>
> > Date: Wed, 28 Nov 2007 11:01:21 -0800
> > From: mrubin@google.com
> > To: mrubin@google.com
> > Subject: [patch 1/1] Writeback fix for concurrent large and small file writes.
> >
> > From: Michael Rubin <mrubin@google.com>
> >
> > Fixing a bug where writing to large files while concurrently writing to
> > smaller ones creates a situation where writeback cannot keep up with the
>
> Could you demonstrate the situation? Or if I guess it right, could it
> be fixed by the following patch? (not a nack: If so, your patch could
> also be considered as a general purpose improvement, instead of a bug
> fix.)
>
> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
> index 0fca820..62e62e2 100644
> --- a/fs/fs-writeback.c
> +++ b/fs/fs-writeback.c
> @@ -301,7 +301,7 @@ __sync_single_inode(struct inode *inode, struct writeback_control *wbc)
> * Someone redirtied the inode while were writing back
> * the pages.
> */
> - redirty_tail(inode);
> + requeue_io(inode);
> } else if (atomic_read(&inode->i_count)) {
> /*
> * The inode is clean, inuse
>
> Thank you,
> Fengguang
>
>
> > traffic and memory baloons until the we hit the threshold watermark. This
> > can result in surprising latency spikes when syncing. This latency
> > can take minutes on large memory systems. Upon request I can provide
> > a test to reproduce this situation. The flush tree fixes this issue and
> > fixes several other minor issues with fairness also.
> >
> > 1) Adding a data structure to guarantee fairness when writing inodes
> > to disk. The flush_tree is based on an rbtree. The only difference is
> > how duplicate keys are chained off the same rb_node.
> >
> > 2) Added a FS flag to mark file systems that are not disk backed so we
> > don't have to flush them. Not sure I marked all of them. But just marking
> > these improves writeback performance.
> >
> > 3) Added an inode flag to allow inodes to be marked so that they are
> > never written back to disk. See get_pipe_inode.
> >
> > Under autotest this patch has passed: fsx, bonnie, and iozone. I am
> > currently writing more writeback focused tests (which so far have been
> > passed) to add into autotest.
> >
> > Signed-off-by: Michael Rubin <mrubin@google.com>
> > ---
>
>
--
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>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [patch 1/1] Writeback fix for concurrent large and small file writes
2007-11-29 0:34 ` Fengguang Wu
2007-11-29 19:51 ` Michael Rubin
@ 2007-11-29 20:16 ` Michael Rubin
[not found] ` <E1IxukV-0003Ns-5C@localhost>
1 sibling, 1 reply; 12+ messages in thread
From: Michael Rubin @ 2007-11-29 20:16 UTC (permalink / raw)
To: Fengguang Wu; +Cc: a.p.zijlstra, akpm, linux-kernel, linux-mm, Chris Mason
Due to my faux pas of top posting (see
http://www.zip.com.au/~akpm/linux/patches/stuff/top-posting.txt) I am
resending this email.
On Nov 28, 2007 4:34 PM, Fengguang Wu <wfg@mail.ustc.edu.cn> wrote:
> Could you demonstrate the situation? Or if I guess it right, could it
> be fixed by the following patch? (not a nack: If so, your patch could
> also be considered as a general purpose improvement, instead of a bug
> fix.)
>
> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
> index 0fca820..62e62e2 100644
> --- a/fs/fs-writeback.c
> +++ b/fs/fs-writeback.c
> @@ -301,7 +301,7 @@ __sync_single_inode(struct inode *inode, struct writeback_control *wbc)
> * Someone redirtied the inode while were writing back
> * the pages.
> */
> - redirty_tail(inode);
> + requeue_io(inode);
> } else if (atomic_read(&inode->i_count)) {
> /*
> * The inode is clean, inuse
>
By testing the situation I can confirm that the one line patch above
fixes the problem.
I will continue testing some other cases to see if it cause any other
issues but I don't expect it to.
I will post this change for 2.6.24 and list Feng as author. If that's
ok with Feng.
As for the original patch I will resubmit it for 2.6.25 as a general
purpose improvement.
mrubin
--
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>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [patch 1/1] Writeback fix for concurrent large and small file writes
2007-11-28 19:29 [patch 1/1] Writeback fix for concurrent large and small file writes Michael Rubin
[not found] ` <E1IxXMP-0002i8-4S@localhost>
@ 2007-11-29 2:13 ` Frans Pop
2007-11-29 6:58 ` Michael Rubin
1 sibling, 1 reply; 12+ messages in thread
From: Frans Pop @ 2007-11-29 2:13 UTC (permalink / raw)
To: Michael Rubin; +Cc: a.p.zijlstra, akpm, linux-kernel, linux-mm, wfg
Two typos in comments.
Cheers,
FJP
Michael Rubin wrote:
> + * The flush tree organizes the dirtied_when keys with the rb_tree. Any
> + * inodes with a duplicate dirtied_when value are link listed together.
> This + * link list is sorted by the inode's i_flushed_when. When both the
> + * dirited_when and the i_flushed_when are indentical the order in the
> + * linked list determines the order we flush the inodes.
s/dirited_when/dirtied_when/
> + * Here is where we interate to find the next inode to process. The
> + * strategy is to first look for any other inodes with the same
> dirtied_when + * value. If we have already processed that node then we
> need to find + * the next highest dirtied_when value in the tree.
s/interate/iterate/
--
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>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [patch 1/1] Writeback fix for concurrent large and small file writes
2007-11-29 2:13 ` Frans Pop
@ 2007-11-29 6:58 ` Michael Rubin
0 siblings, 0 replies; 12+ messages in thread
From: Michael Rubin @ 2007-11-29 6:58 UTC (permalink / raw)
To: Frans Pop; +Cc: a.p.zijlstra, akpm, linux-kernel, linux-mm, wfg
Thank you. Integrated the fixes in my patch.
On Nov 28, 2007 6:13 PM, Frans Pop <elendil@planet.nl> wrote:
> Two typos in comments.
>
> Cheers,
> FJP
>
> Michael Rubin wrote:
> > + * The flush tree organizes the dirtied_when keys with the rb_tree. Any
> > + * inodes with a duplicate dirtied_when value are link listed together.
> > This + * link list is sorted by the inode's i_flushed_when. When both the
> > + * dirited_when and the i_flushed_when are indentical the order in the
> > + * linked list determines the order we flush the inodes.
>
> s/dirited_when/dirtied_when/
>
> > + * Here is where we interate to find the next inode to process. The
> > + * strategy is to first look for any other inodes with the same
> > dirtied_when + * value. If we have already processed that node then we
> > need to find + * the next highest dirtied_when value in the tree.
>
> s/interate/iterate/
>
>
--
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>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [patch 1/1] Writeback fix for concurrent large and small file writes.
@ 2007-12-11 2:02 Michael Rubin, Michael Rubin
2007-12-12 20:55 ` Peter Zijlstra
[not found] ` <E1J89kR-0001v3-CJ@localhost>
0 siblings, 2 replies; 12+ messages in thread
From: Michael Rubin, Michael Rubin @ 2007-12-11 2:02 UTC (permalink / raw)
To: a.p.zijlstra, akpm, linux-kernel, linux-mm, mrubin, wfg
Fixing a bug where writing to large files while concurrently writing to
smaller ones creates a situation where writeback cannot keep up with the
traffic and memory baloons until the we hit the threshold watermark. This
can result in surprising latency spikes when syncing. This latency
can take minutes on large memory systems. Upon request I can provide
a test to reproduce this situation.
The only concern I have is that this makes the wb_kupdate slightly more
agressive. I am not sure it is enough to cause any problems. I think
there is enough checks to throttle the background activity.
Feng also the one line change that you recommended here
http://marc.info/?l=linux-kernel&m=119629655402153&w=2 had no effect.
Signed-off-by: Michael Rubin <mrubin@google.com>
---
Index: 2624rc3_feng/fs/fs-writeback.c
===================================================================
--- 2624rc3_feng.orig/fs/fs-writeback.c 2007-11-29 14:44:24.000000000 -0800
+++ 2624rc3_feng/fs/fs-writeback.c 2007-12-10 17:21:45.000000000 -0800
@@ -408,8 +408,7 @@ sync_sb_inodes(struct super_block *sb, s
{
const unsigned long start = jiffies; /* livelock avoidance */
- if (!wbc->for_kupdate || list_empty(&sb->s_io))
- queue_io(sb, wbc->older_than_this);
+ queue_io(sb, wbc->older_than_this);
while (!list_empty(&sb->s_io)) {
struct inode *inode = list_entry(sb->s_io.prev,
Index: 2624rc3_feng/mm/page-writeback.c
===================================================================
--- 2624rc3_feng.orig/mm/page-writeback.c 2007-11-16 21:16:36.000000000 -0800
+++ 2624rc3_feng/mm/page-writeback.c 2007-12-10 17:37:17.000000000 -0800
@@ -638,7 +638,7 @@ static void wb_kupdate(unsigned long arg
wbc.nr_to_write = MAX_WRITEBACK_PAGES;
writeback_inodes(&wbc);
if (wbc.nr_to_write > 0) {
- if (wbc.encountered_congestion || wbc.more_io)
+ if (wbc.encountered_congestion)
congestion_wait(WRITE, HZ/10);
else
break; /* All the old data is written */
--
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>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [patch 1/1] Writeback fix for concurrent large and small file writes.
2007-12-11 2:02 Michael Rubin, Michael Rubin
@ 2007-12-12 20:55 ` Peter Zijlstra
2007-12-12 23:03 ` Michael Rubin
[not found] ` <E1J89kR-0001v3-CJ@localhost>
1 sibling, 1 reply; 12+ messages in thread
From: Peter Zijlstra @ 2007-12-12 20:55 UTC (permalink / raw)
To: Michael Rubin; +Cc: akpm, linux-kernel, linux-mm, wfg
On Mon, 2007-12-10 at 18:02 -0800, Michael Rubin wrote:
> From: Michael Rubin <mrubin@google.com>
>
> Fixing a bug where writing to large files while concurrently writing to
> smaller ones creates a situation where writeback cannot keep up with the
> traffic and memory baloons until the we hit the threshold watermark. This
> can result in surprising latency spikes when syncing. This latency
> can take minutes on large memory systems. Upon request I can provide
> a test to reproduce this situation.
The part I miss here is the rationale on _how_ you solve the problem.
The patch itself is simple enough, but I've been staring at this code
for a while now, and I'm just not getting it.
> The only concern I have is that this makes the wb_kupdate slightly more
> agressive. I am not sure it is enough to cause any problems. I think
> there is enough checks to throttle the background activity.
>
> Feng also the one line change that you recommended here
> http://marc.info/?l=linux-kernel&m=119629655402153&w=2 had no effect.
>
> Signed-off-by: Michael Rubin <mrubin@google.com>
> ---
> Index: 2624rc3_feng/fs/fs-writeback.c
> ===================================================================
> --- 2624rc3_feng.orig/fs/fs-writeback.c 2007-11-29 14:44:24.000000000 -0800
> +++ 2624rc3_feng/fs/fs-writeback.c 2007-12-10 17:21:45.000000000 -0800
> @@ -408,8 +408,7 @@ sync_sb_inodes(struct super_block *sb, s
> {
> const unsigned long start = jiffies; /* livelock avoidance */
>
> - if (!wbc->for_kupdate || list_empty(&sb->s_io))
> - queue_io(sb, wbc->older_than_this);
> + queue_io(sb, wbc->older_than_this);
>
> while (!list_empty(&sb->s_io)) {
> struct inode *inode = list_entry(sb->s_io.prev,
> Index: 2624rc3_feng/mm/page-writeback.c
> ===================================================================
> --- 2624rc3_feng.orig/mm/page-writeback.c 2007-11-16 21:16:36.000000000 -0800
> +++ 2624rc3_feng/mm/page-writeback.c 2007-12-10 17:37:17.000000000 -0800
> @@ -638,7 +638,7 @@ static void wb_kupdate(unsigned long arg
> wbc.nr_to_write = MAX_WRITEBACK_PAGES;
> writeback_inodes(&wbc);
> if (wbc.nr_to_write > 0) {
> - if (wbc.encountered_congestion || wbc.more_io)
> + if (wbc.encountered_congestion)
> congestion_wait(WRITE, HZ/10);
> else
> break; /* All the old data is written */
--
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>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [patch 1/1] Writeback fix for concurrent large and small file writes.
2007-12-12 20:55 ` Peter Zijlstra
@ 2007-12-12 23:03 ` Michael Rubin
0 siblings, 0 replies; 12+ messages in thread
From: Michael Rubin @ 2007-12-12 23:03 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: akpm, linux-kernel, linux-mm, wfg
On Dec 12, 2007 12:55 PM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
>
> On Mon, 2007-12-10 at 18:02 -0800, Michael Rubin wrote:
> > From: Michael Rubin <mrubin@google.com>
> The part I miss here is the rationale on _how_ you solve the problem.
>
> The patch itself is simple enough, but I've been staring at this code
> for a while now, and I'm just not getting it.
Apologies for the lack of rationale. I have been staring at this code
for awhile also and it makes my head hurt. I have a patch coming
(hopefully today) that proposes using one data structure with a more
consistent priority scheme for 2.6.25. To me it's simpler, but I am
biased.
The problem we encounter when we append to a large file at a fast rate
while also writing to smaller files is that the wb_kupdate thread does
not keep up with disk traffic. In this workload often the inodes end
up at fs/fs-writeback.c:287 after do_writepages, since do_writepages
did not write all the pages. This can be due to congestion but I
think there are other causes also since I have observed so.
The first issue is that the inode is put on the s_more_io queue. This
ensures that more_io is set at the end of sync_sb_inodes. The result
from that is the wb_kupdate routine will perform a sleep at
mm/page-writeback.c:642. This slows us down enough that the wb_kupdate
cannot keep up with traffic.
The other issue is that the inode that has been placed on the
s_more_io queue cannot be processed by sync_sb_inodes until the entire
s_io list is empty. With lots of small files that are not being
dirtied as quickly as the one large inode on the s_more_io queue the
inode with the most pages being dirtied is not given attention and
wb_kupdate cannot keep up again.
mrubin
--
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>
^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <E1J89kR-0001v3-CJ@localhost>]
* Re: [patch 1/1] Writeback fix for concurrent large and small file writes.
[not found] ` <E1J89kR-0001v3-CJ@localhost>
@ 2007-12-28 7:35 ` Fengguang Wu
0 siblings, 0 replies; 12+ messages in thread
From: Fengguang Wu @ 2007-12-28 7:35 UTC (permalink / raw)
To: Michael Rubin; +Cc: a.p.zijlstra, akpm, linux-kernel, linux-mm
Hi Michael,
// sorry for the delay...
On Mon, Dec 10, 2007 at 06:02:55PM -0800, Michael Rubin wrote:
> From: Michael Rubin <mrubin@google.com>
>
> Fixing a bug where writing to large files while concurrently writing to
> smaller ones creates a situation where writeback cannot keep up with the
> traffic and memory baloons until the we hit the threshold watermark. This
> can result in surprising latency spikes when syncing. This latency
> can take minutes on large memory systems. Upon request I can provide
> a test to reproduce this situation.
>
> The only concern I have is that this makes the wb_kupdate slightly more
> agressive. I am not sure it is enough to cause any problems. I think
> there is enough checks to throttle the background activity.
>
> Feng also the one line change that you recommended here
> http://marc.info/?l=linux-kernel&m=119629655402153&w=2 had no effect.
>
> Signed-off-by: Michael Rubin <mrubin@google.com>
> ---
> Index: 2624rc3_feng/fs/fs-writeback.c
> ===================================================================
> --- 2624rc3_feng.orig/fs/fs-writeback.c 2007-11-29 14:44:24.000000000 -0800
> +++ 2624rc3_feng/fs/fs-writeback.c 2007-12-10 17:21:45.000000000 -0800
> @@ -408,8 +408,7 @@ sync_sb_inodes(struct super_block *sb, s
> {
> const unsigned long start = jiffies; /* livelock avoidance */
>
> - if (!wbc->for_kupdate || list_empty(&sb->s_io))
> - queue_io(sb, wbc->older_than_this);
> + queue_io(sb, wbc->older_than_this);
Basically it's a workaround by changing the service priority.
Assume A to be the large file and B,C,D,E,... to be the small files.
- old behavior:
sync 4MB of A; sync B,C; congestion_wait();
sync 4MB of A; sync D,E; congestion_wait();
sync 4MB of A; sync F,G; congestion_wait();
...
- new behavior:
sync 4MB of A;
sync 4MB of A;
sync 4MB of A;
sync 4MB of A;
sync 4MB of A;
... // repeat until A is clean
sync B,C,D,E,F,G;
So the bug is gone, but now A could possibly starve other files :-(
> while (!list_empty(&sb->s_io)) {
> struct inode *inode = list_entry(sb->s_io.prev,
> Index: 2624rc3_feng/mm/page-writeback.c
> ===================================================================
> --- 2624rc3_feng.orig/mm/page-writeback.c 2007-11-16 21:16:36.000000000 -0800
> +++ 2624rc3_feng/mm/page-writeback.c 2007-12-10 17:37:17.000000000 -0800
> @@ -638,7 +638,7 @@ static void wb_kupdate(unsigned long arg
> wbc.nr_to_write = MAX_WRITEBACK_PAGES;
> writeback_inodes(&wbc);
> if (wbc.nr_to_write > 0) {
> - if (wbc.encountered_congestion || wbc.more_io)
> + if (wbc.encountered_congestion)
No, this could make wb_kupdate() abort even when there are more data
to be synced. That will make David Chinner unhappy ;-)
> congestion_wait(WRITE, HZ/10);
> else
> break; /* All the old data is written */
Just a minute, I'll propose a way out of this bug :-)
Fengguang
--
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>
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2007-12-28 7:35 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-28 19:29 [patch 1/1] Writeback fix for concurrent large and small file writes Michael Rubin
[not found] ` <E1IxXMP-0002i8-4S@localhost>
2007-11-29 0:34 ` Fengguang Wu
2007-11-29 19:51 ` Michael Rubin
2007-11-29 20:16 ` Michael Rubin
[not found] ` <E1IxukV-0003Ns-5C@localhost>
2007-11-30 1:32 ` Fengguang Wu
2007-12-04 9:06 ` Michael Rubin
2007-11-29 2:13 ` Frans Pop
2007-11-29 6:58 ` Michael Rubin
-- strict thread matches above, loose matches on Subject: below --
2007-12-11 2:02 Michael Rubin, Michael Rubin
2007-12-12 20:55 ` Peter Zijlstra
2007-12-12 23:03 ` Michael Rubin
[not found] ` <E1J89kR-0001v3-CJ@localhost>
2007-12-28 7:35 ` Fengguang Wu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).