napi_schedule()不会在hrtimer回调处理程序中触发napi轮询

时间:2019-06-28 05:26:17

标签: c linux linux-kernel

我设置了一个HR计时器 给定的xx ms时间间隔。计时器滴答处理程序工作正常。 但是我现在面临的问题是每次调用NAPI民意调查 计时器滴答处理程序事件。在间隔过去的事件中,我打电话给 napi_schedule(napi)。这根本不会触发napi民意调查 安排napi_schedule()->应该会调用我在netif_napi_add(,,napi_poll, weight)中注册的NAPI poll回调函数

注册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);

我检查了dmesg和内核/ var / log / kern-log ...每个函数都在被调用,只有我的napi_poll回调没有被调用。

0 个答案:

没有答案