[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: User mode stalls - can it be...?



Hi,

On Wed, Jul 05, 2000 at 03:29:22AM +0200, Roger Larsson wrote:
> 
> static void sync_page_buffers(struct buffer_head *bh, int wait)
> {
> 	struct buffer_head * tmp = bh;
> 
> 	do {
> 		struct buffer_head *p = tmp;
> 		tmp = tmp->b_this_page;
> 		if (!buffer_locked(p) &&
>                     buffer_dirty(p))
> 			ll_rw_block(WRITE, 1, &p);
> 		if (wait)
> 			__wait_on_buffer(p);
> 	} while (tmp != bh);

Yikes no.  That will make the syncer wait for every single write
synchronously.  It will cause a page full of 1k buffers to be written
out as four separate 1k writes instead of being streamed.  This will
_kill_ performance.

Cheers,
 Stephen
--
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.eu.org/Linux-MM/