Как использовать rtnl и spinlock для синхронизации?

#multithreading #locking #ipc

#многопоточность #блокировка #ipc

Вопрос:

Может ли кто-нибудь объяснить о RTNL (rtnl_lock () rtnl_unlock ()) Я пробовал Google, но не смог много копать

Что я получил от net, так это RTNL — это Netlink, используемый для связи, такой как IPC bet user и пространство ядра, но я не получил больше, чем это

Я получил кое-что о spinlock (), например, почему spinlock лучше, чем semaphore, но не слишком много

Но было бы очень полезно, если бы кто-нибудь объяснил что-нибудь о RTNL

Любая ссылка для получения подробной информации будет высоко оценена.

Комментарии:

1. Этот вопрос кажется не по теме, потому что SO не является повторяющейся документацией и не является сайтом «gimme linkz».

Ответ №1:

Хотя и немного поздно, но это глобальная блокировка, которая защищает netdev от условий гонки, когда несколько пользователей пытаются ее изменить (например, одновременные изменения конфигурации в одном интерфейсе из пользовательского пространства).

На конференции netdev 2.2 (2017) есть доклад под названием RTNL mutex, большая блокировка ядра сетевого стека, в котором в основном объясняется все, что вам нужно знать об этом.