All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Xia, Chenbo" <chenbo.xia@intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"olivier.matz@6wind.com" <olivier.matz@6wind.com>,
	"amorenoz@redhat.com" <amorenoz@redhat.com>,
	"david.marchand@redhat.com" <david.marchand@redhat.com>
Subject: Re: [dpdk-dev] [PATCH 13/40] net/virtio: move PCI-specific fields to PCI device
Date: Wed, 30 Dec 2020 03:08:46 +0000	[thread overview]
Message-ID: <MN2PR11MB406312420461EFD457124E519CD70@MN2PR11MB4063.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20201220211405.313012-14-maxime.coquelin@redhat.com>

> -----Original Message-----
> From: Maxime Coquelin <maxime.coquelin@redhat.com>
> Sent: Monday, December 21, 2020 5:14 AM
> To: dev@dpdk.org; Xia, Chenbo <chenbo.xia@intel.com>; olivier.matz@6wind.com;
> amorenoz@redhat.com; david.marchand@redhat.com
> Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
> Subject: [PATCH 13/40] net/virtio: move PCI-specific fields to PCI device
> 
> This patch moves the fields from virtio_hw structure that
> are PCI-specific to virtio_pci_dev_struct.
> 
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
>  drivers/net/virtio/virtio_pci.c | 139 ++++++++++++++++++--------------
>  drivers/net/virtio/virtio_pci.h |  10 +--
>  2 files changed, 85 insertions(+), 64 deletions(-)
> 
> diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
> index f9331e37d7..8c62507a0a 100644
> --- a/drivers/net/virtio/virtio_pci.c
> +++ b/drivers/net/virtio/virtio_pci.c
> @@ -287,18 +287,19 @@ static void
>  modern_read_dev_config(struct virtio_hw *hw, size_t offset,
>  		       void *dst, int length)
>  {
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
>  	int i;
>  	uint8_t *p;
>  	uint8_t old_gen, new_gen;
> 
>  	do {
> -		old_gen = rte_read8(&hw->common_cfg->config_generation);
> +		old_gen = rte_read8(&dev->common_cfg->config_generation);
> 
>  		p = dst;
>  		for (i = 0;  i < length; i++)
> -			*p++ = rte_read8((uint8_t *)hw->dev_cfg + offset + i);
> +			*p++ = rte_read8((uint8_t *)dev->dev_cfg + offset + i);
> 
> -		new_gen = rte_read8(&hw->common_cfg->config_generation);
> +		new_gen = rte_read8(&dev->common_cfg->config_generation);
>  	} while (old_gen != new_gen);
>  }
> 
> @@ -306,23 +307,25 @@ static void
>  modern_write_dev_config(struct virtio_hw *hw, size_t offset,
>  			const void *src, int length)
>  {
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
>  	int i;
>  	const uint8_t *p = src;
> 
>  	for (i = 0;  i < length; i++)
> -		rte_write8((*p++), (((uint8_t *)hw->dev_cfg) + offset + i));
> +		rte_write8((*p++), (((uint8_t *)dev->dev_cfg) + offset + i));
>  }
> 
>  static uint64_t
>  modern_get_features(struct virtio_hw *hw)
>  {
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
>  	uint32_t features_lo, features_hi;
> 
> -	rte_write32(0, &hw->common_cfg->device_feature_select);
> -	features_lo = rte_read32(&hw->common_cfg->device_feature);
> +	rte_write32(0, &dev->common_cfg->device_feature_select);
> +	features_lo = rte_read32(&dev->common_cfg->device_feature);
> 
> -	rte_write32(1, &hw->common_cfg->device_feature_select);
> -	features_hi = rte_read32(&hw->common_cfg->device_feature);
> +	rte_write32(1, &dev->common_cfg->device_feature_select);
> +	features_hi = rte_read32(&dev->common_cfg->device_feature);
> 
>  	return ((uint64_t)features_hi << 32) | features_lo;
>  }
> @@ -330,13 +333,15 @@ modern_get_features(struct virtio_hw *hw)
>  static void
>  modern_set_features(struct virtio_hw *hw, uint64_t features)
>  {
> -	rte_write32(0, &hw->common_cfg->guest_feature_select);
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
> +
> +	rte_write32(0, &dev->common_cfg->guest_feature_select);
>  	rte_write32(features & ((1ULL << 32) - 1),
> -		    &hw->common_cfg->guest_feature);
> +		    &dev->common_cfg->guest_feature);
> 
> -	rte_write32(1, &hw->common_cfg->guest_feature_select);
> +	rte_write32(1, &dev->common_cfg->guest_feature_select);
>  	rte_write32(features >> 32,
> -		    &hw->common_cfg->guest_feature);
> +		    &dev->common_cfg->guest_feature);
>  }
> 
>  static int
> @@ -353,46 +358,59 @@ modern_features_ok(struct virtio_hw *hw)
>  static uint8_t
>  modern_get_status(struct virtio_hw *hw)
>  {
> -	return rte_read8(&hw->common_cfg->device_status);
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
> +
> +	return rte_read8(&dev->common_cfg->device_status);
>  }
> 
>  static void
>  modern_set_status(struct virtio_hw *hw, uint8_t status)
>  {
> -	rte_write8(status, &hw->common_cfg->device_status);
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
> +
> +	rte_write8(status, &dev->common_cfg->device_status);
>  }
> 
>  static uint8_t
>  modern_get_isr(struct virtio_hw *hw)
>  {
> -	return rte_read8(hw->isr);
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
> +
> +	return rte_read8(dev->isr);
>  }
> 
>  static uint16_t
>  modern_set_config_irq(struct virtio_hw *hw, uint16_t vec)
>  {
> -	rte_write16(vec, &hw->common_cfg->msix_config);
> -	return rte_read16(&hw->common_cfg->msix_config);
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
> +
> +	rte_write16(vec, &dev->common_cfg->msix_config);
> +	return rte_read16(&dev->common_cfg->msix_config);
>  }
> 
>  static uint16_t
>  modern_set_queue_irq(struct virtio_hw *hw, struct virtqueue *vq, uint16_t vec)
>  {
> -	rte_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);
> -	rte_write16(vec, &hw->common_cfg->queue_msix_vector);
> -	return rte_read16(&hw->common_cfg->queue_msix_vector);
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
> +
> +	rte_write16(vq->vq_queue_index, &dev->common_cfg->queue_select);
> +	rte_write16(vec, &dev->common_cfg->queue_msix_vector);
> +	return rte_read16(&dev->common_cfg->queue_msix_vector);
>  }
> 
>  static uint16_t
>  modern_get_queue_num(struct virtio_hw *hw, uint16_t queue_id)
>  {
> -	rte_write16(queue_id, &hw->common_cfg->queue_select);
> -	return rte_read16(&hw->common_cfg->queue_size);
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
> +
> +	rte_write16(queue_id, &dev->common_cfg->queue_select);
> +	return rte_read16(&dev->common_cfg->queue_size);
>  }
> 
>  static int
>  modern_setup_queue(struct virtio_hw *hw, struct virtqueue *vq)
>  {
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
>  	uint64_t desc_addr, avail_addr, used_addr;
>  	uint16_t notify_off;
> 
> @@ -405,20 +423,20 @@ modern_setup_queue(struct virtio_hw *hw, struct
> virtqueue *vq)
>  							 ring[vq->vq_nentries]),
>  				   VIRTIO_PCI_VRING_ALIGN);
> 
> -	rte_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);
> +	rte_write16(vq->vq_queue_index, &dev->common_cfg->queue_select);
> 
> -	io_write64_twopart(desc_addr, &hw->common_cfg->queue_desc_lo,
> -				      &hw->common_cfg->queue_desc_hi);
> -	io_write64_twopart(avail_addr, &hw->common_cfg->queue_avail_lo,
> -				       &hw->common_cfg->queue_avail_hi);
> -	io_write64_twopart(used_addr, &hw->common_cfg->queue_used_lo,
> -				      &hw->common_cfg->queue_used_hi);
> +	io_write64_twopart(desc_addr, &dev->common_cfg->queue_desc_lo,
> +				      &dev->common_cfg->queue_desc_hi);
> +	io_write64_twopart(avail_addr, &dev->common_cfg->queue_avail_lo,
> +				       &dev->common_cfg->queue_avail_hi);
> +	io_write64_twopart(used_addr, &dev->common_cfg->queue_used_lo,
> +				      &dev->common_cfg->queue_used_hi);
> 
> -	notify_off = rte_read16(&hw->common_cfg->queue_notify_off);
> -	vq->notify_addr = (void *)((uint8_t *)hw->notify_base +
> -				notify_off * hw->notify_off_multiplier);
> +	notify_off = rte_read16(&dev->common_cfg->queue_notify_off);
> +	vq->notify_addr = (void *)((uint8_t *)dev->notify_base +
> +				notify_off * dev->notify_off_multiplier);
> 
> -	rte_write16(1, &hw->common_cfg->queue_enable);
> +	rte_write16(1, &dev->common_cfg->queue_enable);
> 
>  	PMD_INIT_LOG(DEBUG, "queue %u addresses:", vq->vq_queue_index);
>  	PMD_INIT_LOG(DEBUG, "\t desc_addr: %" PRIx64, desc_addr);
> @@ -433,16 +451,18 @@ modern_setup_queue(struct virtio_hw *hw, struct
> virtqueue *vq)
>  static void
>  modern_del_queue(struct virtio_hw *hw, struct virtqueue *vq)
>  {
> -	rte_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
> +
> +	rte_write16(vq->vq_queue_index, &dev->common_cfg->queue_select);
> 
> -	io_write64_twopart(0, &hw->common_cfg->queue_desc_lo,
> -				  &hw->common_cfg->queue_desc_hi);
> -	io_write64_twopart(0, &hw->common_cfg->queue_avail_lo,
> -				  &hw->common_cfg->queue_avail_hi);
> -	io_write64_twopart(0, &hw->common_cfg->queue_used_lo,
> -				  &hw->common_cfg->queue_used_hi);
> +	io_write64_twopart(0, &dev->common_cfg->queue_desc_lo,
> +				  &dev->common_cfg->queue_desc_hi);
> +	io_write64_twopart(0, &dev->common_cfg->queue_avail_lo,
> +				  &dev->common_cfg->queue_avail_hi);
> +	io_write64_twopart(0, &dev->common_cfg->queue_used_lo,
> +				  &dev->common_cfg->queue_used_hi);
> 
> -	rte_write16(0, &hw->common_cfg->queue_enable);
> +	rte_write16(0, &dev->common_cfg->queue_enable);
>  }
> 
>  static void
> @@ -607,18 +627,19 @@ get_cfg_addr(struct rte_pci_device *dev, struct
> virtio_pci_cap *cap)
>  #define PCI_MSIX_ENABLE 0x8000
> 
>  static int
> -virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> +virtio_read_caps(struct rte_pci_device *pci_dev, struct virtio_hw *hw)
>  {
> +	struct virtio_pci_dev *dev = virtio_pci_get_dev(hw);
>  	uint8_t pos;
>  	struct virtio_pci_cap cap;
>  	int ret;
> 
> -	if (rte_pci_map_device(dev)) {
> +	if (rte_pci_map_device(pci_dev)) {
>  		PMD_INIT_LOG(DEBUG, "failed to map pci device!");
>  		return -1;
>  	}
> 
> -	ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
> +	ret = rte_pci_read_config(pci_dev, &pos, 1, PCI_CAPABILITY_LIST);
>  	if (ret != 1) {
>  		PMD_INIT_LOG(DEBUG,
>  			     "failed to read pci capability list, ret %d", ret);
> @@ -626,7 +647,7 @@ virtio_read_caps(struct rte_pci_device *dev, struct
> virtio_hw *hw)
>  	}
> 
>  	while (pos) {
> -		ret = rte_pci_read_config(dev, &cap, 2, pos);
> +		ret = rte_pci_read_config(pci_dev, &cap, 2, pos);
>  		if (ret != 2) {
>  			PMD_INIT_LOG(DEBUG,
>  				     "failed to read pci cap at pos: %x ret %d",
> @@ -642,7 +663,7 @@ virtio_read_caps(struct rte_pci_device *dev, struct
> virtio_hw *hw)
>  			 */
>  			uint16_t flags;
> 
> -			ret = rte_pci_read_config(dev, &flags, sizeof(flags),
> +			ret = rte_pci_read_config(pci_dev, &flags, sizeof(flags),
>  					pos + 2);
>  			if (ret != sizeof(flags)) {
>  				PMD_INIT_LOG(DEBUG,
> @@ -664,7 +685,7 @@ virtio_read_caps(struct rte_pci_device *dev, struct
> virtio_hw *hw)
>  			goto next;
>  		}
> 
> -		ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
> +		ret = rte_pci_read_config(pci_dev, &cap, sizeof(cap), pos);
>  		if (ret != sizeof(cap)) {
>  			PMD_INIT_LOG(DEBUG,
>  				     "failed to read pci cap at pos: %x ret %d",
> @@ -678,24 +699,24 @@ virtio_read_caps(struct rte_pci_device *dev, struct
> virtio_hw *hw)
> 
>  		switch (cap.cfg_type) {
>  		case VIRTIO_PCI_CAP_COMMON_CFG:
> -			hw->common_cfg = get_cfg_addr(dev, &cap);
> +			dev->common_cfg = get_cfg_addr(pci_dev, &cap);
>  			break;
>  		case VIRTIO_PCI_CAP_NOTIFY_CFG:
> -			ret = rte_pci_read_config(dev,
> -					&hw->notify_off_multiplier,
> +			ret = rte_pci_read_config(pci_dev,
> +					&dev->notify_off_multiplier,
>  					4, pos + sizeof(cap));
>  			if (ret != 4)
>  				PMD_INIT_LOG(DEBUG,
>  					"failed to read notify_off_multiplier, ret %d",
>  					ret);
>  			else
> -				hw->notify_base = get_cfg_addr(dev, &cap);
> +				dev->notify_base = get_cfg_addr(pci_dev, &cap);
>  			break;
>  		case VIRTIO_PCI_CAP_DEVICE_CFG:
> -			hw->dev_cfg = get_cfg_addr(dev, &cap);
> +			dev->dev_cfg = get_cfg_addr(pci_dev, &cap);
>  			break;
>  		case VIRTIO_PCI_CAP_ISR_CFG:
> -			hw->isr = get_cfg_addr(dev, &cap);
> +			dev->isr = get_cfg_addr(pci_dev, &cap);
>  			break;
>  		}
> 
> @@ -703,19 +724,19 @@ virtio_read_caps(struct rte_pci_device *dev, struct
> virtio_hw *hw)
>  		pos = cap.cap_next;
>  	}
> 
> -	if (hw->common_cfg == NULL || hw->notify_base == NULL ||
> -	    hw->dev_cfg == NULL    || hw->isr == NULL) {
> +	if (dev->common_cfg == NULL || dev->notify_base == NULL ||
> +	    dev->dev_cfg == NULL    || dev->isr == NULL) {
>  		PMD_INIT_LOG(INFO, "no modern virtio pci device found.");
>  		return -1;
>  	}
> 
>  	PMD_INIT_LOG(INFO, "found modern virtio pci device.");
> 
> -	PMD_INIT_LOG(DEBUG, "common cfg mapped at: %p", hw->common_cfg);
> -	PMD_INIT_LOG(DEBUG, "device cfg mapped at: %p", hw->dev_cfg);
> -	PMD_INIT_LOG(DEBUG, "isr cfg mapped at: %p", hw->isr);
> +	PMD_INIT_LOG(DEBUG, "common cfg mapped at: %p", dev->common_cfg);
> +	PMD_INIT_LOG(DEBUG, "device cfg mapped at: %p", dev->dev_cfg);
> +	PMD_INIT_LOG(DEBUG, "isr cfg mapped at: %p", dev->isr);
>  	PMD_INIT_LOG(DEBUG, "notify base: %p, notify off multiplier: %u",
> -		hw->notify_base, hw->notify_off_multiplier);
> +		dev->notify_base, dev->notify_off_multiplier);
> 
>  	return 0;
>  }
> diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h
> index a60edc4a93..5629b37050 100644
> --- a/drivers/net/virtio/virtio_pci.h
> +++ b/drivers/net/virtio/virtio_pci.h
> @@ -264,13 +264,8 @@ struct virtio_hw {
>  	bool        has_rx_offload;
>  	uint16_t    port_id;
>  	uint8_t     mac_addr[RTE_ETHER_ADDR_LEN];
> -	uint32_t    notify_off_multiplier;
>  	uint32_t    speed;  /* link speed in MB */
>  	uint8_t     duplex;
> -	uint8_t     *isr;
> -	uint16_t    *notify_base;
> -	struct virtio_pci_common_cfg *common_cfg;
> -	struct virtio_net_config *dev_cfg;
>  	/*
>  	 * App management thread and virtio interrupt handler thread
>  	 * both can change device state, this lock is meant to avoid
> @@ -286,6 +281,11 @@ struct virtio_hw {
>  struct virtio_pci_dev {
>  	struct virtio_hw hw;
>  	struct rte_pci_device *pci_dev;
> +	struct virtio_pci_common_cfg *common_cfg;
> +	struct virtio_net_config *dev_cfg;
> +	uint8_t *isr;
> +	uint16_t *notify_base;
> +	uint32_t notify_off_multiplier;
>  	bool modern;
>  };
> 
> --
> 2.29.2

Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>

  reply	other threads:[~2020-12-30  3:09 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-20 21:13 [dpdk-dev] [PATCH 00/40] net/virtio: Virtio PMD rework Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 01/40] bus/vdev: add helper to get vdev from eth dev Maxime Coquelin
2020-12-30  3:02   ` Xia, Chenbo
2021-01-05 21:15   ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 02/40] net/virtio: Introduce Virtio bus type Maxime Coquelin
2020-12-30  3:02   ` Xia, Chenbo
2021-01-05 21:15   ` David Marchand
2021-01-14  9:24     ` Maxime Coquelin
2021-01-14 10:54       ` Maxime Coquelin
2021-01-14 11:55         ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 03/40] net/virtio: refactor virtio-user device Maxime Coquelin
2020-12-30  3:02   ` Xia, Chenbo
2021-01-05 21:16   ` David Marchand
2021-01-14  9:26     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 04/40] net/virtio: introduce PCI device metadata Maxime Coquelin
2020-12-30  3:02   ` Xia, Chenbo
2021-01-05 21:16   ` David Marchand
2021-01-14 11:05     ` Maxime Coquelin
2021-01-14 14:40       ` David Marchand
2021-01-14 14:44         ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 05/40] net/virtio: move PCI device init in dedicated file Maxime Coquelin
2020-12-30  3:02   ` Xia, Chenbo
2021-01-05 21:19   ` David Marchand
2021-01-14 16:04     ` Maxime Coquelin
2021-01-14 16:14       ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 06/40] net/virtio: move PCI specific dev init to PCI ethdev init Maxime Coquelin
2020-12-30  3:05   ` Xia, Chenbo
2021-01-06  8:58   ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 07/40] net/virtio: move MSIX detection to PCI ethdev Maxime Coquelin
2020-12-30  3:05   ` Xia, Chenbo
2021-01-06  8:22   ` David Marchand
2021-01-14 17:19     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 08/40] net/virtio: force IOVA as VA mode for Virtio-user Maxime Coquelin
2020-12-30  3:06   ` Xia, Chenbo
2021-01-06  9:06   ` David Marchand
2021-01-06  9:11     ` Thomas Monjalon
2021-01-06  9:22       ` Maxime Coquelin
2021-01-06 16:37       ` Kinsella, Ray
2021-01-06  9:14     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 09/40] net/virtio: store PCI type in Virtio device metadata Maxime Coquelin
2020-12-30  3:07   ` Xia, Chenbo
2021-01-06  9:14   ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 10/40] net/virtio: add callback for device closing Maxime Coquelin
2020-12-30  3:07   ` Xia, Chenbo
2021-01-06  9:33   ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 11/40] net/virtio: validate features at bus level Maxime Coquelin
2020-12-30  3:08   ` Xia, Chenbo
2021-01-06  9:33   ` David Marchand
2021-01-15  9:20     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 12/40] net/virtio: remove bus type enum Maxime Coquelin
2020-12-30  3:08   ` Xia, Chenbo
2021-01-06  9:33   ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 13/40] net/virtio: move PCI-specific fields to PCI device Maxime Coquelin
2020-12-30  3:08   ` Xia, Chenbo [this message]
2021-01-06  9:58   ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 14/40] net/virtio: pack virtio HW struct Maxime Coquelin
2020-12-30  3:09   ` Xia, Chenbo
2021-01-06  9:58   ` David Marchand
2021-01-15  9:35     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 15/40] net/virtio: move legacy IO to Virtio PCI Maxime Coquelin
2020-12-30  3:09   ` Xia, Chenbo
2021-01-06 10:09   ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 16/40] net/virtio: introduce generic virtio header Maxime Coquelin
2020-12-30  3:09   ` Xia, Chenbo
2021-01-06 10:08   ` David Marchand
2021-01-15  9:39     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 17/40] net/virtio: move features definition to generic header Maxime Coquelin
2020-12-30  3:14   ` Xia, Chenbo
2021-01-14  8:40     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 18/40] net/virtio: move virtqueue defines in " Maxime Coquelin
2020-12-30  3:14   ` Xia, Chenbo
2021-01-06 15:53   ` David Marchand
2021-01-15 10:55     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 19/40] net/virtio: move config definitions to " Maxime Coquelin
2020-12-30  3:15   ` Xia, Chenbo
2021-01-06 16:01   ` David Marchand
2021-01-15 11:01     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 20/40] net/virtio: make interrupt handling more generic Maxime Coquelin
2020-12-30  3:17   ` Xia, Chenbo
2021-01-14  8:43     ` Maxime Coquelin
2021-01-06 16:07   ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 21/40] net/virtio: move vring alignment to generic header Maxime Coquelin
2020-12-30  3:18   ` Xia, Chenbo
2021-01-06 16:13   ` David Marchand
2020-12-20 21:13 ` [dpdk-dev] [PATCH 22/40] net/virtio: remove last PCI refs in non-PCI code Maxime Coquelin
2020-12-30  3:25   ` Xia, Chenbo
2021-01-14  8:46     ` Maxime Coquelin
2021-01-06 16:18   ` David Marchand
2021-01-15 11:10     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 23/40] net/virtio: make Vhost-user req sender consistent Maxime Coquelin
2021-01-06 11:50   ` Xia, Chenbo
2021-01-15  9:47     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 24/40] net/virtio: add Virtio-user ops to set owner Maxime Coquelin
2021-01-06 11:50   ` Xia, Chenbo
2020-12-20 21:13 ` [dpdk-dev] [PATCH 25/40] net/virtio: add Virtio-user features ops Maxime Coquelin
2021-01-06 11:54   ` Xia, Chenbo
2021-01-13 13:43     ` Adrian Moreno
2021-01-13 13:54       ` Maxime Coquelin
2021-01-15 14:19       ` Maxime Coquelin
2021-01-13 13:57   ` Adrian Moreno
2021-01-15 14:29     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 26/40] net/virtio: add Virtio-user protocol " Maxime Coquelin
2021-01-06 11:55   ` Xia, Chenbo
2020-12-20 21:13 ` [dpdk-dev] [PATCH 27/40] net/virtio: add Virtio-user memory tables ops Maxime Coquelin
2021-01-06 11:57   ` Xia, Chenbo
2021-01-15  9:57     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 28/40] net/virtio: add Virtio-user vring setting ops Maxime Coquelin
2021-01-05 21:24   ` David Marchand
2021-01-06 12:01   ` Xia, Chenbo
2021-01-15 10:12     ` Maxime Coquelin
2021-01-06 12:03   ` Xia, Chenbo
2021-01-15 10:15     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 29/40] net/virtio: add Virtio-user vring file ops Maxime Coquelin
2021-01-05 21:24   ` David Marchand
2021-01-06 12:04   ` Xia, Chenbo
2021-01-15 10:17     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 30/40] net/virtio: add Virtio-user vring address ops Maxime Coquelin
2021-01-06 12:06   ` Xia, Chenbo
2021-01-15 10:19     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 31/40] net/virtio: add Virtio-user status ops Maxime Coquelin
2021-01-06 12:09   ` Xia, Chenbo
2021-01-15 10:48     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 32/40] net/virtio: remove useless request ops Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 33/40] net/virtio: improve Virtio-user errors handling Maxime Coquelin
2021-01-07  2:26   ` Xia, Chenbo
2021-01-15 11:09     ` Maxime Coquelin
2020-12-20 21:13 ` [dpdk-dev] [PATCH 34/40] net/virtio: move Vhost-user reqs to Vhost-user backend Maxime Coquelin
2020-12-20 21:14 ` [dpdk-dev] [PATCH 35/40] net/virtio: make server mode blocking Maxime Coquelin
2021-01-07  3:20   ` Xia, Chenbo
2021-01-15 11:13     ` Maxime Coquelin
2020-12-20 21:14 ` [dpdk-dev] [PATCH 36/40] net/virtio: move protocol features to Vhost-user Maxime Coquelin
2020-12-20 21:14 ` [dpdk-dev] [PATCH 37/40] net/virtio: introduce backend data Maxime Coquelin
2021-01-05 21:26   ` David Marchand
2021-01-13 17:18   ` Adrian Moreno
2021-01-15 16:49     ` Maxime Coquelin
2020-12-20 21:14 ` [dpdk-dev] [PATCH 38/40] net/virtio: move Vhost-user specifics to its backend Maxime Coquelin
2021-01-07  6:32   ` Xia, Chenbo
2021-01-15 12:03     ` Maxime Coquelin
2020-12-20 21:14 ` [dpdk-dev] [PATCH 39/40] net/virtio: move Vhost-kernel data " Maxime Coquelin
2021-01-07  6:42   ` Xia, Chenbo
2021-01-11  8:02   ` Xia, Chenbo
2021-01-15 11:54     ` Maxime Coquelin
2021-01-18 20:36     ` Maxime Coquelin
2020-12-20 21:14 ` [dpdk-dev] [PATCH 40/40] net/virtio: move Vhost-vDPA " Maxime Coquelin
2020-12-22 15:20   ` Maxime Coquelin
2021-01-07  6:50   ` Xia, Chenbo
2021-01-15 12:08     ` Maxime Coquelin
2021-01-11  8:05   ` Xia, Chenbo
2020-12-21 10:58 ` [dpdk-dev] [PATCH 00/40] net/virtio: Virtio PMD rework Maxime Coquelin

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=MN2PR11MB406312420461EFD457124E519CD70@MN2PR11MB4063.namprd11.prod.outlook.com \
    --to=chenbo.xia@intel.com \
    --cc=amorenoz@redhat.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=maxime.coquelin@redhat.com \
    --cc=olivier.matz@6wind.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.