Re: ext4 dbench performance with CONFIG_PREEMPT_RT

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: tytso
Date: Tuesday, April 13, 2010 - 7:52 am

On Mon, Apr 12, 2010 at 09:46:28PM +0200, Jan Kara wrote:

Yeah, that sounds right.  We do have a classic thundering hurd problem
when we while are draining handles from the transaction in the
T_LOCKED state --- that is (for those who aren't jbd2 experts) when it
comes time to close out the current transaction, one of the first
things that fs/jbd2/commit.c will do is to set the transaction into
T_LOCKED state.  In that state we are waiting for currently active
handles to complete, and we don't allow any new handles to start until
the currently running transaction is completely drained of active
handles, at which point we can swap in a new transaction, and continue
the commit process on the previously running transaction.

On a non-real time kernel, the spinlock will tie up the currently
running CPU's until the transaction drains, which is usually pretty
fast, since we don't allow transactions to be held for that long (the
worst case being truncate/unlink operations).  Dbench is a worst case,
though since we have some large number of threads all doing file
system I/O (John, how was dbench configured?) and the spinlocks will
no longer tie up a CPU, but actually let some other dbench thread run,
so it magnifies the thundering hurd problem from 8 threads, to nearly
all of the CPU threads.

Also, the spinlock code has a "ticket" system which tries to protect
against the thundering hurd effect --- do the PI mutexes which replace
spinlocks in the -rt kernel have any technqiue to try to prevent
scheduler thrashing in the face of thundering hurd scenarios?

	  	       	   	   - Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
ext4 dbench performance with CONFIG_PREEMPT_RT, john stultz, (Wed Apr 7, 4:21 pm)
Re: ext4 dbench performance with CONFIG_PREEMPT_RT, Theodore Tso, (Thu Apr 8, 3:18 am)
Re: ext4 dbench performance with CONFIG_PREEMPT_RT, john stultz, (Thu Apr 8, 1:41 pm)
Re: ext4 dbench performance with CONFIG_PREEMPT_RT, Mingming Cao, (Thu Apr 8, 3:37 pm)
Re: ext4 dbench performance with CONFIG_PREEMPT_RT, Andi Kleen, (Fri Apr 9, 8:49 am)
RE: ext4 dbench performance with CONFIG_PREEMPT_RT, Chen, Tim C, (Fri Apr 9, 4:48 pm)
RE: ext4 dbench performance with CONFIG_PREEMPT_RT, john stultz, (Fri Apr 9, 4:57 pm)
Re: ext4 dbench performance with CONFIG_PREEMPT_RT, Jan Kara, (Mon Apr 12, 12:46 pm)
RE: ext4 dbench performance with CONFIG_PREEMPT_RT, Chen, Tim C, (Mon Apr 12, 12:54 pm)
Re: ext4 dbench performance with CONFIG_PREEMPT_RT, john stultz, (Mon Apr 12, 8:52 pm)
Re: ext4 dbench performance with CONFIG_PREEMPT_RT, tytso, (Tue Apr 13, 7:52 am)
Re: ext4 dbench performance with CONFIG_PREEMPT_RT, Darren Hart, (Tue Apr 13, 9:25 am)
Re: ext4 dbench performance with CONFIG_PREEMPT_RT, john stultz, (Tue Apr 13, 8:04 pm)