All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tetsuya Mukawa <mukawa@igel.co.jp>
To: "Loftus, Ciara" <ciara.loftus@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "ann.zhuangyanying@huawei.com" <ann.zhuangyanying@huawei.com>,
	"Richardson, Bruce" <bruce.richardson@intel.com>,
	"yuanhan.liu@linux.intel.com" <yuanhan.liu@linux.intel.com>
Subject: Re: [PATCH] vhost PMD: Fix wrong handling of maximum value of rx/tx queues
Date: Wed, 23 Mar 2016 10:07:41 +0900	[thread overview]
Message-ID: <56F1EC5D.8010105@igel.co.jp> (raw)
In-Reply-To: <74F120C019F4A64C9B78E802F6AD4CC24F847A6D@IRSMSX106.ger.corp.intel.com>

On 2016/03/23 2:17, Loftus, Ciara wrote:
>> Currently, the maximum value of rx/tx queueus are kept by EAL. But,
>> the value are used like below different meanings in vhost PMD.
>>  - The maximum value of current enabled queues.
>>  - The maximum value of current supported queues.
>>
>> This wrong double meaning will cause an issue like below steps.
>>
>> * Invoke application with below option.
>>   --vdev 'eth_vhost0,iface=<socket path>,queues=4'
>> * Configure queues like below.
>>   rte_eth_dev_configure(portid, 2, 2, ...);
>> * Configure queues again like below.
>>   rte_eth_dev_configure(portid, 4, 4, ...);
>>
>> The second rte_eth_dev_configure() will be failed because both
>> the maximum value of current enabled queues and supported queues
>> will be '2' after calling first rte_eth_dev_configure().
>>
>> To fix the issue, the patch prepare one more variable to keep the
>> number of maximum supported queues in vhost PMD.
>>
>> Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
>> ---
>>  drivers/net/vhost/rte_eth_vhost.c | 14 ++++++++++++--
>>  1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/vhost/rte_eth_vhost.c
>> b/drivers/net/vhost/rte_eth_vhost.c
>> index 6b9d287..5fd8c70 100644
>> --- a/drivers/net/vhost/rte_eth_vhost.c
>> +++ b/drivers/net/vhost/rte_eth_vhost.c
>> @@ -88,6 +88,7 @@ struct vhost_queue {
>>  struct pmd_internal {
>>  	char *dev_name;
>>  	char *iface_name;
>> +	uint16_t max_queues;
>>
>>  	volatile uint16_t once;
>>  };
>> @@ -555,11 +556,19 @@ static void
>>  eth_dev_info(struct rte_eth_dev *dev,
>>  	     struct rte_eth_dev_info *dev_info)
>>  {
>> +	struct pmd_internal *internal;
>> +
>> +	internal = dev->data->dev_private;
>> +	if (internal == NULL) {
>> +		RTE_LOG(ERR, PMD, "Invalid device specified\n");
>> +		return;
>> +	}
>> +
>>  	dev_info->driver_name = drivername;
>>  	dev_info->max_mac_addrs = 1;
>>  	dev_info->max_rx_pktlen = (uint32_t)-1;
>> -	dev_info->max_rx_queues = dev->data->nb_rx_queues;
>> -	dev_info->max_tx_queues = dev->data->nb_tx_queues;
>> +	dev_info->max_rx_queues = internal->max_queues;
>> +	dev_info->max_tx_queues = internal->max_queues;
>>  	dev_info->min_rx_bufsize = 0;
>>  }
>>
>> @@ -751,6 +760,7 @@ eth_dev_vhost_create(const char *name, char
>> *iface_name, int16_t queues,
>>  	memmove(data->name, eth_dev->data->name, sizeof(data-
>>> name));
>>  	data->nb_rx_queues = queues;
>>  	data->nb_tx_queues = queues;
>> +	internal->max_queues = queues;
>>  	data->dev_link = pmd_link;
>>  	data->mac_addrs = eth_addr;
>>
>> --
>> 2.1.4
> Hi Tetsuya,
>
> Thanks again for the patch.
>
> Acked-by: Ciara Loftus <ciara.loftus@intel.com>
>
> Thanks,
> Ciara
>

I appreciate your reviewing and testing.

Thanks,
Tetsuya

  reply	other threads:[~2016-03-23  1:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-22  8:09 [PATCH] vhost PMD: Fix wrong handling of maximum value of rx/tx queues Tetsuya Mukawa
2016-03-22 17:17 ` Loftus, Ciara
2016-03-23  1:07   ` Tetsuya Mukawa [this message]
2016-03-23 17:45   ` Bruce Richardson

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=56F1EC5D.8010105@igel.co.jp \
    --to=mukawa@igel.co.jp \
    --cc=ann.zhuangyanying@huawei.com \
    --cc=bruce.richardson@intel.com \
    --cc=ciara.loftus@intel.com \
    --cc=dev@dpdk.org \
    --cc=yuanhan.liu@linux.intel.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.