Re: spin lock contention: lru_list lock

From: Manfred Spraul (manfreds@colorfullife.com)
Date: Sat Feb 19 2000 - 11:17:01 EST


"David S. Miller" wrote:
>
> Are you seeing "contention" for the lock? That is what matters.
>

There is little contention (~ 1%), but I have a dual cpu computer, not
an 8-way server.
 
> lru_list lock is the longest held mainly because it is the outermost
> lock in the buffer cache locking hierarchy.
>

Yes, the problem is that gtcd polls /dev/cdrom, and that every close()
call calls __invalidate_buffers(). __invalidate_buffers() must walk the
complete buffer chain, and as I wrote the buffer chain contained ~
100000 entries.

Either we ignore the problem, or we could add a per-kdev_t linked list.

I have another problem with flush_dirty_buffers():

flush_dirty_buffers() quits as soon as it finds the first buffer where
b_flushtime has not yet expired.

I can't find the code that enforced this chronological ordering, esp.
since the time until a buffer must be written to disk if different for
metadata blocks and normal blocks.
[just grep for b_flushtime, there is no sort algorithm]

--
	Manfred

- 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/



This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:23 EST