On Wed, Mar 11, 2009 at 12:35:04PM +0300, Alexey V. Karagodov wrote:
On 11.03.2009, at 12:00, Dmitry Morozovsky wrote:
On Tue, 10 Mar 2009, Михаил Монашёв wrote:
??> Вдогонку...
??> Я где-то вчера читал, что если ядро собрано с поллингом, то всё
это не
??> работает. Это правда? Сейчас у меня так:
??>
??> options HZ=2000
??> options DEVICE_POLLING
Это, если поллинг на интерфейсе explicitely не включён, нынче не
мешает. Хотя
лишний data path в ядре, конечно, присутствует ;)
В современном состоянии для em polling не нужен совсем.
это в смысле типа как-бы драйвер и сетевая сами оптимизируют процессы
приёма/передачи?
Да. Современный em работает так:
1) получает прерывание, если прерывание от карты, то запрещает
прерывания
карты и добавляет в очередь шедулера emX taskq.
2) через некоторое время запускается emX taskq, который обрабатывает
до
dev.em.X.rx_processing_limit пакетов, после чего разрешает
прерывания
от карты.
Называется это адаптивный polling - обработка делается не по
таймеру, а
по факту прерыывания, но до упора.