Поддерживает ли синхронизация RCU только глобальную блокировку для всех считывателей разных типов данных?
Как программист ядра Linux, я научился использовать RCU вместо rwlock для достижения высокой производительности. Однако RCU предоставляет только следующий API без параметров для защиты сервисов всех типов данных.
rcu_read_lock()
rcu_read_unlock()
Как rwlock
будет держать аргумент lock
для каждого человека.
read_lock(lock)
write_lock(lock)
Если RCU удерживает только глобальную блокировку системы, это разумно? Рекламация блокируется, пока все читатели других типов данных не закончат работу. Повредит ли это глобальной производительности системы?