jbd2: Change j_state_lock to be a rwlock_t
Lockstat reports have shown that j_state_lock is a major source of lock contention, especially on systems with more than 4 CPU cores. So change it to be a read/write spinlock. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
a51dca9cd3
commit
a931da6ac9
8 changed files with 114 additions and 110 deletions
|
@ -5066,7 +5066,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
|
|||
transaction_t *transaction;
|
||||
tid_t tid;
|
||||
|
||||
spin_lock(&journal->j_state_lock);
|
||||
read_lock(&journal->j_state_lock);
|
||||
if (journal->j_running_transaction)
|
||||
transaction = journal->j_running_transaction;
|
||||
else
|
||||
|
@ -5075,7 +5075,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
|
|||
tid = transaction->t_tid;
|
||||
else
|
||||
tid = journal->j_commit_sequence;
|
||||
spin_unlock(&journal->j_state_lock);
|
||||
read_unlock(&journal->j_state_lock);
|
||||
ei->i_sync_tid = tid;
|
||||
ei->i_datasync_tid = tid;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue