• Home
  • Raw
  • Download

Lines Matching refs:sq

135 	struct send_queue *sq;  member
279 struct napi_struct *napi = &vi->sq[vq2txq(vq)].napi; in skb_xmit_done()
391 struct send_queue *sq; in virtnet_xdp_xmit() local
397 sq = &vi->sq[qp]; in virtnet_xdp_xmit()
400 while ((xdp_sent = virtqueue_get_buf(sq->vq, &len)) != NULL) { in virtnet_xdp_xmit()
411 sg_init_one(sq->sg, xdp->data, xdp->data_end - xdp->data); in virtnet_xdp_xmit()
413 err = virtqueue_add_outbuf(sq->vq, sq->sg, 1, xdp->data, GFP_ATOMIC); in virtnet_xdp_xmit()
421 virtqueue_kick(sq->vq); in virtnet_xdp_xmit()
1122 static void free_old_xmit_skbs(struct send_queue *sq) in free_old_xmit_skbs() argument
1126 struct virtnet_info *vi = sq->vq->vdev->priv; in free_old_xmit_skbs()
1131 while ((skb = virtqueue_get_buf(sq->vq, &len)) != NULL) { in free_old_xmit_skbs()
1166 struct send_queue *sq = &vi->sq[index]; in virtnet_poll_cleantx() local
1169 if (!sq->napi.weight || is_xdp_raw_buffer_queue(vi, index)) in virtnet_poll_cleantx()
1173 free_old_xmit_skbs(sq); in virtnet_poll_cleantx()
1177 if (sq->vq->num_free >= 2 + MAX_SKB_FRAGS) in virtnet_poll_cleantx()
1209 virtnet_napi_tx_enable(vi, vi->sq[i].vq, &vi->sq[i].napi); in virtnet_open()
1217 struct send_queue *sq = container_of(napi, struct send_queue, napi); in virtnet_poll_tx() local
1218 struct virtnet_info *vi = sq->vq->vdev->priv; in virtnet_poll_tx()
1219 unsigned int index = vq2txq(sq->vq); in virtnet_poll_tx()
1230 free_old_xmit_skbs(sq); in virtnet_poll_tx()
1233 virtqueue_napi_complete(napi, sq->vq, 0); in virtnet_poll_tx()
1235 if (sq->vq->num_free >= 2 + MAX_SKB_FRAGS) in virtnet_poll_tx()
1241 static int xmit_skb(struct send_queue *sq, struct sk_buff *skb) in xmit_skb() argument
1245 struct virtnet_info *vi = sq->vq->vdev->priv; in xmit_skb()
1270 sg_init_table(sq->sg, skb_shinfo(skb)->nr_frags + (can_push ? 1 : 2)); in xmit_skb()
1273 num_sg = skb_to_sgvec(skb, sq->sg, 0, skb->len); in xmit_skb()
1279 sg_set_buf(sq->sg, hdr, hdr_len); in xmit_skb()
1280 num_sg = skb_to_sgvec(skb, sq->sg + 1, 0, skb->len); in xmit_skb()
1285 return virtqueue_add_outbuf(sq->vq, sq->sg, num_sg, skb, GFP_ATOMIC); in xmit_skb()
1292 struct send_queue *sq = &vi->sq[qnum]; in start_xmit() local
1296 bool use_napi = sq->napi.weight; in start_xmit()
1299 free_old_xmit_skbs(sq); in start_xmit()
1302 virtqueue_enable_cb_delayed(sq->vq); in start_xmit()
1308 err = xmit_skb(sq, skb); in start_xmit()
1337 if (sq->vq->num_free < 2+MAX_SKB_FRAGS) { in start_xmit()
1340 unlikely(!virtqueue_enable_cb_delayed(sq->vq))) { in start_xmit()
1342 free_old_xmit_skbs(sq); in start_xmit()
1343 if (sq->vq->num_free >= 2+MAX_SKB_FRAGS) { in start_xmit()
1345 virtqueue_disable_cb(sq->vq); in start_xmit()
1351 virtqueue_kick(sq->vq); in start_xmit()
1546 virtnet_napi_tx_disable(&vi->sq[i].napi); in virtnet_close()
1659 virtqueue_set_affinity(vi->sq[i].vq, -1); in virtnet_clean_affinity()
1684 virtqueue_set_affinity(vi->sq[i].vq, cpu); in virtnet_set_affinity()
1747 ring->tx_max_pending = virtqueue_get_vring_size(vi->sq[0].vq); in virtnet_get_ringparam()
1906 virtnet_napi_tx_disable(&vi->sq[i].napi); in virtnet_freeze_down()
1931 virtnet_napi_tx_enable(vi, vi->sq[i].vq, in virtnet_restore_up()
1932 &vi->sq[i].napi); in virtnet_restore_up()
2030 virtnet_napi_tx_disable(&vi->sq[i].napi); in virtnet_xdp_set()
2053 virtnet_napi_tx_enable(vi, vi->sq[i].vq, in virtnet_xdp_set()
2054 &vi->sq[i].napi); in virtnet_xdp_set()
2064 virtnet_napi_tx_enable(vi, vi->sq[i].vq, in virtnet_xdp_set()
2065 &vi->sq[i].napi); in virtnet_xdp_set()
2164 netif_napi_del(&vi->sq[i].napi); in virtnet_free_queues()
2173 kfree(vi->sq); in virtnet_free_queues()
2214 struct virtqueue *vq = vi->sq[i].vq; in free_unused_bufs()
2310 sprintf(vi->sq[i].name, "output.%d", i); in virtnet_find_vqs()
2312 names[txq2vq(i)] = vi->sq[i].name; in virtnet_find_vqs()
2331 vi->sq[i].vq = vqs[txq2vq(i)]; in virtnet_find_vqs()
2360 vi->sq = kzalloc(sizeof(*vi->sq) * vi->max_queue_pairs, GFP_KERNEL); in virtnet_alloc_queues()
2361 if (!vi->sq) in virtnet_alloc_queues()
2372 netif_tx_napi_add(vi->dev, &vi->sq[i].napi, virtnet_poll_tx, in virtnet_alloc_queues()
2377 sg_init_table(vi->sq[i].sg, ARRAY_SIZE(vi->sq[i].sg)); in virtnet_alloc_queues()
2383 kfree(vi->sq); in virtnet_alloc_queues()