[Question]when work == weight in net_rx_action

From: Dennis Chen <hidden>
Date: 2015-01-06 03:28:56

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help