LINUX.ORG.RU

История изменений

Исправление i82, (текущая версия) :

Как я понял, при RPS аппаратные прерывания от сетёвки всё одно обрабатывает один процессор, а остальные загружаются потом через softirq.

На сколько я понял, изучая код ядра, аппаратные прерывания должны обрабатывать разные ядра. Пакеты, выбранные из соответствующих очередей сетевой карты будут помещаться в backlog-очереди этих процессоров и, далее, планируется их softirq-обработка, которая, по идее, также должна быть осуществлена в рамках каждого из процессоров. Таким образом, по моим представлениям, один процессор может вести свой набор пакетов начиная от устройства и заканчивая приложением пользователя (сокетом, tun-устройством и т.д.)

Возможно модуль iptables показывает то самый CPU, обрабатывающий аппаратные прерывания.

Модуль проверят соответствие идентификатора процессора, указанного в правиле, идентификатору обрабатывающего пакет процессора. Если совпадают - ставит метку.

Исходная версия i82, :

Как я понял, при RPS аппаратные прерывания от сетёвки всё одно обрабатывает один процессор, а остальные загружаются потом через softirq. Возможно модуль iptables показывает то самый CPU, обрабатывающий аппаратные прерывания.

На сколько я понял, изучая код ядра, аппаратные прерывания должны обрабатывать разные ядра. Пакеты, выбранные из соответствующих очередей сетевой карты будут помещаться в backlog-очереди этих процессоров и, далее, планируется их softirq-обработка, которая, по идее, также должна быть осуществлена в рамках каждого из процессоров. Таким образом, по моим представлениям, один процессор может вести свой набор пакетов начиная от устройства и заканчивая приложением пользователя (сокетом, tun-устройством и т.д.)