mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-09-05 07:57:45 -04:00
Fixed MTP to work with TWRP
This commit is contained in:
commit
f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions
27
Documentation/percpu-rw-semaphore.txt
Normal file
27
Documentation/percpu-rw-semaphore.txt
Normal file
|
@ -0,0 +1,27 @@
|
|||
Percpu rw semaphores
|
||||
--------------------
|
||||
|
||||
Percpu rw semaphores is a new read-write semaphore design that is
|
||||
optimized for locking for reading.
|
||||
|
||||
The problem with traditional read-write semaphores is that when multiple
|
||||
cores take the lock for reading, the cache line containing the semaphore
|
||||
is bouncing between L1 caches of the cores, causing performance
|
||||
degradation.
|
||||
|
||||
Locking for reading is very fast, it uses RCU and it avoids any atomic
|
||||
instruction in the lock and unlock path. On the other hand, locking for
|
||||
writing is very expensive, it calls synchronize_rcu() that can take
|
||||
hundreds of milliseconds.
|
||||
|
||||
The lock is declared with "struct percpu_rw_semaphore" type.
|
||||
The lock is initialized percpu_init_rwsem, it returns 0 on success and
|
||||
-ENOMEM on allocation failure.
|
||||
The lock must be freed with percpu_free_rwsem to avoid memory leak.
|
||||
|
||||
The lock is locked for read with percpu_down_read, percpu_up_read and
|
||||
for write with percpu_down_write, percpu_up_write.
|
||||
|
||||
The idea of using RCU for optimized rw-lock was introduced by
|
||||
Eric Dumazet <eric.dumazet@gmail.com>.
|
||||
The code was written by Mikulas Patocka <mpatocka@redhat.com>
|
Loading…
Add table
Add a link
Reference in a new issue