История изменений
Исправление i82, (текущая версия) :
Как я понял, при RPS аппаратные прерывания от сетёвки всё одно обрабатывает один процессор, а остальные загружаются потом через softirq.
На сколько я понял, изучая код ядра, аппаратные прерывания должны обрабатывать разные ядра. Пакеты, выбранные из соответствующих очередей сетевой карты будут помещаться в backlog-очереди этих процессоров и, далее, планируется их softirq-обработка, которая, по идее, также должна быть осуществлена в рамках каждого из процессоров. Таким образом, по моим представлениям, один процессор может вести свой набор пакетов начиная от устройства и заканчивая приложением пользователя (сокетом, tun-устройством и т.д.)
Возможно модуль iptables показывает то самый CPU, обрабатывающий аппаратные прерывания.
Модуль проверят соответствие идентификатора процессора, указанного в правиле, идентификатору обрабатывающего пакет процессора. Если совпадают - ставит метку.
Исходная версия i82, :
Как я понял, при RPS аппаратные прерывания от сетёвки всё одно обрабатывает один процессор, а остальные загружаются потом через softirq. Возможно модуль iptables показывает то самый CPU, обрабатывающий аппаратные прерывания.
На сколько я понял, изучая код ядра, аппаратные прерывания должны обрабатывать разные ядра. Пакеты, выбранные из соответствующих очередей сетевой карты будут помещаться в backlog-очереди этих процессоров и, далее, планируется их softirq-обработка, которая, по идее, также должна быть осуществлена в рамках каждого из процессоров. Таким образом, по моим представлениям, один процессор может вести свой набор пакетов начиная от устройства и заканчивая приложением пользователя (сокетом, tun-устройством и т.д.)