All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	virtualization@lists.linux-foundation.org
Cc: Richard Weinberger <richard@nod.at>,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	Johannes Berg <johannes@sipsolutions.net>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Hans de Goede <hdegoede@redhat.com>,
	Mark Gross <markgross@kernel.org>,
	Vadim Pasternak <vadimp@nvidia.com>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Cornelia Huck <cohuck@redhat.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	Eric Farman <farman@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Jesper Dangaard Brouer <hawk@kernel.org>,
	John Fastabend <john.fastabend@gmail.com>,
	Vincent Whitchurch <vincent.whitchurch@axis.com>,
	linux-um@lists.infradead.org, netdev@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-remoteproc@vger.kernel.org, linux-s390@vger.kernel.org,
	kvm@vger.kernel.org, bpf@vger.kernel.org,
	kangjie.xu@linux.alibaba.com
Subject: Re: [PATCH v11 09/40] virtio_ring: split: extract the logic of alloc state and extra
Date: Fri, 1 Jul 2022 16:55:05 +0800	[thread overview]
Message-ID: <c4d24e5c-1a3e-e577-462e-c9ebde90d659@redhat.com> (raw)
In-Reply-To: <20220629065656.54420-10-xuanzhuo@linux.alibaba.com>


在 2022/6/29 14:56, Xuan Zhuo 写道:
> Separate the logic of creating desc_state, desc_extra, and subsequent
> patches will call it independently.
>
> Since only the structure vring is passed into __vring_new_virtqueue(),
> when creating the function vring_alloc_state_extra_split(), we prefer to
> use vring_virtqueue_split as a parameter, and it will be more convenient
> to pass vring_virtqueue_split to some subsequent functions.
>
> So a new vring_virtqueue_split variable is added in
> __vring_new_virtqueue().
>
> Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> ---
>   drivers/virtio/virtio_ring.c | 58 +++++++++++++++++++++++++-----------
>   1 file changed, 40 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
> index a9ceb9c16c54..cedd340d6db7 100644
> --- a/drivers/virtio/virtio_ring.c
> +++ b/drivers/virtio/virtio_ring.c
> @@ -204,6 +204,7 @@ struct vring_virtqueue {
>   #endif
>   };
>   
> +static struct vring_desc_extra *vring_alloc_desc_extra(unsigned int num);
>   
>   /*
>    * Helpers.
> @@ -939,6 +940,32 @@ static void *virtqueue_detach_unused_buf_split(struct virtqueue *_vq)
>   	return NULL;
>   }
>   
> +static int vring_alloc_state_extra_split(struct vring_virtqueue_split *vring)
> +{
> +	struct vring_desc_state_split *state;
> +	struct vring_desc_extra *extra;
> +	u32 num = vring->vring.num;
> +
> +	state = kmalloc_array(num, sizeof(struct vring_desc_state_split), GFP_KERNEL);
> +	if (!state)
> +		goto err_state;
> +
> +	extra = vring_alloc_desc_extra(num);
> +	if (!extra)
> +		goto err_extra;
> +
> +	memset(state, 0, num * sizeof(struct vring_desc_state_split));
> +
> +	vring->desc_state = state;
> +	vring->desc_extra = extra;
> +	return 0;
> +
> +err_extra:
> +	kfree(state);
> +err_state:
> +	return -ENOMEM;
> +}
> +
>   static void vring_free_split(struct vring_virtqueue_split *vring,
>   			     struct virtio_device *vdev)
>   {
> @@ -2224,7 +2251,7 @@ EXPORT_SYMBOL_GPL(vring_interrupt);
>   
>   /* Only available for split ring */
>   struct virtqueue *__vring_new_virtqueue(unsigned int index,
> -					struct vring vring,
> +					struct vring _vring,
>   					struct virtio_device *vdev,
>   					bool weak_barriers,
>   					bool context,
> @@ -2232,7 +2259,9 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
>   					void (*callback)(struct virtqueue *),
>   					const char *name)
>   {
> +	struct vring_virtqueue_split vring = {};


Nit: to reduce the change-set, let's use vring_split here?

Other looks good.

Thanks


>   	struct vring_virtqueue *vq;
> +	int err;
>   
>   	if (virtio_has_feature(vdev, VIRTIO_F_RING_PACKED))
>   		return NULL;
> @@ -2261,7 +2290,7 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
>   	vq->split.queue_dma_addr = 0;
>   	vq->split.queue_size_in_bytes = 0;
>   
> -	vq->split.vring = vring;
> +	vq->split.vring = _vring;
>   	vq->split.avail_flags_shadow = 0;
>   	vq->split.avail_idx_shadow = 0;
>   
> @@ -2273,30 +2302,23 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
>   					vq->split.avail_flags_shadow);
>   	}
>   
> -	vq->split.desc_state = kmalloc_array(vring.num,
> -			sizeof(struct vring_desc_state_split), GFP_KERNEL);
> -	if (!vq->split.desc_state)
> -		goto err_state;
> +	vring.vring = _vring;
>   
> -	vq->split.desc_extra = vring_alloc_desc_extra(vring.num);
> -	if (!vq->split.desc_extra)
> -		goto err_extra;
> +	err = vring_alloc_state_extra_split(&vring);
> +	if (err) {
> +		kfree(vq);
> +		return NULL;
> +	}
>   
> -	memset(vq->split.desc_state, 0, vring.num *
> -			sizeof(struct vring_desc_state_split));
> +	vq->split.desc_state = vring.desc_state;
> +	vq->split.desc_extra = vring.desc_extra;
>   
> -	virtqueue_init(vq, vq->split.vring.num);
> +	virtqueue_init(vq, vring.vring.num);
>   
>   	spin_lock(&vdev->vqs_list_lock);
>   	list_add_tail(&vq->vq.list, &vdev->vqs);
>   	spin_unlock(&vdev->vqs_list_lock);
>   	return &vq->vq;
> -
> -err_extra:
> -	kfree(vq->split.desc_state);
> -err_state:
> -	kfree(vq);
> -	return NULL;
>   }
>   EXPORT_SYMBOL_GPL(__vring_new_virtqueue);
>   


WARNING: multiple messages have this Message-ID (diff)
From: Jason Wang <jasowang@redhat.com>
To: Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	virtualization@lists.linux-foundation.org
Cc: Vadim Pasternak <vadimp@nvidia.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	linux-remoteproc@vger.kernel.org,
	Alexei Starovoitov <ast@kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Eric Dumazet <edumazet@google.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	linux-s390@vger.kernel.org, kvm@vger.kernel.org,
	Daniel Borkmann <daniel@iogearbox.net>,
	Richard Weinberger <richard@nod.at>,
	Vincent Whitchurch <vincent.whitchurch@axis.com>,
	John Fastabend <john.fastabend@gmail.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Eric Farman <farman@linux.ibm.com>,
	Jesper Dangaard Brouer <hawk@kernel.org>,
	Vasily Gorbik <gor@linux.ibm.com>,
	kangjie.xu@linux.alibaba.com, Heiko Carstens <hca@linux.ibm.com>,
	linux-um@lists.infradead.org, Mark Gross <markgross@kernel.org>,
	Hans de Goede <hdegoede@redhat.com>,
	platform-driver-x86@vger.kernel.org, bpf@vger.kernel.org,
	Paolo Abeni <pabeni@redhat.com>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	netdev@vger.kernel.org, Cornelia Huck <cohuck@redhat.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Johannes Berg <johannes@sipsolutions.net>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH v11 09/40] virtio_ring: split: extract the logic of alloc state and extra
Date: Fri, 1 Jul 2022 16:55:05 +0800	[thread overview]
Message-ID: <c4d24e5c-1a3e-e577-462e-c9ebde90d659@redhat.com> (raw)
In-Reply-To: <20220629065656.54420-10-xuanzhuo@linux.alibaba.com>


在 2022/6/29 14:56, Xuan Zhuo 写道:
> Separate the logic of creating desc_state, desc_extra, and subsequent
> patches will call it independently.
>
> Since only the structure vring is passed into __vring_new_virtqueue(),
> when creating the function vring_alloc_state_extra_split(), we prefer to
> use vring_virtqueue_split as a parameter, and it will be more convenient
> to pass vring_virtqueue_split to some subsequent functions.
>
> So a new vring_virtqueue_split variable is added in
> __vring_new_virtqueue().
>
> Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> ---
>   drivers/virtio/virtio_ring.c | 58 +++++++++++++++++++++++++-----------
>   1 file changed, 40 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
> index a9ceb9c16c54..cedd340d6db7 100644
> --- a/drivers/virtio/virtio_ring.c
> +++ b/drivers/virtio/virtio_ring.c
> @@ -204,6 +204,7 @@ struct vring_virtqueue {
>   #endif
>   };
>   
> +static struct vring_desc_extra *vring_alloc_desc_extra(unsigned int num);
>   
>   /*
>    * Helpers.
> @@ -939,6 +940,32 @@ static void *virtqueue_detach_unused_buf_split(struct virtqueue *_vq)
>   	return NULL;
>   }
>   
> +static int vring_alloc_state_extra_split(struct vring_virtqueue_split *vring)
> +{
> +	struct vring_desc_state_split *state;
> +	struct vring_desc_extra *extra;
> +	u32 num = vring->vring.num;
> +
> +	state = kmalloc_array(num, sizeof(struct vring_desc_state_split), GFP_KERNEL);
> +	if (!state)
> +		goto err_state;
> +
> +	extra = vring_alloc_desc_extra(num);
> +	if (!extra)
> +		goto err_extra;
> +
> +	memset(state, 0, num * sizeof(struct vring_desc_state_split));
> +
> +	vring->desc_state = state;
> +	vring->desc_extra = extra;
> +	return 0;
> +
> +err_extra:
> +	kfree(state);
> +err_state:
> +	return -ENOMEM;
> +}
> +
>   static void vring_free_split(struct vring_virtqueue_split *vring,
>   			     struct virtio_device *vdev)
>   {
> @@ -2224,7 +2251,7 @@ EXPORT_SYMBOL_GPL(vring_interrupt);
>   
>   /* Only available for split ring */
>   struct virtqueue *__vring_new_virtqueue(unsigned int index,
> -					struct vring vring,
> +					struct vring _vring,
>   					struct virtio_device *vdev,
>   					bool weak_barriers,
>   					bool context,
> @@ -2232,7 +2259,9 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
>   					void (*callback)(struct virtqueue *),
>   					const char *name)
>   {
> +	struct vring_virtqueue_split vring = {};


Nit: to reduce the change-set, let's use vring_split here?

Other looks good.

Thanks


>   	struct vring_virtqueue *vq;
> +	int err;
>   
>   	if (virtio_has_feature(vdev, VIRTIO_F_RING_PACKED))
>   		return NULL;
> @@ -2261,7 +2290,7 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
>   	vq->split.queue_dma_addr = 0;
>   	vq->split.queue_size_in_bytes = 0;
>   
> -	vq->split.vring = vring;
> +	vq->split.vring = _vring;
>   	vq->split.avail_flags_shadow = 0;
>   	vq->split.avail_idx_shadow = 0;
>   
> @@ -2273,30 +2302,23 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
>   					vq->split.avail_flags_shadow);
>   	}
>   
> -	vq->split.desc_state = kmalloc_array(vring.num,
> -			sizeof(struct vring_desc_state_split), GFP_KERNEL);
> -	if (!vq->split.desc_state)
> -		goto err_state;
> +	vring.vring = _vring;
>   
> -	vq->split.desc_extra = vring_alloc_desc_extra(vring.num);
> -	if (!vq->split.desc_extra)
> -		goto err_extra;
> +	err = vring_alloc_state_extra_split(&vring);
> +	if (err) {
> +		kfree(vq);
> +		return NULL;
> +	}
>   
> -	memset(vq->split.desc_state, 0, vring.num *
> -			sizeof(struct vring_desc_state_split));
> +	vq->split.desc_state = vring.desc_state;
> +	vq->split.desc_extra = vring.desc_extra;
>   
> -	virtqueue_init(vq, vq->split.vring.num);
> +	virtqueue_init(vq, vring.vring.num);
>   
>   	spin_lock(&vdev->vqs_list_lock);
>   	list_add_tail(&vq->vq.list, &vdev->vqs);
>   	spin_unlock(&vdev->vqs_list_lock);
>   	return &vq->vq;
> -
> -err_extra:
> -	kfree(vq->split.desc_state);
> -err_state:
> -	kfree(vq);
> -	return NULL;
>   }
>   EXPORT_SYMBOL_GPL(__vring_new_virtqueue);
>   

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

WARNING: multiple messages have this Message-ID (diff)
From: Jason Wang <jasowang@redhat.com>
To: Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	virtualization@lists.linux-foundation.org
Cc: Richard Weinberger <richard@nod.at>,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	Johannes Berg <johannes@sipsolutions.net>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Hans de Goede <hdegoede@redhat.com>,
	Mark Gross <markgross@kernel.org>,
	Vadim Pasternak <vadimp@nvidia.com>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Cornelia Huck <cohuck@redhat.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	Eric Farman <farman@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Jesper Dangaard Brouer <hawk@kernel.org>,
	John Fastabend <john.fastabend@gmail.com>,
	Vincent Whitchurch <vincent.whitchurch@axis.com>,
	linux-um@lists.infradead.org, netdev@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	linux-remoteproc@vger.kernel.org, linux-s390@vger.kernel.org,
	kvm@vger.kernel.org, bpf@vger.kernel.org,
	kangjie.xu@linux.alibaba.com
Subject: Re: [PATCH v11 09/40] virtio_ring: split: extract the logic of alloc state and extra
Date: Fri, 1 Jul 2022 16:55:05 +0800	[thread overview]
Message-ID: <c4d24e5c-1a3e-e577-462e-c9ebde90d659@redhat.com> (raw)
In-Reply-To: <20220629065656.54420-10-xuanzhuo@linux.alibaba.com>


在 2022/6/29 14:56, Xuan Zhuo 写道:
> Separate the logic of creating desc_state, desc_extra, and subsequent
> patches will call it independently.
>
> Since only the structure vring is passed into __vring_new_virtqueue(),
> when creating the function vring_alloc_state_extra_split(), we prefer to
> use vring_virtqueue_split as a parameter, and it will be more convenient
> to pass vring_virtqueue_split to some subsequent functions.
>
> So a new vring_virtqueue_split variable is added in
> __vring_new_virtqueue().
>
> Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> ---
>   drivers/virtio/virtio_ring.c | 58 +++++++++++++++++++++++++-----------
>   1 file changed, 40 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
> index a9ceb9c16c54..cedd340d6db7 100644
> --- a/drivers/virtio/virtio_ring.c
> +++ b/drivers/virtio/virtio_ring.c
> @@ -204,6 +204,7 @@ struct vring_virtqueue {
>   #endif
>   };
>   
> +static struct vring_desc_extra *vring_alloc_desc_extra(unsigned int num);
>   
>   /*
>    * Helpers.
> @@ -939,6 +940,32 @@ static void *virtqueue_detach_unused_buf_split(struct virtqueue *_vq)
>   	return NULL;
>   }
>   
> +static int vring_alloc_state_extra_split(struct vring_virtqueue_split *vring)
> +{
> +	struct vring_desc_state_split *state;
> +	struct vring_desc_extra *extra;
> +	u32 num = vring->vring.num;
> +
> +	state = kmalloc_array(num, sizeof(struct vring_desc_state_split), GFP_KERNEL);
> +	if (!state)
> +		goto err_state;
> +
> +	extra = vring_alloc_desc_extra(num);
> +	if (!extra)
> +		goto err_extra;
> +
> +	memset(state, 0, num * sizeof(struct vring_desc_state_split));
> +
> +	vring->desc_state = state;
> +	vring->desc_extra = extra;
> +	return 0;
> +
> +err_extra:
> +	kfree(state);
> +err_state:
> +	return -ENOMEM;
> +}
> +
>   static void vring_free_split(struct vring_virtqueue_split *vring,
>   			     struct virtio_device *vdev)
>   {
> @@ -2224,7 +2251,7 @@ EXPORT_SYMBOL_GPL(vring_interrupt);
>   
>   /* Only available for split ring */
>   struct virtqueue *__vring_new_virtqueue(unsigned int index,
> -					struct vring vring,
> +					struct vring _vring,
>   					struct virtio_device *vdev,
>   					bool weak_barriers,
>   					bool context,
> @@ -2232,7 +2259,9 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
>   					void (*callback)(struct virtqueue *),
>   					const char *name)
>   {
> +	struct vring_virtqueue_split vring = {};


Nit: to reduce the change-set, let's use vring_split here?

Other looks good.

Thanks


>   	struct vring_virtqueue *vq;
> +	int err;
>   
>   	if (virtio_has_feature(vdev, VIRTIO_F_RING_PACKED))
>   		return NULL;
> @@ -2261,7 +2290,7 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
>   	vq->split.queue_dma_addr = 0;
>   	vq->split.queue_size_in_bytes = 0;
>   
> -	vq->split.vring = vring;
> +	vq->split.vring = _vring;
>   	vq->split.avail_flags_shadow = 0;
>   	vq->split.avail_idx_shadow = 0;
>   
> @@ -2273,30 +2302,23 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
>   					vq->split.avail_flags_shadow);
>   	}
>   
> -	vq->split.desc_state = kmalloc_array(vring.num,
> -			sizeof(struct vring_desc_state_split), GFP_KERNEL);
> -	if (!vq->split.desc_state)
> -		goto err_state;
> +	vring.vring = _vring;
>   
> -	vq->split.desc_extra = vring_alloc_desc_extra(vring.num);
> -	if (!vq->split.desc_extra)
> -		goto err_extra;
> +	err = vring_alloc_state_extra_split(&vring);
> +	if (err) {
> +		kfree(vq);
> +		return NULL;
> +	}
>   
> -	memset(vq->split.desc_state, 0, vring.num *
> -			sizeof(struct vring_desc_state_split));
> +	vq->split.desc_state = vring.desc_state;
> +	vq->split.desc_extra = vring.desc_extra;
>   
> -	virtqueue_init(vq, vq->split.vring.num);
> +	virtqueue_init(vq, vring.vring.num);
>   
>   	spin_lock(&vdev->vqs_list_lock);
>   	list_add_tail(&vq->vq.list, &vdev->vqs);
>   	spin_unlock(&vdev->vqs_list_lock);
>   	return &vq->vq;
> -
> -err_extra:
> -	kfree(vq->split.desc_state);
> -err_state:
> -	kfree(vq);
> -	return NULL;
>   }
>   EXPORT_SYMBOL_GPL(__vring_new_virtqueue);
>   


_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um

  reply	other threads:[~2022-07-01  8:55 UTC|newest]

Thread overview: 246+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-29  6:56 [PATCH v11 00/40] virtio pci support VIRTIO_F_RING_RESET Xuan Zhuo
2022-06-29  6:56 ` Xuan Zhuo
2022-06-29  6:56 ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 01/40] virtio: add helper virtqueue_get_vring_max_size() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-30  6:35   ` Jason Wang
2022-06-30  6:35     ` Jason Wang
2022-06-30  6:35     ` Jason Wang
2022-07-01  6:43     ` Xuan Zhuo
2022-07-01  6:43       ` Xuan Zhuo
2022-07-01  6:43       ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 02/40] virtio: struct virtio_config_ops add callbacks for queue_reset Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-30  6:39   ` Jason Wang
2022-06-30  6:39     ` Jason Wang
2022-06-30  6:39     ` Jason Wang
2022-07-01  6:28   ` Michael S. Tsirkin
2022-07-01  6:28     ` Michael S. Tsirkin
2022-07-01  6:28     ` Michael S. Tsirkin
2022-07-01  6:42     ` Xuan Zhuo
2022-07-01  6:42       ` Xuan Zhuo
2022-07-01  6:42       ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 03/40] virtio_ring: update the document of the virtqueue_detach_unused_buf for queue reset Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 04/40] virtio_ring: extract the logic of freeing vring Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 05/40] virtio_ring: split vring_virtqueue Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-30  6:40   ` Jason Wang
2022-06-30  6:40     ` Jason Wang
2022-06-30  6:40     ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 06/40] virtio_ring: introduce virtqueue_init() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 07/40] virtio_ring: split: introduce vring_free_split() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 08/40] virtio_ring: split: extract the logic of alloc queue Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  8:26   ` Jason Wang
2022-07-01  8:26     ` Jason Wang
2022-07-01  8:26     ` Jason Wang
2022-07-01  8:45     ` Xuan Zhuo
2022-07-01  8:45       ` Xuan Zhuo
2022-07-01  8:45       ` Xuan Zhuo
2022-07-04  3:59       ` Jason Wang
2022-07-04  3:59         ` Jason Wang
2022-07-04  3:59         ` Jason Wang
2022-07-05  2:12         ` Xuan Zhuo
2022-07-05  2:12           ` Xuan Zhuo
2022-07-05  2:12           ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 09/40] virtio_ring: split: extract the logic of alloc state and extra Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  8:55   ` Jason Wang [this message]
2022-07-01  8:55     ` Jason Wang
2022-07-01  8:55     ` Jason Wang
2022-07-04  2:04     ` Xuan Zhuo
2022-07-04  2:04       ` Xuan Zhuo
2022-07-04  2:04       ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 10/40] virtio_ring: split: extract the logic of attach vring Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  9:00   ` Jason Wang
2022-07-01  9:00     ` Jason Wang
2022-07-01  9:00     ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 11/40] virtio_ring: split: extract the logic of vring init Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  9:00   ` Jason Wang
2022-07-01  9:00     ` Jason Wang
2022-07-01  9:00     ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 12/40] virtio_ring: split: introduce virtqueue_reinit_split() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 13/40] virtio_ring: split: reserve vring_align, may_reduce_num Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  9:03   ` Jason Wang
2022-07-01  9:03     ` Jason Wang
2022-07-01  9:03     ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 14/40] virtio_ring: split: introduce virtqueue_resize_split() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  9:09   ` Jason Wang
2022-07-01  9:09     ` Jason Wang
2022-07-01  9:09     ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 15/40] virtio_ring: packed: introduce vring_free_packed Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 16/40] virtio_ring: packed: extract the logic of alloc queue Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 17/40] virtio_ring: packed: extract the logic of alloc state and extra Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 18/40] virtio_ring: packed: extract the logic of attach vring Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 19/40] virtio_ring: packed: extract the logic of vring init Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 20/40] virtio_ring: packed: introduce virtqueue_reinit_packed() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 21/40] virtio_ring: packed: introduce virtqueue_resize_packed() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  9:27   ` Jason Wang
2022-07-01  9:27     ` Jason Wang
2022-07-01  9:27     ` Jason Wang
2022-07-04  2:13     ` Xuan Zhuo
2022-07-04  2:13       ` Xuan Zhuo
2022-07-04  2:13       ` Xuan Zhuo
2022-07-04  4:02       ` Jason Wang
2022-07-04  4:02         ` Jason Wang
2022-07-04  4:02         ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 22/40] virtio_ring: introduce virtqueue_resize() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  9:31   ` Jason Wang
2022-07-01  9:31     ` Jason Wang
2022-07-01  9:31     ` Jason Wang
2022-07-04  2:20     ` Xuan Zhuo
2022-07-04  2:20       ` Xuan Zhuo
2022-07-04  2:20       ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 23/40] virtio_pci: move struct virtio_pci_common_cfg to virtio_pci_modern.h Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  9:33   ` Jason Wang
2022-07-01  9:33     ` Jason Wang
2022-07-01  9:33     ` Jason Wang
2022-07-04  2:23     ` Xuan Zhuo
2022-07-04  2:23       ` Xuan Zhuo
2022-07-04  2:23       ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 24/40] virtio_pci: struct virtio_pci_common_cfg add queue_notify_data Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  9:34   ` Jason Wang
2022-07-01  9:34     ` Jason Wang
2022-07-01  9:34     ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 25/40] virtio: allow to unbreak/break virtqueue individually Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  6:31   ` Michael S. Tsirkin
2022-07-01  6:31     ` Michael S. Tsirkin
2022-07-01  6:31     ` Michael S. Tsirkin
2022-07-01  9:36     ` Jason Wang
2022-07-01  9:36       ` Jason Wang
2022-07-01  9:36       ` Jason Wang
2022-07-04  3:47       ` Jason Wang
2022-07-04  3:47         ` Jason Wang
2022-07-04  3:47         ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 26/40] virtio: queue_reset: add VIRTIO_F_RING_RESET Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 27/40] virtio_pci: struct virtio_pci_common_cfg add queue_reset Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 28/40] virtio_pci: introduce helper to get/set queue reset Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-01  9:39   ` Jason Wang
2022-07-01  9:39     ` Jason Wang
2022-07-01  9:39     ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 29/40] virtio_pci: extract the logic of active vq for modern pci Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 30/40] virtio_pci: support VIRTIO_F_RING_RESET Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-04  3:27   ` Jason Wang
2022-07-04  3:27     ` Jason Wang
2022-07-04  3:27     ` Jason Wang
2022-06-29  6:56 ` [PATCH v11 31/40] virtio: find_vqs() add arg sizes Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 32/40] virtio_pci: support the arg sizes of find_vqs() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 33/40] virtio_mmio: " Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 34/40] virtio: add helper virtio_find_vqs_ctx_size() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 35/40] virtio_net: set the default max ring size by find_vqs() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 36/40] virtio_net: get ringparam by virtqueue_get_vring_max_size() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 37/40] virtio_net: split free_unused_bufs() Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 38/40] virtio_net: support rx queue resize Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-04  3:44   ` Jason Wang
2022-07-04  3:44     ` Jason Wang
2022-07-04  3:44     ` Jason Wang
2022-07-05  1:59     ` Xuan Zhuo
2022-07-05  1:59       ` Xuan Zhuo
2022-07-05  1:59       ` Xuan Zhuo
2022-07-08  6:20       ` Jason Wang
2022-07-08  6:20         ` Jason Wang
2022-07-08  6:20         ` Jason Wang
2022-07-15  8:36         ` Xuan Zhuo
2022-07-15  8:36           ` Xuan Zhuo
2022-07-15  8:36           ` Xuan Zhuo
2022-07-18  8:56           ` Jason Wang
2022-07-18  8:56             ` Jason Wang
2022-07-18  8:56             ` Jason Wang
2022-07-18  8:58             ` Xuan Zhuo
2022-07-18  8:58               ` Xuan Zhuo
2022-07-18  8:58               ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 39/40] virtio_net: support tx " Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-07-04  3:45   ` Jason Wang
2022-07-04  3:45     ` Jason Wang
2022-07-04  3:45     ` Jason Wang
2022-07-05  2:00     ` Xuan Zhuo
2022-07-05  2:00       ` Xuan Zhuo
2022-07-05  2:00       ` Xuan Zhuo
2022-07-08  6:23       ` Jason Wang
2022-07-08  6:23         ` Jason Wang
2022-07-08  6:23         ` Jason Wang
2022-07-15  8:28         ` Xuan Zhuo
2022-07-15  8:28           ` Xuan Zhuo
2022-07-15  8:28           ` Xuan Zhuo
2022-07-18  8:57           ` Jason Wang
2022-07-18  8:57             ` Jason Wang
2022-07-18  8:57             ` Jason Wang
2022-07-18  9:11             ` Xuan Zhuo
2022-07-18  9:11               ` Xuan Zhuo
2022-07-18  9:11               ` Xuan Zhuo
2022-06-29  6:56 ` [PATCH v11 40/40] virtio_net: support set_ringparam Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo
2022-06-29  6:56   ` Xuan Zhuo

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=c4d24e5c-1a3e-e577-462e-c9ebde90d659@redhat.com \
    --to=jasowang@redhat.com \
    --cc=agordeev@linux.ibm.com \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=ast@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=borntraeger@linux.ibm.com \
    --cc=bpf@vger.kernel.org \
    --cc=cohuck@redhat.com \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=farman@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hawk@kernel.org \
    --cc=hca@linux.ibm.com \
    --cc=hdegoede@redhat.com \
    --cc=johannes@sipsolutions.net \
    --cc=john.fastabend@gmail.com \
    --cc=kangjie.xu@linux.alibaba.com \
    --cc=kuba@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=markgross@kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pasic@linux.ibm.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=richard@nod.at \
    --cc=svens@linux.ibm.com \
    --cc=vadimp@nvidia.com \
    --cc=vincent.whitchurch@axis.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.