[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CA+U0gVgRa2vXqB-47O9-W=ayEZ8PQXK85cz4hp8NJPbnt-n8Ng@mail.gmail.com>
Date: Tue, 6 Jan 2015 11:28:36 +0800
From: Dennis Chen <kernel.org.gnu@...il.com>
To: netdev <netdev@...r.kernel.org>
Subject: [Question]when work == weight in net_rx_action
in net_rx_action() function, I found that if the work done returned
from the n->poll() equal the weight, then it will enter the following
path:
if (unlikely(work == weight)) {
if (unlikely(napi_disable_pending(n))) {
local_irq_enable();
napi_complete(n);
local_irq_disable();
} else {
if (n->gro_list) {
/* flush too old packets
* If HZ < 1000, flush all packets.
*/
local_irq_enable();
napi_gro_flush(n, HZ >= 1000);
local_irq_disable();
}
list_move_tail(&n->poll_list, &sd->poll_list);
}
}
suppose the napi instance is not disabled and n->gro_list = NULL, so
this function just moves the napi instance node to the tail of the
sd->poll_list, because the context here is device interrupt disabled,
is there any chance for the net_rx_action will be called again?
--
Den
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists