Re: [rfc] direct IO submission and completion scalability issues

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Nick Piggin <npiggin@...>
Cc: David Chinner <dgc@...>, Arjan van de Ven <arjan@...>, Siddha, Suresh B <suresh.b.siddha@...>, <linux-kernel@...>, <mingo@...>, <ak@...>, <jens.axboe@...>, <James.Bottomley@...>, <andrea@...>, <clameter@...>, <akpm@...>, <andrew.vasquez@...>, <willy@...>, Zach Brown <zach.brown@...>
Date: Monday, February 4, 2008 - 8:14 pm

On Mon, Feb 04, 2008 at 11:09:59AM +0100, Nick Piggin wrote:

[....]


per-page/block.bio/request/etc is local to a single I/O. the only
penalty is a cacheline bounce for each of the structures from one
CPU to another.  That is, there is no global state modified by these
completions.

The real issue is metadata. The transaction log I/O completion
funnels through a state machine protected by a single lock, which
means completions on different CPUs pulls that lock to all
completion CPUs. Given that the same lock is used during transaction
completion for other state transitions (in task context, not intr),
the more cpus active at once touches, the worse the problem gets.

Then there's metadata I/O completion, which funnels through a larger
set of global locks in the transaction subsystem (e.g. the active
item list lock, the log reservation locks, the log state lock, etc)
which once again means the more CPUs we have delivering I/O
completions, the worse the problem gets.

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[rfc] direct IO submission and completion scalability issues, Siddha, Suresh B, (Fri Jul 27, 9:21 pm)
Re: [rfc] direct IO submission and completion scalability is..., David Chinner, (Mon Feb 4, 8:14 pm)
Re: [rfc] direct IO submission and completion scalability is..., Christoph Lameter, (Mon Jul 30, 2:20 pm)