2010-06-10 13:44:15

by Jens Axboe

[permalink] [raw]
Subject: [GIT PULL] block/io bits for 2.6.35-rc

Hi Linus,

Some important fixes for 2.6.35:

- A set of patches fixing the WB_SYNC_NONE writeback from Christoph. So
we should finally have both functional and working WB_SYNC_NONE from
umount context.

- Two fixes for the pipe resizing and fcntl() interface, where the
last conversion to a byte API introduced a dumb bug.

- Fix for the module count problem from Nick.

Please pull.


git://git.kernel.dk/linux-2.6-block.git for-linus

Christoph Hellwig (8):
writeback: fix writeback completion notifications
writeback: queue work on stack in writeback_inodes_sb
writeback: enforce s_umount locking in writeback_inodes_sb
writeback: fix writeback_inodes_wb from writeback_inodes_sb
writeback: simplify wakeup_flusher_threads
writeback: simplify and split bdi_start_writeback
writeback: add missing requeue_io in writeback_inodes_wb
writeback: fix pin_sb_for_writeback

Jens Axboe (1):
block: remove duplicate BUG_ON() in bd_finish_claiming()

Miklos Szeredi (2):
pipe: fix pipe buffer resizing
pipe: fix check in "set size" fcntl

Nick Piggin (2):
block: bd_start_claiming fix module refcount
block: bd_start_claiming cleanup

fs/block_dev.c | 72 ++++++++----
fs/fs-writeback.c | 254 ++++++++++++++++++-------------------------
fs/pipe.c | 20 +++-
fs/ubifs/budget.c | 2 +
include/linux/backing-dev.h | 4 +-
mm/page-writeback.c | 5 +-
6 files changed, 175 insertions(+), 182 deletions(-)

--
Jens Axboe


2010-06-10 15:56:23

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On Thu, Jun 10, 2010 at 6:44 AM, Jens Axboe <[email protected]> wrote:
>
> - A set of patches fixing the WB_SYNC_NONE writeback from Christoph. So
> ?we should finally have both functional and working WB_SYNC_NONE from
> ?umount context.

I _really_ think this is too late, considering how broken it has been.
We already reverted the WB_SYNC_NONE things exactly because it didn't
work, didn't we? I'm going to be off-line in two days, and this part
of the pull request really makes me nervous, if only simply because of
the history of it all (ie it's always been broken, why shouldn't it be
broken now?).

IOW, that's a lot of scary changes, that have historically not been
safe or sufficiently tested, and have caused problems for various
filesystems. Convince me why they should suddenly be ok to merge?

Linus

2010-06-10 16:25:21

by Jens Axboe

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 2010-06-10 17:55, Linus Torvalds wrote:
> On Thu, Jun 10, 2010 at 6:44 AM, Jens Axboe <[email protected]> wrote:
>>
>> - A set of patches fixing the WB_SYNC_NONE writeback from Christoph. So
>> we should finally have both functional and working WB_SYNC_NONE from
>> umount context.
>
> I _really_ think this is too late, considering how broken it has been.
> We already reverted the WB_SYNC_NONE things exactly because it didn't
> work, didn't we? I'm going to be off-line in two days, and this part
> of the pull request really makes me nervous, if only simply because of
> the history of it all (ie it's always been broken, why shouldn't it be
> broken now?).
>
> IOW, that's a lot of scary changes, that have historically not been
> safe or sufficiently tested, and have caused problems for various
> filesystems. Convince me why they should suddenly be ok to merge?

I agree, it's late and it makes me nervous too. I had them cook for
a day, didn't see any problems. And Christoph would not send it in
unless it passes at least xfs qa, which is what found the problems
last time (the ones we reverted).

It's fixing a regression where umount takes a LONG time if you have
a lot of dirty inodes, since it basically degenerates to a data
integrity writeback instead of a simple WB_SYNC_NONE. If it wasn't
fixing a nasty regression (the distros are all wanting a real fix
for this, it's a user problem), I would not be submitting this code
at this point in time.

--
Jens Axboe

2010-06-10 16:41:17

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On Thu, Jun 10, 2010 at 06:25:17PM +0200, Jens Axboe wrote:
> I agree, it's late and it makes me nervous too. I had them cook for
> a day, didn't see any problems. And Christoph would not send it in
> unless it passes at least xfs qa, which is what found the problems
> last time (the ones we reverted).
>
> It's fixing a regression where umount takes a LONG time if you have
> a lot of dirty inodes, since it basically degenerates to a data
> integrity writeback instead of a simple WB_SYNC_NONE. If it wasn't
> fixing a nasty regression (the distros are all wanting a real fix
> for this, it's a user problem), I would not be submitting this code
> at this point in time.

Maybe give it a bit more beating in linux-next and send it off to Linus
once he's back from his vacation?

2010-06-10 16:44:56

by Brian Bloniarz

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 06/10/2010 12:25 PM, Jens Axboe wrote:
> On 2010-06-10 17:55, Linus Torvalds wrote:
>> On Thu, Jun 10, 2010 at 6:44 AM, Jens Axboe <[email protected]> wrote:
>>>
>>> - A set of patches fixing the WB_SYNC_NONE writeback from Christoph. So
>>> we should finally have both functional and working WB_SYNC_NONE from
>>> umount context.
>>
>> I _really_ think this is too late, considering how broken it has been.
>> We already reverted the WB_SYNC_NONE things exactly because it didn't
>> work, didn't we? I'm going to be off-line in two days, and this part
>> of the pull request really makes me nervous, if only simply because of
>> the history of it all (ie it's always been broken, why shouldn't it be
>> broken now?).
>>
>> IOW, that's a lot of scary changes, that have historically not been
>> safe or sufficiently tested, and have caused problems for various
>> filesystems. Convince me why they should suddenly be ok to merge?
>
> I agree, it's late and it makes me nervous too. I had them cook for
> a day, didn't see any problems. And Christoph would not send it in
> unless it passes at least xfs qa, which is what found the problems
> last time (the ones we reverted).
>
> It's fixing a regression where umount takes a LONG time if you have
> a lot of dirty inodes, since it basically degenerates to a data
> integrity writeback instead of a simple WB_SYNC_NONE. If it wasn't
> fixing a nasty regression (the distros are all wanting a real fix
> for this, it's a user problem), I would not be submitting this code
> at this point in time.
>

Reinforcing that last point: from what I could figure out, Fedora 13
is shipping the buggy WB_SYNC_NONE patch currently. Ubuntu 10.04 is
shipping an in-kernel workaround that has serious performance
drawbacks.

https://bugzilla.kernel.org/show_bug.cgi?id=15906 has links to the
downstream bugs.

2010-06-10 16:55:49

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On Thu, Jun 10, 2010 at 9:25 AM, Jens Axboe <[email protected]> wrote:
>
> It's fixing a regression where umount takes a LONG time if you have
> a lot of dirty inodes, since it basically degenerates to a data
> integrity writeback instead of a simple WB_SYNC_NONE. If it wasn't
> fixing a nasty regression (the distros are all wanting a real fix
> for this, it's a user problem), I would not be submitting this code
> at this point in time.

I'm not sure if you noticed, we had a separate thread with Dave
Chinner that resulted in three hopefully fairly minimal patches going
in instead.

See commits

git log -3 d87815cb2090

and I thought that last one (first one applied: "pay attention to
wbc->nr_to_write") was the one that had fixed the worst XFS issues.

But maybe it was an unrelated thing.

Linus

2010-06-10 16:59:57

by Jens Axboe

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 2010-06-10 18:40, Christoph Hellwig wrote:
> On Thu, Jun 10, 2010 at 06:25:17PM +0200, Jens Axboe wrote:
>> I agree, it's late and it makes me nervous too. I had them cook for
>> a day, didn't see any problems. And Christoph would not send it in
>> unless it passes at least xfs qa, which is what found the problems
>> last time (the ones we reverted).
>>
>> It's fixing a regression where umount takes a LONG time if you have
>> a lot of dirty inodes, since it basically degenerates to a data
>> integrity writeback instead of a simple WB_SYNC_NONE. If it wasn't
>> fixing a nasty regression (the distros are all wanting a real fix
>> for this, it's a user problem), I would not be submitting this code
>> at this point in time.
>
> Maybe give it a bit more beating in linux-next and send it off to Linus
> once he's back from his vacation?

We can do that. Linus, I'll split split off the writeback parts and send
you a new pull request.

--
Jens Axboe

2010-06-10 17:00:43

by Jens Axboe

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 2010-06-10 18:55, Linus Torvalds wrote:
> On Thu, Jun 10, 2010 at 9:25 AM, Jens Axboe <[email protected]> wrote:
>>
>> It's fixing a regression where umount takes a LONG time if you have
>> a lot of dirty inodes, since it basically degenerates to a data
>> integrity writeback instead of a simple WB_SYNC_NONE. If it wasn't
>> fixing a nasty regression (the distros are all wanting a real fix
>> for this, it's a user problem), I would not be submitting this code
>> at this point in time.
>
> I'm not sure if you noticed, we had a separate thread with Dave
> Chinner that resulted in three hopefully fairly minimal patches going
> in instead.
>
> See commits
>
> git log -3 d87815cb2090
>
> and I thought that last one (first one applied: "pay attention to
> wbc->nr_to_write") was the one that had fixed the worst XFS issues.
>
> But maybe it was an unrelated thing.

That's a different bug.

--
Jens Axboe

2010-06-10 17:04:34

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On Thu, Jun 10, 2010 at 9:40 AM, Christoph Hellwig <[email protected]> wrote:
>
> Maybe give it a bit more beating in linux-next and send it off to Linus
> once he's back from his vacation?

Yes, I'd probably be happier with that. As long as it's "just" a
performance regression (and clearly not one that actually affects most
people all that noticeably), I'd much rather not have to worry about
any potential new issues being introduced right now.

So I'm more looking for "let's fix catastrophic events" for -rc3.
After I get back, I'm way more open to "let's fix any real bugs",
because then I can at least react to any fallout.

(I'm planning on trying to roughly keep up on email etc - I'm today
doing all my email using gmail to test how well that works as an
alternative to my usual "inside two firewalls" behavior. But I'm
seriously trying to avoid even having a laptop with me, because if I
have something where I can do kernel development and git pulls, I know
I'm not going to be just on vacation).

Linus

2010-06-27 23:10:09

by Mark Lord

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 10/06/10 12:44 PM, Brian Bloniarz wrote:
> On 06/10/2010 12:25 PM, Jens Axboe wrote:
>> On 2010-06-10 17:55, Linus Torvalds wrote:
>>> On Thu, Jun 10, 2010 at 6:44 AM, Jens Axboe<[email protected]> wrote:
>>>>
>>>> - A set of patches fixing the WB_SYNC_NONE writeback from Christoph. So
>>>> we should finally have both functional and working WB_SYNC_NONE from
>>>> umount context.
>>>
>>> I _really_ think this is too late, considering how broken it has been.
>>> We already reverted the WB_SYNC_NONE things exactly because it didn't
>>> work, didn't we? I'm going to be off-line in two days, and this part
>>> of the pull request really makes me nervous, if only simply because of
>>> the history of it all (ie it's always been broken, why shouldn't it be
>>> broken now?).
>>>
>>> IOW, that's a lot of scary changes, that have historically not been
>>> safe or sufficiently tested, and have caused problems for various
>>> filesystems. Convince me why they should suddenly be ok to merge?
>>
>> I agree, it's late and it makes me nervous too. I had them cook for
>> a day, didn't see any problems. And Christoph would not send it in
>> unless it passes at least xfs qa, which is what found the problems
>> last time (the ones we reverted).
>>
>> It's fixing a regression where umount takes a LONG time if you have
>> a lot of dirty inodes, since it basically degenerates to a data
>> integrity writeback instead of a simple WB_SYNC_NONE. If it wasn't
>> fixing a nasty regression (the distros are all wanting a real fix
>> for this, it's a user problem), I would not be submitting this code
>> at this point in time.
>>
>
> Reinforcing that last point: from what I could figure out, Fedora 13
> is shipping the buggy WB_SYNC_NONE patch currently. Ubuntu 10.04 is
> shipping an in-kernel workaround that has serious performance
> drawbacks.
>
> https://bugzilla.kernel.org/show_bug.cgi?id=15906 has links to the
> downstream bugs.
..

Jens, this bug has been biting my servers badly here for the past
few months -- umount after a backup (from ext4 to ext4) takes 3-4 minutes
instead of the expected 3-4 seconds.

Is there a patch file for this against 2.6.34 that I (and others) could use?

Thanks

2010-06-28 07:03:16

by Jens Axboe

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 2010-06-28 01:10, Mark Lord wrote:
> On 10/06/10 12:44 PM, Brian Bloniarz wrote:
>> On 06/10/2010 12:25 PM, Jens Axboe wrote:
>>> On 2010-06-10 17:55, Linus Torvalds wrote:
>>>> On Thu, Jun 10, 2010 at 6:44 AM, Jens Axboe<[email protected]> wrote:
>>>>>
>>>>> - A set of patches fixing the WB_SYNC_NONE writeback from Christoph. So
>>>>> we should finally have both functional and working WB_SYNC_NONE from
>>>>> umount context.
>>>>
>>>> I _really_ think this is too late, considering how broken it has been.
>>>> We already reverted the WB_SYNC_NONE things exactly because it didn't
>>>> work, didn't we? I'm going to be off-line in two days, and this part
>>>> of the pull request really makes me nervous, if only simply because of
>>>> the history of it all (ie it's always been broken, why shouldn't it be
>>>> broken now?).
>>>>
>>>> IOW, that's a lot of scary changes, that have historically not been
>>>> safe or sufficiently tested, and have caused problems for various
>>>> filesystems. Convince me why they should suddenly be ok to merge?
>>>
>>> I agree, it's late and it makes me nervous too. I had them cook for
>>> a day, didn't see any problems. And Christoph would not send it in
>>> unless it passes at least xfs qa, which is what found the problems
>>> last time (the ones we reverted).
>>>
>>> It's fixing a regression where umount takes a LONG time if you have
>>> a lot of dirty inodes, since it basically degenerates to a data
>>> integrity writeback instead of a simple WB_SYNC_NONE. If it wasn't
>>> fixing a nasty regression (the distros are all wanting a real fix
>>> for this, it's a user problem), I would not be submitting this code
>>> at this point in time.
>>>
>>
>> Reinforcing that last point: from what I could figure out, Fedora 13
>> is shipping the buggy WB_SYNC_NONE patch currently. Ubuntu 10.04 is
>> shipping an in-kernel workaround that has serious performance
>> drawbacks.
>>
>> https://bugzilla.kernel.org/show_bug.cgi?id=15906 has links to the
>> downstream bugs.
> ..
>
> Jens, this bug has been biting my servers badly here for the past
> few months -- umount after a backup (from ext4 to ext4) takes 3-4 minutes
> instead of the expected 3-4 seconds.
>
> Is there a patch file for this against 2.6.34 that I (and others) could use?

It's the patch series from Christoph in my for-linus branch, I intend
to push it upstream when Linus is back and taking patches.

--
Jens Axboe

2010-06-28 09:41:35

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On Mon, Jun 28, 2010 at 09:03:13AM +0200, Jens Axboe wrote:
> It's the patch series from Christoph in my for-linus branch, I intend
> to push it upstream when Linus is back and taking patches.

He's been merging things again since yesterday.

2010-06-28 13:52:14

by Mark Lord

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 28/06/10 03:03 AM, Jens Axboe wrote:
> On 2010-06-28 01:10, Mark Lord wrote:
>> On 10/06/10 12:44 PM, Brian Bloniarz wrote:
..
>>> https://bugzilla.kernel.org/show_bug.cgi?id=15906 has links to the
>>> downstream bugs.
>> ..
>>
>> Jens, this bug has been biting my servers badly here for the past
>> few months -- umount after a backup (from ext4 to ext4) takes 3-4 minutes
>> instead of the expected 3-4 seconds.
>>
>> Is there a patch file for this against 2.6.34 that I (and others) could use?
>
> It's the patch series from Christoph in my for-linus branch, I intend
> to push it upstream when Linus is back and taking patches.
..

Still looking for a *patch* to fix this here.

I found these two:

http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=e913fc825dc685a444cb4c1d0f9d32f372f5986
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=30fd1e551a730d942e91109762c942786be0ef7c

But they don't apply cleanly to 2.6.34.

Anyone?

2010-06-28 14:05:22

by Brian Bloniarz

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 06/28/2010 09:51 AM, Mark Lord wrote:
> On 28/06/10 03:03 AM, Jens Axboe wrote:
>> On 2010-06-28 01:10, Mark Lord wrote:
>>> On 10/06/10 12:44 PM, Brian Bloniarz wrote:
> ..
>>>> https://bugzilla.kernel.org/show_bug.cgi?id=15906 has links to the
>>>> downstream bugs.
>>> ..
>>>
>>> Jens, this bug has been biting my servers badly here for the past
>>> few months -- umount after a backup (from ext4 to ext4) takes 3-4
>>> minutes
>>> instead of the expected 3-4 seconds.
>>>
>>> Is there a patch file for this against 2.6.34 that I (and others)
>>> could use?
>>
>> It's the patch series from Christoph in my for-linus branch, I intend
>> to push it upstream when Linus is back and taking patches.
> ..
>
> Still looking for a *patch* to fix this here.
>
> I found these two:
>
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=e913fc825dc685a444cb4c1d0f9d32f372f5986
>
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=30fd1e551a730d942e91109762c942786be0ef7c
>
>
> But they don't apply cleanly to 2.6.34.
>
> Anyone?

Don't use those, they have bugs and have since been reverted.

Links to the patch series that Jens mentions are below. I doubt they
apply cleanly to older kernels. Somebody's probably going to need to
take a crack at backporting them eventually (I could try, even), but
I don't know anybody has yet.

Christoph Hellwig (8):
writeback: fix writeback completion notifications
writeback: queue work on stack in writeback_inodes_sb
writeback: enforce s_umount locking in writeback_inodes_sb
writeback: fix writeback_inodes_wb from writeback_inodes_sb
writeback: simplify wakeup_flusher_threads
writeback: simplify and split bdi_start_writeback
writeback: add missing requeue_io in writeback_inodes_wb
writeback: fix pin_sb_for_writeback

http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=2c99721ec6a55b2c1e7ba94945bbdae454e11308
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=ebf51611db2cfa33d056b4428f13275f81732fd5
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=de3f848fbc24f71174f3bcc7513b5a3fafb37bac
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=e15e123275b3ca3eeb378136046ab78eab214169
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=dcac2e708d8f8af1a220dd238027af5b4aedfc12
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=8163b53a6bfbfa14ae83f8cdbf536f9c191d3279
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=22e53a2ca88690c711a954d3c652b468a5e94272
http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=7eed7cc254e71352e5e2e642c70a9b04cd28cc76

2010-06-28 14:33:34

by Mark Lord

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 28/06/10 10:05 AM, Brian Bloniarz wrote:
> On 06/28/2010 09:51 AM, Mark Lord wrote:
..
>> I found these two:
>>
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=e913fc825dc685a444cb4c1d0f9d32f372f5986
>>
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=30fd1e551a730d942e91109762c942786be0ef7c
>>
>>
>> But they don't apply cleanly to 2.6.34.
>>
>> Anyone?
>
> Don't use those, they have bugs and have since been reverted.
>
> Links to the patch series that Jens mentions are below. I doubt they
> apply cleanly to older kernels. Somebody's probably going to need to
> take a crack at backporting them eventually (I could try, even), but
> I don't know anybody has yet.
>
> Christoph Hellwig (8):
> writeback: fix writeback completion notifications
> writeback: queue work on stack in writeback_inodes_sb
> writeback: enforce s_umount locking in writeback_inodes_sb
> writeback: fix writeback_inodes_wb from writeback_inodes_sb
> writeback: simplify wakeup_flusher_threads
> writeback: simplify and split bdi_start_writeback
> writeback: add missing requeue_io in writeback_inodes_wb
> writeback: fix pin_sb_for_writeback
>
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=2c99721ec6a55b2c1e7ba94945bbdae454e11308
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=ebf51611db2cfa33d056b4428f13275f81732fd5
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=de3f848fbc24f71174f3bcc7513b5a3fafb37bac
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=e15e123275b3ca3eeb378136046ab78eab214169
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=dcac2e708d8f8af1a220dd238027af5b4aedfc12
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=8163b53a6bfbfa14ae83f8cdbf536f9c191d3279
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=22e53a2ca88690c711a954d3c652b468a5e94272
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=7eed7cc254e71352e5e2e642c70a9b04cd28cc76


Thanks. I'll pull those down and backport them here.

Cheers!

2010-06-28 17:32:27

by Jens Axboe

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 28/06/10 16.05, Brian Bloniarz wrote:
> On 06/28/2010 09:51 AM, Mark Lord wrote:
>> On 28/06/10 03:03 AM, Jens Axboe wrote:
>>> On 2010-06-28 01:10, Mark Lord wrote:
>>>> On 10/06/10 12:44 PM, Brian Bloniarz wrote:
>> ..
>>>>> https://bugzilla.kernel.org/show_bug.cgi?id=15906 has links to the
>>>>> downstream bugs.
>>>> ..
>>>>
>>>> Jens, this bug has been biting my servers badly here for the past
>>>> few months -- umount after a backup (from ext4 to ext4) takes 3-4
>>>> minutes
>>>> instead of the expected 3-4 seconds.
>>>>
>>>> Is there a patch file for this against 2.6.34 that I (and others)
>>>> could use?
>>>
>>> It's the patch series from Christoph in my for-linus branch, I intend
>>> to push it upstream when Linus is back and taking patches.
>> ..
>>
>> Still looking for a *patch* to fix this here.
>>
>> I found these two:
>>
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=e913fc825dc685a444cb4c1d0f9d32f372f5986
>>
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=30fd1e551a730d942e91109762c942786be0ef7c
>>
>>
>> But they don't apply cleanly to 2.6.34.
>>
>> Anyone?
>
> Don't use those, they have bugs and have since been reverted.
>
> Links to the patch series that Jens mentions are below. I doubt they
> apply cleanly to older kernels. Somebody's probably going to need to
> take a crack at backporting them eventually (I could try, even), but
> I don't know anybody has yet.
>
> Christoph Hellwig (8):
> writeback: fix writeback completion notifications
> writeback: queue work on stack in writeback_inodes_sb
> writeback: enforce s_umount locking in writeback_inodes_sb
> writeback: fix writeback_inodes_wb from writeback_inodes_sb
> writeback: simplify wakeup_flusher_threads
> writeback: simplify and split bdi_start_writeback
> writeback: add missing requeue_io in writeback_inodes_wb
> writeback: fix pin_sb_for_writeback
>
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=2c99721ec6a55b2c1e7ba94945bbdae454e11308
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=ebf51611db2cfa33d056b4428f13275f81732fd5
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=de3f848fbc24f71174f3bcc7513b5a3fafb37bac
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=e15e123275b3ca3eeb378136046ab78eab214169
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=dcac2e708d8f8af1a220dd238027af5b4aedfc12
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=8163b53a6bfbfa14ae83f8cdbf536f9c191d3279
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=22e53a2ca88690c711a954d3c652b468a5e94272
> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=7eed7cc254e71352e5e2e642c70a9b04cd28cc76

Yes, that's the series.

--
Jens Axboe

2010-06-28 20:55:18

by Mark Lord

[permalink] [raw]
Subject: Re: [GIT PULL] block/io bits for 2.6.35-rc

On 28/06/10 01:32 PM, Jens Axboe wrote:
> On 28/06/10 16.05, Brian Bloniarz wrote:
..
>> Links to the patch series that Jens mentions are below. I doubt they
>> apply cleanly to older kernels. Somebody's probably going to need to
>> take a crack at backporting them eventually (I could try, even), but
>> I don't know anybody has yet.
>>
>> Christoph Hellwig (8):
>> writeback: fix writeback completion notifications
>> writeback: queue work on stack in writeback_inodes_sb
>> writeback: enforce s_umount locking in writeback_inodes_sb
>> writeback: fix writeback_inodes_wb from writeback_inodes_sb
>> writeback: simplify wakeup_flusher_threads
>> writeback: simplify and split bdi_start_writeback
>> writeback: add missing requeue_io in writeback_inodes_wb
>> writeback: fix pin_sb_for_writeback
>>
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=2c99721ec6a55b2c1e7ba94945bbdae454e11308
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=ebf51611db2cfa33d056b4428f13275f81732fd5
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=de3f848fbc24f71174f3bcc7513b5a3fafb37bac
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=e15e123275b3ca3eeb378136046ab78eab214169
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=dcac2e708d8f8af1a220dd238027af5b4aedfc12
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=8163b53a6bfbfa14ae83f8cdbf536f9c191d3279
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=22e53a2ca88690c711a954d3c652b468a5e94272
>> http://git.kernel.org/?p=linux/kernel/git/axboe/linux-2.6-block.git;a=commitdiff;h=7eed7cc254e71352e5e2e642c70a9b04cd28cc76
>
> Yes, that's the series.
..

Those apply/run on 2.6.34 with one minor change to the sixth patch:
Nuke the final one-liner blob from "simplify and split bdi_start_writeback",
getting rid of this part:

--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -705,9 +705,8 @@ void laptop_mode_timer_fn(unsigned long data)
* We want to write everything out, not just down to the dirty
* threshold
*/
-
if (bdi_has_dirty_io(&q->backing_dev_info))
- bdi_start_writeback(&q->backing_dev_info, NULL, nr_pages);
+ bdi_start_writeback(&q->backing_dev_info, nr_pages);
}

/*
----

The rest applied cleanly, and I don't see any obvious need for an alternative
to the deleted line above.

Cheers