All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tetsuya Mukawa <mukawa@igel.co.jp>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org, ann.zhuangyanying@huawei.com
Subject: Re: [RFC PATCH v3 2/2] vhost: Add VHOST PMD
Date: Fri, 23 Oct 2015 12:48:13 +0900	[thread overview]
Message-ID: <5629ADFD.9030202@igel.co.jp> (raw)
In-Reply-To: <20151022124921.GA20740@bricha3-MOBL3>

On 2015/10/22 21:49, Bruce Richardson wrote:
> On Thu, Oct 22, 2015 at 06:45:50PM +0900, Tetsuya Mukawa wrote:
>> The patch introduces a new PMD. This PMD is implemented as thin wrapper
>> of librte_vhost. It means librte_vhost is also needed to compile the PMD.
>> The vhost messages will be handled only when a port is started. So start
>> a port first, then invoke QEMU.
>>
>> The PMD has 2 parameters.
>>  - iface:  The parameter is used to specify a path connect to a
>>            virtio-net device.
>>  - queues: The parameter is used to specify the number of the queues
>>            virtio-net device has.
>>            (Default: 1)
>>
>> Here is an example.
>> $ ./testpmd -c f -n 4 --vdev 'eth_vhost0,iface=/tmp/sock0,queues=3' -- -i
>>
>> To connect above testpmd, here is qemu command example.
>>
>> $ qemu-system-x86_64 \
>>         <snip>
>>         -chardev socket,id=chr0,path=/tmp/sock0 \
>>         -netdev vhost-user,id=net0,chardev=chr0,vhostforce \
>>         -device virtio-net-pci,netdev=net0
>>
>> Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
> Hi Tetsuya,
>
> a few comments inline below.
>
> /Bruce
>
>> ---
>>  config/common_linuxapp                      |   6 +
> <snip>
>> index 0000000..66bfc2b
>> --- /dev/null
>> +++ b/drivers/net/vhost/rte_eth_vhost.c
>> @@ -0,0 +1,735 @@
>> +/*-
>> + *   BSD LICENSE
>> + *
>> + *   Copyright (c) 2010-2015 Intel Corporation.
> This is probably not the copyright line you want on your new files.

Hi Bruce,

I appreciate your comments.
Yes, I will change above.

>> +
>> +static uint16_t
>> +eth_vhost_rx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs)
>> +{
>> +	struct vhost_queue *r = q;
>> +	uint16_t nb_rx = 0;
>> +
>> +	if (unlikely(r->internal == NULL))
>> +		return 0;
>> +
>> +	if (unlikely(rte_atomic32_read(&r->allow_queuing) == 0))
>> +		return 0;
>> +
>> +	rte_atomic32_set(&r->while_queuing, 1);
>> +
>> +	if (unlikely(rte_atomic32_read(&r->allow_queuing) == 0))
>> +		goto out;
>> +
>> +	/* Dequeue packets from guest TX queue */
>> +	nb_rx = (uint16_t)rte_vhost_dequeue_burst(r->device,
>> +			VIRTIO_TXQ, r->mb_pool, bufs, nb_bufs);
>> +
>> +	rte_atomic64_add(&(r->rx_pkts), nb_rx);
> Do we really need to use atomics here? It will slow things down a lot. For
> other PMDs the assumption is always that only a single thread can access each
> queue at a time - it's up to the app to use locks to enforce that restriction
> if necessary.

I agree we don't need to use atomic here.
I will change it in next patches.

>> +static int
>> +new_device(struct virtio_net *dev)
>> +{
>> +	struct rte_eth_dev *eth_dev;
>> +	struct pmd_internal *internal;
>> +	struct vhost_queue *vq;
>> +	uint16_t queues;
>> +	unsigned i;
>> +
>> +	if (dev == NULL) {
>> +		RTE_LOG(INFO, PMD, "invalid argument\n");
>> +		return -1;
>> +	}
>> +
>> +	internal = find_internal_resource(dev->ifname);
>> +	if (internal == NULL) {
>> +		RTE_LOG(INFO, PMD, "invalid device name\n");
>> +		return -1;
>> +	}
>> +
>> +	/*
>> +	 * Todo: To support multi queue, get the number of queues here.
>> +	 * So far, vhost provides only one queue.
>> +	 */
>> +	queues = 1;
>> +
>> +	if ((queues < internal->nb_rx_queues) ||
>> +			(queues < internal->nb_tx_queues)) {
>> +		RTE_LOG(INFO, PMD, "Not enough queues\n");
>> +		return -1;
>> +	}
>> +
>> +	eth_dev = rte_eth_dev_allocated(internal->dev_name);
>> +	if (eth_dev == NULL) {
>> +		RTE_LOG(INFO, PMD, "failuer to find ethdev\n");
> typo "failure". Probably shoudl also be written just as "Failed to find ethdev".

Thanks, I will fix it.

>> +static struct eth_driver rte_vhost_pmd = {
>> +	.pci_drv = {
>> +		.name = "rte_vhost_pmd",
>> +		.drv_flags = RTE_PCI_DRV_DETACHABLE,
>> +	},
>> +};
> If you base this patchset on top of Bernard's patchset to remove the PCI devices
> then you shouldn't need these pci_dev and id_table structures.

Sure, I will check him latest patches. And will rebase on it.

Regards,
Tetsuya

  reply	other threads:[~2015-10-23  3:48 UTC|newest]

Thread overview: 200+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-31  3:55 [RFC PATCH v2] Add VHOST PMD Tetsuya Mukawa
2015-08-31  3:55 ` [RFC PATCH v2] vhost: " Tetsuya Mukawa
2015-09-23 17:47   ` Loftus, Ciara
2015-10-16  8:40     ` Tetsuya Mukawa
2015-10-20 14:13       ` Loftus, Ciara
2015-10-21  4:30         ` Tetsuya Mukawa
2015-10-21 10:09           ` Bruce Richardson
2015-10-16 12:52   ` Bruce Richardson
2015-10-19  1:51     ` Tetsuya Mukawa
2015-10-19  9:32       ` Loftus, Ciara
2015-10-19  9:45         ` Bruce Richardson
2015-10-19 10:50           ` Tetsuya Mukawa
2015-10-19 13:26             ` Panu Matilainen
2015-10-19 13:27               ` Richardson, Bruce
2015-10-21  4:35                 ` Tetsuya Mukawa
2015-10-21  6:25                   ` Panu Matilainen
2015-10-21 10:22                     ` Bruce Richardson
2015-10-22  9:50                       ` Tetsuya Mukawa
2015-10-27 13:44                         ` Traynor, Kevin
2015-10-28  2:24                           ` Tetsuya Mukawa
2015-10-22  9:45   ` [RFC PATCH v3 0/2] " Tetsuya Mukawa
2015-10-22  9:45     ` [RFC PATCH v3 1/2] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-10-27  6:12       ` [PATCH 0/3] Add VHOST PMD Tetsuya Mukawa
2015-10-27  6:12         ` [PATCH 1/3] vhost: Fix wrong handling of virtqueue array index Tetsuya Mukawa
2015-10-27  6:29           ` Yuanhan Liu
2015-10-27  6:33             ` Yuanhan Liu
2015-10-27  6:47           ` Yuanhan Liu
2015-10-27  7:28             ` Tetsuya Mukawa
2015-10-27  7:34               ` Yuanhan Liu
2015-10-27  6:12         ` [PATCH 2/3] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-10-30 17:49           ` Loftus, Ciara
2015-11-02  3:15             ` Tetsuya Mukawa
2015-10-27  6:12         ` [PATCH 3/3] vhost: Add VHOST PMD Tetsuya Mukawa
2015-11-02  3:58           ` [PATCH v2 0/2] " Tetsuya Mukawa
2015-11-02  3:58             ` [PATCH v2 1/2] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-11-09  5:16               ` [PATCH v3 0/2] Add VHOST PMD Tetsuya Mukawa
2015-11-09  5:17                 ` [PATCH v3 1/2] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-11-09 18:16                   ` Aaron Conole
2015-11-10  3:13                     ` Tetsuya Mukawa
2015-11-10  7:16                       ` Panu Matilainen
2015-11-10  9:48                         ` Tetsuya Mukawa
2015-11-10 10:05                           ` Panu Matilainen
2015-11-10 10:15                             ` Tetsuya Mukawa
2015-11-09  5:17                 ` [PATCH v3 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2015-11-09  6:21                   ` Yuanhan Liu
2015-11-09  6:27                     ` Tetsuya Mukawa
2015-11-09 22:22                   ` Stephen Hemminger
2015-11-10  3:14                     ` Tetsuya Mukawa
2015-11-12 12:52                   ` Wang, Zhihong
2015-11-13  3:09                     ` Tetsuya Mukawa
2015-11-13  3:50                       ` Wang, Zhihong
2015-11-13  4:03                   ` Rich Lane
2015-11-13  4:29                     ` Tetsuya Mukawa
2015-11-13  5:20                   ` [PATCH v4 0/2] " Tetsuya Mukawa
2015-11-13  5:20                     ` [PATCH v4 1/2] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-11-17 13:29                       ` Yuanhan Liu
2015-11-19  2:03                         ` Tetsuya Mukawa
2015-11-19  2:18                           ` Yuanhan Liu
2015-11-19  3:13                             ` Tetsuya Mukawa
2015-11-19  3:33                               ` Yuanhan Liu
2015-11-19  5:14                                 ` Tetsuya Mukawa
2015-11-19  5:45                                   ` Yuanhan Liu
2015-11-19  5:58                                     ` Tetsuya Mukawa
2015-11-19  6:31                                       ` Yuanhan Liu
2015-11-19  6:37                                         ` Tetsuya Mukawa
2015-11-13  5:20                     ` [PATCH v4 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2015-11-16  1:57                       ` Wang, Zhihong
2015-11-20 11:43                       ` Yuanhan Liu
2015-11-24  2:48                         ` Tetsuya Mukawa
2015-11-24  3:40                           ` Yuanhan Liu
2015-11-24  3:44                             ` Tetsuya Mukawa
2015-11-21  0:15                       ` Rich Lane
2015-11-24  4:41                         ` Tetsuya Mukawa
2015-11-24  9:00                       ` [PATCH v5 0/3] " Tetsuya Mukawa
2015-11-24  9:00                         ` [PATCH v5 1/3] vhost: Add callback and private data for vhost PMD Tetsuya Mukawa
2015-12-17 11:42                           ` Yuanhan Liu
2015-12-18  3:15                             ` Tetsuya Mukawa
2015-12-18  3:36                               ` Tetsuya Mukawa
2015-12-18  4:15                               ` Yuanhan Liu
2015-12-18  4:28                                 ` Tetsuya Mukawa
2015-12-18 18:01                                   ` Rich Lane
2015-12-21  2:10                                     ` Tetsuya Mukawa
2015-12-22  4:36                                       ` Yuanhan Liu
2015-12-22  3:41                                     ` Yuanhan Liu
2015-12-22  4:47                                       ` Rich Lane
2015-12-22  5:47                                         ` Yuanhan Liu
2015-12-22  9:38                                           ` Rich Lane
2015-12-23  2:44                                             ` Yuanhan Liu
2015-12-23 22:00                                               ` Thomas Monjalon
2015-12-24  3:51                                                 ` Yuanhan Liu
2015-12-24  4:07                                                   ` Tetsuya Mukawa
2015-12-24  3:09                                         ` Tetsuya Mukawa
2015-12-24  3:54                                           ` Tetsuya Mukawa
2015-12-24  4:00                                           ` Yuanhan Liu
2015-12-24  4:23                                             ` Tetsuya Mukawa
2015-12-24  5:37                                           ` Rich Lane
2015-12-24  7:58                                             ` Tetsuya Mukawa
2015-12-28 21:59                                               ` Rich Lane
2016-01-06  3:56                                                 ` Tetsuya Mukawa
2016-01-06  7:38                                                   ` Yuanhan Liu
2015-12-18 10:03                                 ` Xie, Huawei
2015-12-21  2:10                                   ` Tetsuya Mukawa
2016-02-02 11:18                           ` [PATCH v6 0/2] Add VHOST PMD Tetsuya Mukawa
2016-02-02 19:52                             ` Rich Lane
2016-02-02 11:18                           ` [PATCH v6 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-02-02 11:18                           ` [PATCH v6 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-02-02 23:43                             ` Ferruh Yigit
2016-02-03  2:13                               ` Tetsuya Mukawa
2016-02-03  7:48                               ` Tetsuya Mukawa
2016-02-03  9:24                                 ` Ferruh Yigit
2016-02-03  9:35                                   ` Tetsuya Mukawa
2016-02-04  7:26                           ` [PATCH v7 0/2] " Tetsuya Mukawa
2016-02-04  7:26                           ` [PATCH v7 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-02-04  7:26                           ` [PATCH v7 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-02-04 11:17                             ` Ferruh Yigit
2016-02-05  6:28                               ` Tetsuya Mukawa
2016-02-05  6:35                                 ` Yuanhan Liu
2016-02-05  7:10                                   ` Tetsuya Mukawa
2016-02-08  9:42                                 ` Ferruh Yigit
2016-02-09  1:54                                   ` Tetsuya Mukawa
2016-02-05 11:28                             ` [PATCH v8 0/2] " Tetsuya Mukawa
2016-02-05 11:28                             ` [PATCH v8 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-02-06  4:57                               ` Yuanhan Liu
2016-02-05 11:28                             ` [PATCH v8 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-02-06  5:12                               ` Yuanhan Liu
2016-02-09  9:38                               ` [PATCH v9 0/2] " Tetsuya Mukawa
2016-02-24  2:45                                 ` Qiu, Michael
2016-02-24  5:09                                   ` Tetsuya Mukawa
2016-02-25  7:51                                     ` Qiu, Michael
2016-02-26  4:29                                       ` Tetsuya Mukawa
2016-02-26  8:35                                         ` Tetsuya Mukawa
2016-03-01  2:00                                           ` Qiu, Michael
2016-03-01  2:19                                             ` Tetsuya Mukawa
2016-03-02  2:24                                               ` Qiu, Michael
2016-03-04  1:12                                                 ` Tetsuya Mukawa
2016-02-09  9:38                               ` [PATCH v9 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-04  4:17                                 ` [PATCH v10 0/2] Add VHOST PMD Tetsuya Mukawa
2016-03-04  4:17                                 ` [PATCH v10 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-04  4:17                                 ` [PATCH v10 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-03-04  8:39                                   ` Yuanhan Liu
2016-03-04  9:58                                     ` Tetsuya Mukawa
2016-03-07  2:07                                   ` [PATCH v11 0/2] " Tetsuya Mukawa
2016-03-07  2:07                                   ` [PATCH v11 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-07  2:07                                   ` [PATCH v11 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-03-14 12:02                                     ` Bruce Richardson
2016-03-15  5:35                                       ` Tetsuya Mukawa
2016-03-15  8:31                                     ` [PATCH v12 0/2] " Tetsuya Mukawa
2016-03-15  8:31                                     ` [PATCH v12 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-18 13:54                                       ` Thomas Monjalon
2016-03-15  8:31                                     ` [PATCH v12 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-03-18 12:27                                       ` Bruce Richardson
2016-03-18 13:41                                         ` Tetsuya Mukawa
2016-03-18 13:52                                           ` Thomas Monjalon
2016-03-18 14:03                                             ` Tetsuya Mukawa
2016-03-18 14:13                                               ` Bruce Richardson
2016-03-18 14:21                                                 ` Tetsuya Mukawa
2016-03-21  5:41                                         ` Tetsuya Mukawa
2016-03-21  5:45                                       ` [PATCH v13 0/2] " Tetsuya Mukawa
2016-03-21 12:42                                         ` Bruce Richardson
2016-03-21  5:45                                       ` [PATCH v13 1/2] ethdev: Add a new event type to notify a queue state changed event Tetsuya Mukawa
2016-03-21  8:37                                         ` Thomas Monjalon
2016-03-21  9:24                                           ` Tetsuya Mukawa
2016-03-21 11:05                                             ` Bruce Richardson
2016-03-21 13:51                                               ` Tetsuya Mukawa
2016-03-21  5:45                                       ` [PATCH v13 2/2] vhost: Add VHOST PMD Tetsuya Mukawa
2016-03-21 15:40                                         ` Loftus, Ciara
2016-03-22  1:55                                           ` Tetsuya Mukawa
2016-03-22  2:50                                             ` Tetsuya Mukawa
2016-03-22 10:33                                               ` Loftus, Ciara
2016-02-09  9:38                               ` [PATCH v9 " Tetsuya Mukawa
2015-11-24  9:00                         ` [PATCH v5 2/3] " Tetsuya Mukawa
2015-12-18  7:45                           ` Yuanhan Liu
2015-12-18  9:25                             ` Tetsuya Mukawa
2015-11-24  9:00                         ` [PATCH v5 3/3] vhost: Add helper function to convert port id to virtio device pointer Tetsuya Mukawa
2015-12-17 11:47                           ` Yuanhan Liu
2015-12-18  3:15                             ` Tetsuya Mukawa
2015-12-18  4:19                               ` Yuanhan Liu
2015-12-08  1:12                         ` [PATCH v5 0/3] Add VHOST PMD Tetsuya Mukawa
2015-12-08  2:03                           ` Yuanhan Liu
2015-12-08  2:10                             ` Tetsuya Mukawa
2015-11-13  5:32                     ` [PATCH v4 0/2] " Yuanhan Liu
2015-11-13  5:37                       ` Tetsuya Mukawa
2015-11-13  6:50                       ` Tetsuya Mukawa
2015-11-17 13:26                         ` Yuanhan Liu
2015-11-19  1:20                           ` Tetsuya Mukawa
2015-11-09  5:42                 ` [PATCH v3 " Yuanhan Liu
2015-11-02  3:58             ` [PATCH v2 2/2] vhost: " Tetsuya Mukawa
2015-11-06  2:22               ` Yuanhan Liu
2015-11-06  3:54                 ` Tetsuya Mukawa
2015-11-05  2:17             ` [PATCH v2 0/2] " Tetsuya Mukawa
2015-11-09 22:25           ` [PATCH 3/3] vhost: " Stephen Hemminger
2015-11-10  3:27             ` Tetsuya Mukawa
2015-10-27  7:54         ` [PATCH 0/3] " Tetsuya Mukawa
2015-10-30 18:30           ` Thomas Monjalon
2015-11-02  3:15             ` Tetsuya Mukawa
2015-10-22  9:45     ` [RFC PATCH v3 2/2] vhost: " Tetsuya Mukawa
2015-10-22 12:49       ` Bruce Richardson
2015-10-23  3:48         ` Tetsuya Mukawa [this message]
2015-10-29 14:25       ` Xie, Huawei
2015-10-30  1:18         ` Tetsuya Mukawa

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=5629ADFD.9030202@igel.co.jp \
    --to=mukawa@igel.co.jp \
    --cc=ann.zhuangyanying@huawei.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /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.