[LWN Logo]

Date:	Sat, 15 May 1999 21:15:45 +0200 (CEST)
From:	Andrea Arcangeli <andrea@suse.de>
To:	linux-kernel@vger.rutgers.edu
Subject: [patch] andrea's cleanedup buffer.c for 2.2.9

This my buffer patch is against 2.2.9 and it addresses (in random order):

o	flushtime handling redesigned: every time we touch a buffer
	we return to set its timeout (simple no? ;)

o	dropped all cli/sti pairs, replaced the end_io_async irq/SMP
	synchronization with a per-pagemap spinlock (to scale far better)
	and removed all locking from the reuse_list handling using
	smart write ordering and bogus-pointers-loops

o	reordered buffer heads members to be more friendly with cachelines

o	fastcall for some fast path

o	my dynamic hashtable code

o	avoids not necessary run_task_queue and adds needded ones

o	in some loop we can allow the current bh to be freed after a sleep
	(no need to bh->b_count++, only need to bhnext->b_count++)

o	cleanup of lists and hash insertion/deletion

o	enforced by design that a buffer must always be mapped in a
	hashtable or otherwise it means that it's a freeable (from
	shrink_mmap) and queued in the freelist.

o	fixed races in set_blocksize/invalidate_buffers and now both
	functions also put invalidated buffers in the freelist to improve
	performances (the race could happens if next would be refiled while
	we slept)

o	fixed a race in show_buffers: we must check if buffer.c may be
	playing with our freelist (or was in the middle of some list
	operation) before browsing the lru lists from the keyb irq

o	try_to_free_buffers() start I/O on the collected buffers directly

o	all tasks start I/O directly if there are too many dirty buffers.

o	kflushd only takes the I/O pipeline full if there are many
	dirty buffers (no other works for it)

o	minor problem in ll_rw_blk about stats of write/read ahead
	requests fixed

I would like if people which is interested in I/O performances (DBMS or
CVS or similar) for 2.2.x would try it out and feedback with numbers. (if
you instead are running 2.3.1 it's caming a new 2.3.1_andrea2.bz2 that
will include my latest buffer.c stuff + many other things from mine)

Thanks.

Andrea Arcangeli

begin 644 buffer-2.2.9-C.gz
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
>+K'L7XKIO]Z\[U^>7Y(;QY4RU.?_!4CS4SIZH```
`
end


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