Если я пишу поток и запускаю его в планировщике Round Robyn Real-Time, в Ubuntu 11.04 используется либо стандартное ядро 2.6.38, либо доступное ядро 3.0.0-9 с низкой загрузкой из этого ppa: https://launchpad.net/~abogani/+archive/ppa,, кажется, заблокировать команду:
apt-key get
Похоже, что эта команда блокируется, когда gpg под капотом пытается использовать mlock (), которая, как я понимаю, требует mmap_sem. Тем не менее, мой тестовый поток буквально "ничего не делает", в том смысле, что это просто пустой цикл for. Я также не активно использую mmap_sem, например.
На компьютере SMP (4 ядра, 8 логических ядер) один поток в планировщике RR с приоритетом 50 или более, кажется, всегда блокирует apt-key. Более низкий приоритет возвращается примерно в 50% или менее времени, иногда требуются минуты, чтобы вернуться.
Какая связь между моим потоком с пустым циклом с этим приоритетом в реальном времени и mmap_sem?