Lines Matching defs:napi
158 struct napi_struct napi;
169 struct napi_struct napi;
435 static void virtqueue_napi_schedule(struct napi_struct *napi,
438 if (napi_schedule_prep(napi)) {
440 __napi_schedule(napi);
444 static void virtqueue_napi_complete(struct napi_struct *napi,
450 if (napi_complete_done(napi, processed)) {
452 virtqueue_napi_schedule(napi, vq);
461 struct napi_struct *napi = &vi->sq[vq2txq(vq)].napi;
466 if (napi->weight)
467 virtqueue_napi_schedule(napi, vq);
550 skb = napi_alloc_skb(&rq->napi, GOOD_COPY_LEN);
810 bool use_napi = sq->napi.weight;
829 virtqueue_napi_schedule(&sq->napi, sq->vq);
1815 napi_gro_receive(&rq->napi, skb);
2013 virtqueue_napi_schedule(&rq->napi, rvq);
2016 static void virtnet_napi_enable(struct virtqueue *vq, struct napi_struct *napi)
2018 napi_enable(napi);
2025 virtqueue_napi_schedule(napi, vq);
2031 struct napi_struct *napi)
2033 if (!napi->weight)
2036 /* Tx napi touches cachelines on the cpu handling tx interrupts. Only
2040 napi->weight = 0;
2044 return virtnet_napi_enable(vq, napi);
2047 static void virtnet_napi_tx_disable(struct napi_struct *napi)
2049 if (napi->weight)
2050 napi_disable(napi);
2063 napi_disable(&rq->napi);
2065 virtnet_napi_enable(rq->vq, &rq->napi);
2132 if (!sq->napi.weight || is_xdp_raw_buffer_queue(vi, index))
2153 static int virtnet_poll(struct napi_struct *napi, int budget)
2156 container_of(napi, struct receive_queue, napi);
2171 virtqueue_napi_complete(napi, rq->vq, received);
2188 virtnet_napi_tx_disable(&vi->sq[qp_index].napi);
2189 napi_disable(&vi->rq[qp_index].napi);
2199 vi->rq[qp_index].napi.napi_id);
2208 virtnet_napi_enable(vi->rq[qp_index].vq, &vi->rq[qp_index].napi);
2209 virtnet_napi_tx_enable(vi, vi->sq[qp_index].vq, &vi->sq[qp_index].napi);
2247 static int virtnet_poll_tx(struct napi_struct *napi, int budget)
2249 struct send_queue *sq = container_of(napi, struct send_queue, napi);
2258 napi_complete_done(napi, 0);
2272 done = napi_complete_done(napi, 0);
2281 if (napi_schedule_prep(napi)) {
2285 __napi_schedule(napi);
2348 bool use_napi = sq->napi.weight;
2406 napi_disable(&rq->napi);
2416 virtnet_napi_enable(rq->vq, &rq->napi);
2430 virtnet_napi_tx_disable(&sq->napi);
2457 virtnet_napi_tx_enable(vi, sq->vq, &sq->napi);
2650 /* Make sure refill_work doesn't re-enable napi! */
3406 vi->sq[queue_number].napi.weight,
3429 vi->sq[queue_number].napi.weight = napi_weight;
3450 if (vi->sq[0].napi.weight)
3471 vi->sq[queue].napi.weight,
3485 vi->sq[queue].napi.weight = napi_weight;
3507 if (vi->sq[queue].napi.weight)
3786 napi_disable(&vi->rq[i].napi);
3787 virtnet_napi_tx_disable(&vi->sq[i].napi);
3824 virtnet_napi_enable(vi->rq[i].vq, &vi->rq[i].napi);
3826 &vi->sq[i].napi);
3841 virtnet_napi_enable(vi->rq[i].vq, &vi->rq[i].napi);
3843 &vi->sq[i].napi);
3991 __netif_napi_del(&vi->rq[i].napi);
3992 __netif_napi_del(&vi->sq[i].napi);
4201 netif_napi_add_weight(vi->dev, &vi->rq[i].napi, virtnet_poll,
4203 netif_napi_add_tx_weight(vi->dev, &vi->sq[i].napi,