From: Jason Wang <jasowang@redhat.com>
To: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Cc: netdev@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Jesper Dangaard Brouer <hawk@kernel.org>,
John Fastabend <john.fastabend@gmail.com>,
virtualization@lists.linux-foundation.org, bpf@vger.kernel.org
Subject: Re: [PATCH net-next v1 05/19] virtio_net: add prefix virtnet to all struct/api inside virtio_net.h
Date: Thu, 19 Oct 2023 14:14:27 +0800 [thread overview]
Message-ID: <CACGkMEvQvyjxX7PKVtTjMMtQNX3PzuviL=sA5sMftEToduZ5RA@mail.gmail.com> (raw)
In-Reply-To: <20231016120033.26933-6-xuanzhuo@linux.alibaba.com>
On Mon, Oct 16, 2023 at 8:01 PM Xuan Zhuo <xuanzhuo@linux.alibaba.com> wrote:
>
> We move some structures and APIs to the header file, but these
> structures and APIs do not prefixed with virtnet. This patch adds
> virtnet for these.
What's the benefit of doing this? AFAIK virtio-net is the only user
for virtio-net.h?
THanks
>
> Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> ---
> drivers/net/virtio/main.c | 122 ++++++++++++++++----------------
> drivers/net/virtio/virtio_net.h | 30 ++++----
> 2 files changed, 76 insertions(+), 76 deletions(-)
>
> diff --git a/drivers/net/virtio/main.c b/drivers/net/virtio/main.c
> index d8b6c0d86f29..ba38b6078e1d 100644
> --- a/drivers/net/virtio/main.c
> +++ b/drivers/net/virtio/main.c
> @@ -180,7 +180,7 @@ skb_vnet_common_hdr(struct sk_buff *skb)
> * private is used to chain pages for big packets, put the whole
> * most recent used list in the beginning for reuse
> */
> -static void give_pages(struct receive_queue *rq, struct page *page)
> +static void give_pages(struct virtnet_rq *rq, struct page *page)
> {
> struct page *end;
>
> @@ -190,7 +190,7 @@ static void give_pages(struct receive_queue *rq, struct page *page)
> rq->pages = page;
> }
>
> -static struct page *get_a_page(struct receive_queue *rq, gfp_t gfp_mask)
> +static struct page *get_a_page(struct virtnet_rq *rq, gfp_t gfp_mask)
> {
> struct page *p = rq->pages;
>
> @@ -225,7 +225,7 @@ static void virtqueue_napi_complete(struct napi_struct *napi,
> opaque = virtqueue_enable_cb_prepare(vq);
> if (napi_complete_done(napi, processed)) {
> if (unlikely(virtqueue_poll(vq, opaque)))
> - virtqueue_napi_schedule(napi, vq);
> + virtnet_vq_napi_schedule(napi, vq);
> } else {
> virtqueue_disable_cb(vq);
> }
> @@ -240,7 +240,7 @@ static void skb_xmit_done(struct virtqueue *vq)
> virtqueue_disable_cb(vq);
>
> if (napi->weight)
> - virtqueue_napi_schedule(napi, vq);
> + virtnet_vq_napi_schedule(napi, vq);
> else
> /* We were probably waiting for more output buffers. */
> netif_wake_subqueue(vi->dev, vq2txq(vq));
> @@ -281,7 +281,7 @@ static struct sk_buff *virtnet_build_skb(void *buf, unsigned int buflen,
>
> /* Called from bottom half context */
> static struct sk_buff *page_to_skb(struct virtnet_info *vi,
> - struct receive_queue *rq,
> + struct virtnet_rq *rq,
> struct page *page, unsigned int offset,
> unsigned int len, unsigned int truesize,
> unsigned int headroom)
> @@ -380,7 +380,7 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi,
> return skb;
> }
>
> -static void virtnet_rq_unmap(struct receive_queue *rq, void *buf, u32 len)
> +static void virtnet_rq_unmap(struct virtnet_rq *rq, void *buf, u32 len)
> {
> struct page *page = virt_to_head_page(buf);
> struct virtnet_rq_dma *dma;
> @@ -409,7 +409,7 @@ static void virtnet_rq_unmap(struct receive_queue *rq, void *buf, u32 len)
> put_page(page);
> }
>
> -static void *virtnet_rq_get_buf(struct receive_queue *rq, u32 *len, void **ctx)
> +static void *virtnet_rq_get_buf(struct virtnet_rq *rq, u32 *len, void **ctx)
> {
> void *buf;
>
> @@ -420,7 +420,7 @@ static void *virtnet_rq_get_buf(struct receive_queue *rq, u32 *len, void **ctx)
> return buf;
> }
>
> -static void *virtnet_rq_detach_unused_buf(struct receive_queue *rq)
> +static void *virtnet_rq_detach_unused_buf(struct virtnet_rq *rq)
> {
> void *buf;
>
> @@ -431,7 +431,7 @@ static void *virtnet_rq_detach_unused_buf(struct receive_queue *rq)
> return buf;
> }
>
> -static void virtnet_rq_init_one_sg(struct receive_queue *rq, void *buf, u32 len)
> +static void virtnet_rq_init_one_sg(struct virtnet_rq *rq, void *buf, u32 len)
> {
> struct virtnet_rq_dma *dma;
> dma_addr_t addr;
> @@ -456,7 +456,7 @@ static void virtnet_rq_init_one_sg(struct receive_queue *rq, void *buf, u32 len)
> rq->sg[0].length = len;
> }
>
> -static void *virtnet_rq_alloc(struct receive_queue *rq, u32 size, gfp_t gfp)
> +static void *virtnet_rq_alloc(struct virtnet_rq *rq, u32 size, gfp_t gfp)
> {
> struct page_frag *alloc_frag = &rq->alloc_frag;
> struct virtnet_rq_dma *dma;
> @@ -530,11 +530,11 @@ static void virtnet_rq_set_premapped(struct virtnet_info *vi)
> }
> }
>
> -static void free_old_xmit(struct send_queue *sq, bool in_napi)
> +static void free_old_xmit(struct virtnet_sq *sq, bool in_napi)
> {
> struct virtnet_sq_stats stats = {};
>
> - __free_old_xmit(sq, in_napi, &stats);
> + virtnet_free_old_xmit(sq, in_napi, &stats);
>
> /* Avoid overhead when no packets have been processed
> * happens when called speculatively from start_xmit.
> @@ -550,7 +550,7 @@ static void free_old_xmit(struct send_queue *sq, bool in_napi)
>
> static void check_sq_full_and_disable(struct virtnet_info *vi,
> struct net_device *dev,
> - struct send_queue *sq)
> + struct virtnet_sq *sq)
> {
> bool use_napi = sq->napi.weight;
> int qnum;
> @@ -571,7 +571,7 @@ static void check_sq_full_and_disable(struct virtnet_info *vi,
> netif_stop_subqueue(dev, qnum);
> if (use_napi) {
> if (unlikely(!virtqueue_enable_cb_delayed(sq->vq)))
> - virtqueue_napi_schedule(&sq->napi, sq->vq);
> + virtnet_vq_napi_schedule(&sq->napi, sq->vq);
> } else if (unlikely(!virtqueue_enable_cb_delayed(sq->vq))) {
> /* More just got used, free them then recheck. */
> free_old_xmit(sq, false);
> @@ -584,7 +584,7 @@ static void check_sq_full_and_disable(struct virtnet_info *vi,
> }
>
> static int __virtnet_xdp_xmit_one(struct virtnet_info *vi,
> - struct send_queue *sq,
> + struct virtnet_sq *sq,
> struct xdp_frame *xdpf)
> {
> struct virtio_net_hdr_mrg_rxbuf *hdr;
> @@ -674,9 +674,9 @@ static int virtnet_xdp_xmit(struct net_device *dev,
> {
> struct virtnet_info *vi = netdev_priv(dev);
> struct virtnet_sq_stats stats = {};
> - struct receive_queue *rq = vi->rq;
> + struct virtnet_rq *rq = vi->rq;
> struct bpf_prog *xdp_prog;
> - struct send_queue *sq;
> + struct virtnet_sq *sq;
> int nxmit = 0;
> int kicks = 0;
> int ret;
> @@ -697,7 +697,7 @@ static int virtnet_xdp_xmit(struct net_device *dev,
> }
>
> /* Free up any pending old buffers before queueing new ones. */
> - __free_old_xmit(sq, false, &stats);
> + virtnet_free_old_xmit(sq, false, &stats);
>
> for (i = 0; i < n; i++) {
> struct xdp_frame *xdpf = frames[i];
> @@ -708,7 +708,7 @@ static int virtnet_xdp_xmit(struct net_device *dev,
> }
> ret = nxmit;
>
> - if (!is_xdp_raw_buffer_queue(vi, sq - vi->sq))
> + if (!virtnet_is_xdp_raw_buffer_queue(vi, sq - vi->sq))
> check_sq_full_and_disable(vi, dev, sq);
>
> if (flags & XDP_XMIT_FLUSH) {
> @@ -816,7 +816,7 @@ static unsigned int virtnet_get_headroom(struct virtnet_info *vi)
> * across multiple buffers (num_buf > 1), and we make sure buffers
> * have enough headroom.
> */
> -static struct page *xdp_linearize_page(struct receive_queue *rq,
> +static struct page *xdp_linearize_page(struct virtnet_rq *rq,
> int *num_buf,
> struct page *p,
> int offset,
> @@ -897,7 +897,7 @@ static struct sk_buff *receive_small_build_skb(struct virtnet_info *vi,
>
> static struct sk_buff *receive_small_xdp(struct net_device *dev,
> struct virtnet_info *vi,
> - struct receive_queue *rq,
> + struct virtnet_rq *rq,
> struct bpf_prog *xdp_prog,
> void *buf,
> unsigned int xdp_headroom,
> @@ -984,7 +984,7 @@ static struct sk_buff *receive_small_xdp(struct net_device *dev,
>
> static struct sk_buff *receive_small(struct net_device *dev,
> struct virtnet_info *vi,
> - struct receive_queue *rq,
> + struct virtnet_rq *rq,
> void *buf, void *ctx,
> unsigned int len,
> unsigned int *xdp_xmit,
> @@ -1031,7 +1031,7 @@ static struct sk_buff *receive_small(struct net_device *dev,
>
> static struct sk_buff *receive_big(struct net_device *dev,
> struct virtnet_info *vi,
> - struct receive_queue *rq,
> + struct virtnet_rq *rq,
> void *buf,
> unsigned int len,
> struct virtnet_rq_stats *stats)
> @@ -1052,7 +1052,7 @@ static struct sk_buff *receive_big(struct net_device *dev,
> return NULL;
> }
>
> -static void mergeable_buf_free(struct receive_queue *rq, int num_buf,
> +static void mergeable_buf_free(struct virtnet_rq *rq, int num_buf,
> struct net_device *dev,
> struct virtnet_rq_stats *stats)
> {
> @@ -1126,7 +1126,7 @@ static struct sk_buff *build_skb_from_xdp_buff(struct net_device *dev,
> /* TODO: build xdp in big mode */
> static int virtnet_build_xdp_buff_mrg(struct net_device *dev,
> struct virtnet_info *vi,
> - struct receive_queue *rq,
> + struct virtnet_rq *rq,
> struct xdp_buff *xdp,
> void *buf,
> unsigned int len,
> @@ -1214,7 +1214,7 @@ static int virtnet_build_xdp_buff_mrg(struct net_device *dev,
> }
>
> static void *mergeable_xdp_get_buf(struct virtnet_info *vi,
> - struct receive_queue *rq,
> + struct virtnet_rq *rq,
> struct bpf_prog *xdp_prog,
> void *ctx,
> unsigned int *frame_sz,
> @@ -1289,7 +1289,7 @@ static void *mergeable_xdp_get_buf(struct virtnet_info *vi,
>
> static struct sk_buff *receive_mergeable_xdp(struct net_device *dev,
> struct virtnet_info *vi,
> - struct receive_queue *rq,
> + struct virtnet_rq *rq,
> struct bpf_prog *xdp_prog,
> void *buf,
> void *ctx,
> @@ -1349,7 +1349,7 @@ static struct sk_buff *receive_mergeable_xdp(struct net_device *dev,
>
> static struct sk_buff *receive_mergeable(struct net_device *dev,
> struct virtnet_info *vi,
> - struct receive_queue *rq,
> + struct virtnet_rq *rq,
> void *buf,
> void *ctx,
> unsigned int len,
> @@ -1494,7 +1494,7 @@ static void virtio_skb_set_hash(const struct virtio_net_hdr_v1_hash *hdr_hash,
> skb_set_hash(skb, __le32_to_cpu(hdr_hash->hash_value), rss_hash_type);
> }
>
> -static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq,
> +static void receive_buf(struct virtnet_info *vi, struct virtnet_rq *rq,
> void *buf, unsigned int len, void **ctx,
> unsigned int *xdp_xmit,
> struct virtnet_rq_stats *stats)
> @@ -1554,7 +1554,7 @@ static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq,
> * not need to use mergeable_len_to_ctx here - it is enough
> * to store the headroom as the context ignoring the truesize.
> */
> -static int add_recvbuf_small(struct virtnet_info *vi, struct receive_queue *rq,
> +static int add_recvbuf_small(struct virtnet_info *vi, struct virtnet_rq *rq,
> gfp_t gfp)
> {
> char *buf;
> @@ -1583,7 +1583,7 @@ static int add_recvbuf_small(struct virtnet_info *vi, struct receive_queue *rq,
> return err;
> }
>
> -static int add_recvbuf_big(struct virtnet_info *vi, struct receive_queue *rq,
> +static int add_recvbuf_big(struct virtnet_info *vi, struct virtnet_rq *rq,
> gfp_t gfp)
> {
> struct page *first, *list = NULL;
> @@ -1632,7 +1632,7 @@ static int add_recvbuf_big(struct virtnet_info *vi, struct receive_queue *rq,
> return err;
> }
>
> -static unsigned int get_mergeable_buf_len(struct receive_queue *rq,
> +static unsigned int get_mergeable_buf_len(struct virtnet_rq *rq,
> struct ewma_pkt_len *avg_pkt_len,
> unsigned int room)
> {
> @@ -1650,7 +1650,7 @@ static unsigned int get_mergeable_buf_len(struct receive_queue *rq,
> }
>
> static int add_recvbuf_mergeable(struct virtnet_info *vi,
> - struct receive_queue *rq, gfp_t gfp)
> + struct virtnet_rq *rq, gfp_t gfp)
> {
> struct page_frag *alloc_frag = &rq->alloc_frag;
> unsigned int headroom = virtnet_get_headroom(vi);
> @@ -1705,7 +1705,7 @@ static int add_recvbuf_mergeable(struct virtnet_info *vi,
> * before we're receiving packets, or from refill_work which is
> * careful to disable receiving (using napi_disable).
> */
> -static bool try_fill_recv(struct virtnet_info *vi, struct receive_queue *rq,
> +static bool try_fill_recv(struct virtnet_info *vi, struct virtnet_rq *rq,
> gfp_t gfp)
> {
> int err;
> @@ -1737,9 +1737,9 @@ static bool try_fill_recv(struct virtnet_info *vi, struct receive_queue *rq,
> static void skb_recv_done(struct virtqueue *rvq)
> {
> struct virtnet_info *vi = rvq->vdev->priv;
> - struct receive_queue *rq = &vi->rq[vq2rxq(rvq)];
> + struct virtnet_rq *rq = &vi->rq[vq2rxq(rvq)];
>
> - virtqueue_napi_schedule(&rq->napi, rvq);
> + virtnet_vq_napi_schedule(&rq->napi, rvq);
> }
>
> static void virtnet_napi_enable(struct virtqueue *vq, struct napi_struct *napi)
> @@ -1751,7 +1751,7 @@ static void virtnet_napi_enable(struct virtqueue *vq, struct napi_struct *napi)
> * Call local_bh_enable after to trigger softIRQ processing.
> */
> local_bh_disable();
> - virtqueue_napi_schedule(napi, vq);
> + virtnet_vq_napi_schedule(napi, vq);
> local_bh_enable();
> }
>
> @@ -1787,7 +1787,7 @@ static void refill_work(struct work_struct *work)
> int i;
>
> for (i = 0; i < vi->curr_queue_pairs; i++) {
> - struct receive_queue *rq = &vi->rq[i];
> + struct virtnet_rq *rq = &vi->rq[i];
>
> napi_disable(&rq->napi);
> still_empty = !try_fill_recv(vi, rq, GFP_KERNEL);
> @@ -1801,7 +1801,7 @@ static void refill_work(struct work_struct *work)
> }
> }
>
> -static int virtnet_receive(struct receive_queue *rq, int budget,
> +static int virtnet_receive(struct virtnet_rq *rq, int budget,
> unsigned int *xdp_xmit)
> {
> struct virtnet_info *vi = rq->vq->vdev->priv;
> @@ -1848,14 +1848,14 @@ static int virtnet_receive(struct receive_queue *rq, int budget,
> return stats.packets;
> }
>
> -static void virtnet_poll_cleantx(struct receive_queue *rq)
> +static void virtnet_poll_cleantx(struct virtnet_rq *rq)
> {
> struct virtnet_info *vi = rq->vq->vdev->priv;
> unsigned int index = vq2rxq(rq->vq);
> - struct send_queue *sq = &vi->sq[index];
> + struct virtnet_sq *sq = &vi->sq[index];
> struct netdev_queue *txq = netdev_get_tx_queue(vi->dev, index);
>
> - if (!sq->napi.weight || is_xdp_raw_buffer_queue(vi, index))
> + if (!sq->napi.weight || virtnet_is_xdp_raw_buffer_queue(vi, index))
> return;
>
> if (__netif_tx_trylock(txq)) {
> @@ -1878,10 +1878,10 @@ static void virtnet_poll_cleantx(struct receive_queue *rq)
>
> static int virtnet_poll(struct napi_struct *napi, int budget)
> {
> - struct receive_queue *rq =
> - container_of(napi, struct receive_queue, napi);
> + struct virtnet_rq *rq =
> + container_of(napi, struct virtnet_rq, napi);
> struct virtnet_info *vi = rq->vq->vdev->priv;
> - struct send_queue *sq;
> + struct virtnet_sq *sq;
> unsigned int received;
> unsigned int xdp_xmit = 0;
>
> @@ -1972,14 +1972,14 @@ static int virtnet_open(struct net_device *dev)
>
> static int virtnet_poll_tx(struct napi_struct *napi, int budget)
> {
> - struct send_queue *sq = container_of(napi, struct send_queue, napi);
> + struct virtnet_sq *sq = container_of(napi, struct virtnet_sq, napi);
> struct virtnet_info *vi = sq->vq->vdev->priv;
> unsigned int index = vq2txq(sq->vq);
> struct netdev_queue *txq;
> int opaque;
> bool done;
>
> - if (unlikely(is_xdp_raw_buffer_queue(vi, index))) {
> + if (unlikely(virtnet_is_xdp_raw_buffer_queue(vi, index))) {
> /* We don't need to enable cb for XDP */
> napi_complete_done(napi, 0);
> return 0;
> @@ -2016,7 +2016,7 @@ static int virtnet_poll_tx(struct napi_struct *napi, int budget)
> return 0;
> }
>
> -static int xmit_skb(struct send_queue *sq, struct sk_buff *skb)
> +static int xmit_skb(struct virtnet_sq *sq, struct sk_buff *skb)
> {
> struct virtio_net_hdr_mrg_rxbuf *hdr;
> const unsigned char *dest = ((struct ethhdr *)skb->data)->h_dest;
> @@ -2067,7 +2067,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev)
> {
> struct virtnet_info *vi = netdev_priv(dev);
> int qnum = skb_get_queue_mapping(skb);
> - struct send_queue *sq = &vi->sq[qnum];
> + struct virtnet_sq *sq = &vi->sq[qnum];
> int err;
> struct netdev_queue *txq = netdev_get_tx_queue(dev, qnum);
> bool kick = !netdev_xmit_more();
> @@ -2121,7 +2121,7 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev)
> }
>
> static int virtnet_rx_resize(struct virtnet_info *vi,
> - struct receive_queue *rq, u32 ring_num)
> + struct virtnet_rq *rq, u32 ring_num)
> {
> bool running = netif_running(vi->dev);
> int err, qindex;
> @@ -2144,7 +2144,7 @@ static int virtnet_rx_resize(struct virtnet_info *vi,
> }
>
> static int virtnet_tx_resize(struct virtnet_info *vi,
> - struct send_queue *sq, u32 ring_num)
> + struct virtnet_sq *sq, u32 ring_num)
> {
> bool running = netif_running(vi->dev);
> struct netdev_queue *txq;
> @@ -2290,8 +2290,8 @@ static void virtnet_stats(struct net_device *dev,
>
> for (i = 0; i < vi->max_queue_pairs; i++) {
> u64 tpackets, tbytes, terrors, rpackets, rbytes, rdrops;
> - struct receive_queue *rq = &vi->rq[i];
> - struct send_queue *sq = &vi->sq[i];
> + struct virtnet_rq *rq = &vi->rq[i];
> + struct virtnet_sq *sq = &vi->sq[i];
>
> do {
> start = u64_stats_fetch_begin(&sq->stats.syncp);
> @@ -2604,8 +2604,8 @@ static int virtnet_set_ringparam(struct net_device *dev,
> {
> struct virtnet_info *vi = netdev_priv(dev);
> u32 rx_pending, tx_pending;
> - struct receive_queue *rq;
> - struct send_queue *sq;
> + struct virtnet_rq *rq;
> + struct virtnet_sq *sq;
> int i, err;
>
> if (ring->rx_mini_pending || ring->rx_jumbo_pending)
> @@ -2909,7 +2909,7 @@ static void virtnet_get_ethtool_stats(struct net_device *dev,
> size_t offset;
>
> for (i = 0; i < vi->curr_queue_pairs; i++) {
> - struct receive_queue *rq = &vi->rq[i];
> + struct virtnet_rq *rq = &vi->rq[i];
>
> stats_base = (u8 *)&rq->stats;
> do {
> @@ -2923,7 +2923,7 @@ static void virtnet_get_ethtool_stats(struct net_device *dev,
> }
>
> for (i = 0; i < vi->curr_queue_pairs; i++) {
> - struct send_queue *sq = &vi->sq[i];
> + struct virtnet_sq *sq = &vi->sq[i];
>
> stats_base = (u8 *)&sq->stats;
> do {
> @@ -3604,7 +3604,7 @@ static int virtnet_set_features(struct net_device *dev,
> static void virtnet_tx_timeout(struct net_device *dev, unsigned int txqueue)
> {
> struct virtnet_info *priv = netdev_priv(dev);
> - struct send_queue *sq = &priv->sq[txqueue];
> + struct virtnet_sq *sq = &priv->sq[txqueue];
> struct netdev_queue *txq = netdev_get_tx_queue(dev, txqueue);
>
> u64_stats_update_begin(&sq->stats.syncp);
> @@ -3729,10 +3729,10 @@ static void free_receive_page_frags(struct virtnet_info *vi)
>
> static void virtnet_sq_free_unused_buf(struct virtqueue *vq, void *buf)
> {
> - if (!is_xdp_frame(buf))
> + if (!virtnet_is_xdp_frame(buf))
> dev_kfree_skb(buf);
> else
> - xdp_return_frame(ptr_to_xdp(buf));
> + xdp_return_frame(virtnet_ptr_to_xdp(buf));
> }
>
> static void virtnet_rq_free_unused_buf(struct virtqueue *vq, void *buf)
> @@ -3761,7 +3761,7 @@ static void free_unused_bufs(struct virtnet_info *vi)
> }
>
> for (i = 0; i < vi->max_queue_pairs; i++) {
> - struct receive_queue *rq = &vi->rq[i];
> + struct virtnet_rq *rq = &vi->rq[i];
>
> while ((buf = virtnet_rq_detach_unused_buf(rq)) != NULL)
> virtnet_rq_free_unused_buf(rq->vq, buf);
> diff --git a/drivers/net/virtio/virtio_net.h b/drivers/net/virtio/virtio_net.h
> index ddaf0ecf4d9d..282504d6639a 100644
> --- a/drivers/net/virtio/virtio_net.h
> +++ b/drivers/net/virtio/virtio_net.h
> @@ -59,8 +59,8 @@ struct virtnet_rq_dma {
> };
>
> /* Internal representation of a send virtqueue */
> -struct send_queue {
> - /* Virtqueue associated with this send _queue */
> +struct virtnet_sq {
> + /* Virtqueue associated with this virtnet_sq */
> struct virtqueue *vq;
>
> /* TX: fragments + linear part + virtio header */
> @@ -80,8 +80,8 @@ struct send_queue {
> };
>
> /* Internal representation of a receive virtqueue */
> -struct receive_queue {
> - /* Virtqueue associated with this receive_queue */
> +struct virtnet_rq {
> + /* Virtqueue associated with this virtnet_rq */
> struct virtqueue *vq;
>
> struct napi_struct napi;
> @@ -123,8 +123,8 @@ struct virtnet_info {
> struct virtio_device *vdev;
> struct virtqueue *cvq;
> struct net_device *dev;
> - struct send_queue *sq;
> - struct receive_queue *rq;
> + struct virtnet_sq *sq;
> + struct virtnet_rq *rq;
> unsigned int status;
>
> /* Max # of queue pairs supported by the device */
> @@ -201,24 +201,24 @@ struct virtnet_info {
> struct failover *failover;
> };
>
> -static inline bool is_xdp_frame(void *ptr)
> +static inline bool virtnet_is_xdp_frame(void *ptr)
> {
> return (unsigned long)ptr & VIRTIO_XDP_FLAG;
> }
>
> -static inline struct xdp_frame *ptr_to_xdp(void *ptr)
> +static inline struct xdp_frame *virtnet_ptr_to_xdp(void *ptr)
> {
> return (struct xdp_frame *)((unsigned long)ptr & ~VIRTIO_XDP_FLAG);
> }
>
> -static inline void __free_old_xmit(struct send_queue *sq, bool in_napi,
> - struct virtnet_sq_stats *stats)
> +static inline void virtnet_free_old_xmit(struct virtnet_sq *sq, bool in_napi,
> + struct virtnet_sq_stats *stats)
> {
> unsigned int len;
> void *ptr;
>
> while ((ptr = virtqueue_get_buf(sq->vq, &len)) != NULL) {
> - if (!is_xdp_frame(ptr)) {
> + if (!virtnet_is_xdp_frame(ptr)) {
> struct sk_buff *skb = ptr;
>
> pr_debug("Sent skb %p\n", skb);
> @@ -226,7 +226,7 @@ static inline void __free_old_xmit(struct send_queue *sq, bool in_napi,
> stats->bytes += skb->len;
> napi_consume_skb(skb, in_napi);
> } else {
> - struct xdp_frame *frame = ptr_to_xdp(ptr);
> + struct xdp_frame *frame = virtnet_ptr_to_xdp(ptr);
>
> stats->bytes += xdp_get_frame_len(frame);
> xdp_return_frame(frame);
> @@ -235,8 +235,8 @@ static inline void __free_old_xmit(struct send_queue *sq, bool in_napi,
> }
> }
>
> -static inline void virtqueue_napi_schedule(struct napi_struct *napi,
> - struct virtqueue *vq)
> +static inline void virtnet_vq_napi_schedule(struct napi_struct *napi,
> + struct virtqueue *vq)
> {
> if (napi_schedule_prep(napi)) {
> virtqueue_disable_cb(vq);
> @@ -244,7 +244,7 @@ static inline void virtqueue_napi_schedule(struct napi_struct *napi,
> }
> }
>
> -static inline bool is_xdp_raw_buffer_queue(struct virtnet_info *vi, int q)
> +static inline bool virtnet_is_xdp_raw_buffer_queue(struct virtnet_info *vi, int q)
> {
> if (q < (vi->curr_queue_pairs - vi->xdp_queue_pairs))
> return false;
> --
> 2.32.0.3.g01195cf9f
>
next prev parent reply other threads:[~2023-10-19 6:14 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-16 12:00 [PATCH net-next v1 00/19] virtio-net: support AF_XDP zero copy Xuan Zhuo
2023-10-16 12:00 ` [PATCH net-next v1 01/19] virtio_net: rename free_old_xmit_skbs to free_old_xmit Xuan Zhuo
2023-10-19 4:17 ` Jason Wang
2023-10-16 12:00 ` [PATCH net-next v1 02/19] virtio_net: unify the code for recycling the xmit ptr Xuan Zhuo
2023-10-19 4:23 ` Jason Wang
2023-10-16 12:00 ` [PATCH net-next v1 03/19] virtio_net: independent directory Xuan Zhuo
2023-10-19 6:10 ` Jason Wang
2023-10-16 12:00 ` [PATCH net-next v1 04/19] virtio_net: move to virtio_net.h Xuan Zhuo
2023-10-19 6:12 ` Jason Wang
2023-10-19 7:16 ` Xuan Zhuo
2023-10-20 6:59 ` Jason Wang
2023-10-16 12:00 ` [PATCH net-next v1 05/19] virtio_net: add prefix virtnet to all struct/api inside virtio_net.h Xuan Zhuo
2023-10-19 6:14 ` Jason Wang [this message]
2023-10-19 6:36 ` Michael S. Tsirkin
2023-10-16 12:00 ` [PATCH net-next v1 06/19] virtio_net: separate virtnet_rx_resize() Xuan Zhuo
2023-10-19 6:17 ` Jason Wang
2023-10-16 12:00 ` [PATCH net-next v1 07/19] virtio_net: separate virtnet_tx_resize() Xuan Zhuo
2023-10-19 6:18 ` Jason Wang
2023-10-16 12:00 ` [PATCH net-next v1 08/19] virtio_net: sq support premapped mode Xuan Zhuo
2023-10-20 6:50 ` Jason Wang
2023-10-20 7:16 ` Xuan Zhuo
2023-10-16 12:00 ` [PATCH net-next v1 09/19] virtio_net: xsk: bind/unbind xsk Xuan Zhuo
2023-10-20 6:51 ` Jason Wang
2023-10-20 7:28 ` Xuan Zhuo
2023-10-16 12:00 ` [PATCH net-next v1 10/19] virtio_net: xsk: prevent disable tx napi Xuan Zhuo
2023-10-20 6:51 ` Jason Wang
2023-10-16 12:00 ` [PATCH net-next v1 11/19] virtio_net: xsk: tx: support tx Xuan Zhuo
2023-10-20 6:52 ` Jason Wang
2023-10-20 8:06 ` Xuan Zhuo
2023-10-16 12:00 ` [PATCH net-next v1 12/19] virtio_net: xsk: tx: support wakeup Xuan Zhuo
2023-10-20 6:52 ` Jason Wang
2023-10-20 8:09 ` Xuan Zhuo
2023-10-16 12:00 ` [PATCH net-next v1 13/19] virtio_net: xsk: tx: virtnet_free_old_xmit() distinguishes xsk buffer Xuan Zhuo
2023-10-16 23:44 ` Jakub Kicinski
2023-10-17 2:02 ` Xuan Zhuo
2023-10-19 6:38 ` Michael S. Tsirkin
2023-10-19 7:13 ` Xuan Zhuo
2023-10-19 8:42 ` Michael S. Tsirkin
2023-10-16 12:00 ` [PATCH net-next v1 14/19] virtio_net: xsk: tx: virtnet_sq_free_unused_buf() check " Xuan Zhuo
2023-10-20 6:53 ` Jason Wang
2023-10-16 12:00 ` [PATCH net-next v1 15/19] virtio_net: xsk: rx: introduce add_recvbuf_xsk() Xuan Zhuo
2023-10-20 6:56 ` Jason Wang
2023-10-23 6:56 ` Xuan Zhuo
2023-10-16 12:00 ` [PATCH net-next v1 16/19] virtio_net: xsk: rx: introduce receive_xsk() to recv xsk buffer Xuan Zhuo
2023-10-20 6:57 ` Jason Wang
2023-10-23 2:39 ` Xuan Zhuo
2023-11-15 2:35 ` Xuan Zhuo
2023-10-16 12:00 ` [PATCH net-next v1 17/19] virtio_net: xsk: rx: virtnet_rq_free_unused_buf() check " Xuan Zhuo
2023-10-16 12:00 ` [PATCH net-next v1 18/19] virtio_net: update tx timeout record Xuan Zhuo
2023-10-20 6:57 ` Jason Wang
2023-10-16 12:00 ` [PATCH net-next v1 19/19] virtio_net: xdp_features add NETDEV_XDP_ACT_XSK_ZEROCOPY Xuan Zhuo
2023-10-17 2:53 ` [PATCH net-next v1 00/19] virtio-net: support AF_XDP zero copy Jason Wang
2023-10-17 3:02 ` Xuan Zhuo
2023-10-17 3:20 ` Jason Wang
2023-10-17 3:22 ` Xuan Zhuo
2023-10-17 3:28 ` Jason Wang
2023-10-17 5:27 ` Jason Wang
2023-10-17 6:06 ` Xuan Zhuo
2023-10-17 6:26 ` Jason Wang
2023-10-17 6:43 ` Xuan Zhuo
2023-10-17 11:19 ` Xuan Zhuo
2023-10-18 2:46 ` Jason Wang
2023-10-18 2:56 ` Xuan Zhuo
2023-10-18 3:32 ` Xuan Zhuo
2023-10-18 3:40 ` Jason Wang
2023-10-18 1:02 ` Jason Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CACGkMEvQvyjxX7PKVtTjMMtQNX3PzuviL=sA5sMftEToduZ5RA@mail.gmail.com' \
--to=jasowang@redhat.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=kuba@kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=xuanzhuo@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).