Я установил таймер ЧСС для данного интервала времени хх мс.Обработчик таймера работает достаточно хорошо.Но проблема, с которой я сталкиваюсь сейчас, состоит в том, чтобы вызывать опрос NAPI при каждом событии таймера.На истекшем интервале я назвал napi_schedule(napi)
.Это просто не запускает планирование опросов Napi napi_schedule()
-> он должен вызывать мою функцию обратного вызова опросов NAPI, которая зарегистрирована в netif_napi_add(,,napi_poll, weight)
Регистрация опроса NAPI:
netif_napi_add(netdev, &port->napi, napi_poll,2);
static enum hrtimer_restart gmac_delay_expired(struct hrtimer *timer) {
struct gemini_ethernet_port *port =
container_of(timer, struct gemini_ethernet_port,rx_coalesce_timer);
napi_schedule(&port->napi);
hrtimer_forward_now(timer, 100);
return HRTIMER_RESTART;
}
hrtimer_init(&port->timer,LOCK_MONOTONIC,HRTIMER_MODE_REL);
port->timer.function = &gmac_delay_expired;
hrtimer_start(&port->timer,port->timer_interval,HRTIMER_MODE_REL);
Iпроверил dmesg и kernel / var / log / kern-log ... Каждая функция получает вызов, только мой napi_poll
обратный вызов не вызывается.