aboutsummaryrefslogtreecommitdiff
path: root/fs/jbd2/commit.c
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <[email protected]>2008-07-07 12:07:51 -0700
committerIngo Molnar <[email protected]>2008-07-16 11:15:53 +0200
commit8efcbab674de2bee45a2e4cdf97de16b8e609ac8 (patch)
tree1b45a9446e471bfdba21e7982c87aef47d2f8313 /fs/jbd2/commit.c
parent74d4affde8feb8d5bdebf7fba8e90e4eae3b7b1d (diff)
paravirt: introduce a "lock-byte" spinlock implementation
Implement a version of the old spinlock algorithm, in which everyone spins waiting for a lock byte. In order to be compatible with the ticket-lock's use of a zero initializer, this uses the convention of '0' for unlocked and '1' for locked. This algorithm is much better than ticket locks in a virtual envionment, because it doesn't interact badly with the vcpu scheduler. If there are multiple vcpus spinning on a lock and the lock is released, the next vcpu to be scheduled will take the lock, rather than cycling around until the next ticketed vcpu gets it. To use this, you must call paravirt_use_bytelocks() very early, before any spinlocks have been taken. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Christoph Lameter <[email protected]> Cc: Petr Tesarik <[email protected]> Cc: Virtualization <[email protected]> Cc: Xen devel <[email protected]> Cc: Thomas Friebel <[email protected]> Cc: Nick Piggin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'fs/jbd2/commit.c')
0 files changed, 0 insertions, 0 deletions