Безопасен ли поток work_queue? - PullRequest
1 голос
/ 01 марта 2012

Глядя на workqueue.c, кажется, что только части, которые правильно заблокированы, находятся между открытыми API и внутренним потоком, который работает.Кажется, есть некоторые вещи за пределами критической секции (которые, на мой взгляд, неподготовленные), которые могут быть небезопасными?

Я прав или нет?

1 Ответ

2 голосов
/ 02 марта 2012

Полагаю, вы говорите о workqueue.c в ядре Linux? http://lxr.linux.no/#linux+v3.2.9/kernel/workqueue.c

В этом случае используйте только общедоступный API, предполагайте, что он является многопоточным, и сообщайте о любых проблемах, которые вы видите, Инго Молнару. Обратите внимание, что большинство разработчиков ядра очень умны и больше не будут повторять ошибку «большой блокировки»: не все запускается под мьютексом, потому что не все нужно. Такие хитрости, как RCU (чтение и обновление копии), также уменьшают количество необходимых блокировок. И все без блокировки будет работать намного лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...