]> git.baikalelectronics.ru Git - kernel.git/commit
jbd2: calculate statistics without holding j_state_lock and j_list_lock
authorTheodore Ts'o <tytso@mit.edu>
Sun, 9 Mar 2014 00:51:16 +0000 (19:51 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 9 Mar 2014 00:51:16 +0000 (19:51 -0500)
commit01b0595dc1da3a2b1a5d086df0f5721fb2dde32e
tree106d8e934c1c930d4fae822c76ff18d493492729
parent08c2fc7bc9a50048167b4615d259a59dd52e2843
jbd2: calculate statistics without holding j_state_lock and j_list_lock

The two hottest locks, and thus the biggest scalability bottlenecks,
in the jbd2 layer, are the j_list_lock and j_state_lock.  This has
inspired some people to do some truly unnatural things[1].

[1] https://www.usenix.org/system/files/conference/fast14/fast14-paper_kang.pdf

We don't need to be holding both j_state_lock and j_list_lock while
calculating the journal statistics, so move those calculations to the
very end of jbd2_journal_commit_transaction.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/jbd2/commit.c