dadv: (Default)
[personal profile] dadv

Выяснилось, что при использовании многоядерных маршрутизаторов под FreeBSD 8 и новее и при использовании loader tunnable net.isr.bindthreads=0 потоки NETISR в некоторых случаях таки могут оказаться привязанными к определенным ядрам CPU из-за ошибки в ядре.

Проверить привязку можно командой:

procstat -at | awk '/swi1: netisr/ {print $5, $6; system("cpuset -g -t " $2);}'

Она должна вывести что-то вроде этого:

netisr 0
tid 100012 mask: 0, 1, 2, 3
netisr 3
tid 100111 mask: 0, 1, 2, 3
netisr 2
tid 100112 mask: 0, 1, 2, 3
netisr 1
tid 100113 mask: 0, 1, 2, 3

То есть, в каждой маске должны быть перечислены все процессорные ядра. В некоторых случаях они там будут не все и тогда будут проблемы с неравномерной загрузкой ядер работой. Исправить проблему с NETISR без перезагрузки можно командой:

procstat -at | awk '/swi1: netisr/ {print $2}' | xargs -n 1 cpuset -l all -t

Тут есть патч к ядру, исправляющий работу net.isr.bindthreads=0. В CURRENT также было внесено исправление для общей проблемы, оно тоже ложится на FreeBSD 8.

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios