Поддерживает ли синхронизация RCU только глобальную блокировку для всех считывателей разных типов данных?

Как программист ядра Linux, я научился использовать RCU вместо rwlock для достижения высокой производительности. Однако RCU предоставляет только следующий API без параметров для защиты сервисов всех типов данных.

rcu_read_lock()
rcu_read_unlock()

Как rwlock будет держать аргумент lock для каждого человека.

read_lock(lock)
write_lock(lock)

Если RCU удерживает только глобальную блокировку системы, это разумно? Рекламация блокируется, пока все читатели других типов данных не закончат работу. Повредит ли это глобальной производительности системы?

0 ответов

Другие вопросы по тегам