Re: pagefault in generic_file_buffered_write() causing deadlock

From: Badari Pulavarty
Date: Wed Nov 15 2006 - 13:17:49 EST


Andrew Morton wrote:
On Wed, 15 Nov 2006 07:57:45 -0800
Badari Pulavarty <pbadari@xxxxxxxxxx> wrote:

We are looking at a customer situation (on 2.6.16-based distro) - where
system becomes almost useless while running some java & stress tests.

Root cause seems to be taking a pagefault in generic_file_buffered_write
() after calling prepare_write. I am wondering

1) Why & How this can happen - since we made sure to fault the user
buffer before prepare write.

When using writev() we only fault in the first segment of the iovec. If
the second or succesive segment isn't mapped into pagetables we're
vulnerable to the deadlock.

Yes. I remember this change. Thank you.
2) If this is already fixed in current mainline (I can't see how).

It was fixed in 2.6.17.

You'll need 6527c2bdf1f833cc18e8f42bd97973d583e4aa83 and
81b0c8713385ce1b1b9058e916edcf9561ad76d6
I will try to get this change into customer :(

Thanks,
Badari

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/