Обеспечивает ли klist структуры данных ядра потокобезопасный доступ?

#linux-kernel

#linux-ядро

Вопрос:

Обеспечивает ли оболочка связанного списка, описанная в klist.h, потокобезопасный доступ к своим узлам как для чтения, так и для записи?

Ответ №1:

Я предполагаю, что под «чтением и записью» вы на самом деле подразумеваете «взаимодействие и добавление / удаление» (мы говорим о списках, верно?).

В этом смысле они потокобезопасны: вам не нужно выполнять ручную блокировку для них, потому что функции, определенные в lib/klist.c , используют внутреннюю блокировку вращения структуры klist.

Не используйте эти функции, если прерывание или контекст нижней половины, потому что блокировка, выполняемая внутри них, не spin_lock_irqsave() является or spin_lock_bh() .