Защита нескольких списков с помощью rcu

Привет,

Я новичок в механизм блокировки rcu в ядре Linux.

Пытаясь понять, как работает rcu и предоставляемые API, я вижу, что rcu_read_lock(), rcu_synchronize() не принимает ни одного экземпляра блокировки. Итак, допустим, у меня есть n независимых списков, которые я хочу защитить с помощью RCU, гарантированно ли reads и synchronize () работают так, как они должны быть?

Простите, если вопрос кажется слишком наивным

Заранее спасибо.

1 ответ

Отказ от мьютекса - одно из основных преимуществ использования RCU (чтение, копирование, обновление). каждый rcu_read_lock() будет гарантировать, что данные, читаемые локально, не изменятся до rcu_read_unlock() выполнен. synchronize_rcu() будет блокировать на всех предыдущих читателей для синхронизации структуры данных.

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