From: Vlad Zolotarov <vladz@cloudius-systems.com>
To: "Ouyang, Changchun" <changchun.ouyang@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v4 3/6] ixgbe: Get VF queue number
Date: Tue, 06 Jan 2015 13:26:49 +0200 [thread overview]
Message-ID: <54ABC679.9070202@cloudius-systems.com> (raw)
In-Reply-To: <F52918179C57134FAEC9EA62FA2F96251194E93B@shsmsx102.ccr.corp.intel.com>
On 01/06/15 03:54, Ouyang, Changchun wrote:
>
>> -----Original Message-----
>> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com]
>> Sent: Monday, January 5, 2015 6:07 PM
>> To: Ouyang, Changchun; dev@dpdk.org
>> Subject: Re: [dpdk-dev] [PATCH v4 3/6] ixgbe: Get VF queue number
>>
>>
>> On 01/05/15 04:59, Ouyang, Changchun wrote:
>>>> -----Original Message-----
>>>> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com]
>>>> Sent: Sunday, January 4, 2015 4:39 PM
>>>> To: Ouyang, Changchun; dev@dpdk.org
>>>> Subject: Re: [dpdk-dev] [PATCH v4 3/6] ixgbe: Get VF queue number
>>>>
>>>>
>>>> On 01/04/15 09:18, Ouyang Changchun wrote:
>>>>> Get the available Rx and Tx queue number when receiving
>>>> IXGBE_VF_GET_QUEUES message from VF.
>>>>> Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
>>>>> ---
>>>>> lib/librte_pmd_ixgbe/ixgbe_pf.c | 35
>>>> ++++++++++++++++++++++++++++++++++-
>>>>> 1 file changed, 34 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/lib/librte_pmd_ixgbe/ixgbe_pf.c
>>>>> b/lib/librte_pmd_ixgbe/ixgbe_pf.c index 495aff5..cbb0145 100644
>>>>> --- a/lib/librte_pmd_ixgbe/ixgbe_pf.c
>>>>> +++ b/lib/librte_pmd_ixgbe/ixgbe_pf.c
>>>>> @@ -53,6 +53,8 @@
>>>>> #include "ixgbe_ethdev.h"
>>>>>
>>>>> #define IXGBE_MAX_VFTA (128)
>>>>> +#define IXGBE_VF_MSG_SIZE_DEFAULT 1 #define
>>>>> +IXGBE_VF_GET_QUEUE_MSG_SIZE 5
>>>>>
>>>>> static inline uint16_t
>>>>> dev_num_vf(struct rte_eth_dev *eth_dev) @@ -491,9 +493,36 @@
>>>>> ixgbe_negotiate_vf_api(struct rte_eth_dev *dev, uint32_t vf,
>>>>> uint32_t
>>>> *msgbuf)
>>>>> }
>>>>>
>>>>> static int
>>>>> +ixgbe_get_vf_queues(struct rte_eth_dev *dev, uint32_t vf, uint32_t
>>>>> +*msgbuf) {
>>>>> + struct ixgbe_vf_info *vfinfo =
>>>>> + *IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data-
>>>>> dev_private);
>>>>> + uint32_t default_q = vf * RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool;
>>>>> +
>>>>> + /* Verify if the PF supports the mbox APIs version or not */
>>>>> + switch (vfinfo[vf].api_version) {
>>>>> + case ixgbe_mbox_api_20:
>>>>> + case ixgbe_mbox_api_11:
>>>>> + break;
>>>>> + default:
>>>>> + return -1;
>>>>> + }
>>>>> +
>>>>> + /* Notify VF of Rx and Tx queue number */
>>>>> + msgbuf[IXGBE_VF_RX_QUEUES] =
>>>> RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool;
>>>>> + msgbuf[IXGBE_VF_TX_QUEUES] =
>>>> RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool;
>>>>> +
>>>>> + /* Notify VF of default queue */
>>>>> + msgbuf[IXGBE_VF_DEF_QUEUE] = default_q;
>>>> What about IXGBE_VF_TRANS_VLAN field?
>>> This field is used for vlan strip or dcb case, which the vf rss don't need it.
>> But VFs do support VLAN stripping and u don't add it to just RSS. If VFs do not
>> support VLAN stripping in the DPDK yet they should and then we will need
>> this field.
> If I don't miss your point, you also agree it is not related to vf rss itself, right?
Right.
> As for Vlan stripping, it need another patch to support it.
Well, at least put some fat comment in bold there that some the fields
in the command is not filled and why. ;)
>
>>>>> +
>>>>> + return 0;
>>>>> +}
>>>>> +
>>>>> +static int
>>>>> ixgbe_rcv_msg_from_vf(struct rte_eth_dev *dev, uint16_t vf)
>>>>> {
>>>>> uint16_t mbx_size = IXGBE_VFMAILBOX_SIZE;
>>>>> + uint16_t msg_size = IXGBE_VF_MSG_SIZE_DEFAULT;
>>>>> uint32_t msgbuf[IXGBE_VFMAILBOX_SIZE];
>>>>> int32_t retval;
>>>>> struct ixgbe_hw *hw =
>>>>> IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>>>>> @@ -537,6 +566,10 @@ ixgbe_rcv_msg_from_vf(struct rte_eth_dev
>> *dev,
>>>> uint16_t vf)
>>>>> case IXGBE_VF_API_NEGOTIATE:
>>>>> retval = ixgbe_negotiate_vf_api(dev, vf, msgbuf);
>>>>> break;
>>>>> + case IXGBE_VF_GET_QUEUES:
>>>>> + retval = ixgbe_get_vf_queues(dev, vf, msgbuf);
>>>>> + msg_size = IXGBE_VF_GET_QUEUE_MSG_SIZE;
>>>> Although the msg_size semantics and motivation is clear, if u want to do
>> then
>>>> do it all the way - add it to all other cases too not just to
>>>> IXGBE_VF_GET_QUEUES.
>>>> For instance, why do u write all 16 DWORDS for API negotiation (only 2 are
>>>> required) and only here u decided to get "greedy"? ;)
>>>>
>>>> My point is: either drop it completely or fix all other places as well.
>>> This is because the actual message size required by 2 different
>> message(api-negotiation and vf-get-queue)
>>> are different, the first one require only 4 bytes, the second one need 20
>> bytes.
>>> If both use 4 bytes, then the second one will have incomplete message.
>>> If both use 20 bytes, then the first one will contain garbage info which is not
>> necessary at all.
>>> So the code logic looks as above.
>> I understood the motivation at the first place but as I've explained
>> above we already bring the garbage for some opcodes like API
>> negotiation. So, u should either fix it for all opcodes like u did for
>> GET_QUEUES or just drop it in GET_QUEUES and fix it for all opcodes in a
>> different patch.
> Here maybe I miss your point, my understanding is that 4 bytes are enough for all other opcode except for get_queue opcode,
> get_queues is the only one that need 20 bytes currently.
> So I don't quite understand why I need fix any codes which we both think they are right.
Ooops. I missed the default value msg_size is 1 - I've confused its
initialization with mbx_size initialization. So, u are right - your code
is perfectly fine. My apologies! ;)
>
>>>>> + break;
>>>>> default:
>>>>> PMD_DRV_LOG(DEBUG, "Unhandled Msg %8.8x",
>>>> (unsigned)msgbuf[0]);
>>>>> retval = IXGBE_ERR_MBX;
>>>>> @@ -551,7 +584,7 @@ ixgbe_rcv_msg_from_vf(struct rte_eth_dev
>> *dev,
>>>>> uint16_t vf)
>>>>>
>>>>> msgbuf[0] |= IXGBE_VT_MSGTYPE_CTS;
>>>>>
>>>>> - ixgbe_write_mbx(hw, msgbuf, 1, vf);
>>>>> + ixgbe_write_mbx(hw, msgbuf, msg_size, vf);
>>>>>
>>>>> return retval;
>>>>> }
next prev parent reply other threads:[~2015-01-06 11:26 UTC|newest]
Thread overview: 144+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-15 2:56 [dpdk-dev] [PATCH 0/6] Enable VF RSS for Niantic Ouyang Changchun
2014-12-15 2:57 ` [dpdk-dev] [PATCH 1/6] ixgbe: Code cleanup Ouyang Changchun
2014-12-15 2:57 ` [dpdk-dev] [PATCH 2/6] ixgbe: Negotiate VF API version Ouyang Changchun
2014-12-15 2:57 ` [dpdk-dev] [PATCH 3/6] ixgbe: Get VF queue number Ouyang Changchun
2014-12-15 2:57 ` [dpdk-dev] [PATCH 4/6] ether: Check VMDq RSS mode Ouyang Changchun
2014-12-15 2:57 ` [dpdk-dev] [PATCH 5/6] ixgbe: Config VF RSS Ouyang Changchun
2014-12-15 2:57 ` [dpdk-dev] [PATCH 6/6] testpmd: Set Rx VMDq RSS mode Ouyang Changchun
2014-12-15 10:55 ` [dpdk-dev] [PATCH 0/6] Enable VF RSS for Niantic Bruce Richardson
2014-12-16 0:58 ` Ouyang, Changchun
2014-12-24 2:56 ` [dpdk-dev] [PATCH v2 " Ouyang Changchun
2014-12-24 2:56 ` [dpdk-dev] [PATCH v2 1/6] ixgbe: Code cleanup Ouyang Changchun
2014-12-24 3:08 ` Zhang, Helin
2014-12-24 3:22 ` Ouyang, Changchun
2014-12-24 3:41 ` Zhang, Helin
2014-12-24 3:50 ` Ouyang, Changchun
2014-12-24 3:53 ` Zhang, Helin
2014-12-24 4:46 ` Ouyang, Changchun
2014-12-24 2:56 ` [dpdk-dev] [PATCH v2 2/6] ixgbe: Negotiate VF API version Ouyang Changchun
2014-12-24 2:56 ` [dpdk-dev] [PATCH v2 3/6] ixgbe: Get VF queue number Ouyang Changchun
2014-12-24 2:56 ` [dpdk-dev] [PATCH v2 4/6] ether: Check VMDq RSS mode Ouyang Changchun
2014-12-24 2:56 ` [dpdk-dev] [PATCH v2 5/6] ixgbe: Config VF RSS Ouyang Changchun
2014-12-24 2:56 ` [dpdk-dev] [PATCH v2 6/6] testpmd: Set Rx VMDq RSS mode Ouyang Changchun
2014-12-24 5:22 ` [dpdk-dev] [PATCH v3 0/6] Enable VF RSS for Niantic Ouyang Changchun
2014-12-24 5:22 ` [dpdk-dev] [PATCH v3 1/6] ixgbe: Code cleanup Ouyang Changchun
2014-12-24 5:23 ` [dpdk-dev] [PATCH v3 2/6] ixgbe: Negotiate VF API version Ouyang Changchun
2014-12-24 5:23 ` [dpdk-dev] [PATCH v3 3/6] ixgbe: Get VF queue number Ouyang Changchun
2014-12-24 5:23 ` [dpdk-dev] [PATCH v3 4/6] ether: Check VMDq RSS mode Ouyang Changchun
2014-12-24 5:23 ` [dpdk-dev] [PATCH v3 5/6] ixgbe: Config VF RSS Ouyang Changchun
2014-12-24 10:39 ` Vlad Zolotarov
2014-12-25 2:14 ` Ouyang, Changchun
2014-12-25 13:13 ` Vlad Zolotarov
2014-12-26 2:07 ` Ouyang, Changchun
2014-12-25 2:43 ` Ouyang, Changchun
2014-12-25 13:20 ` Vlad Zolotarov
2014-12-26 1:52 ` Ouyang, Changchun
2014-12-26 6:49 ` Vladislav Zolotarov
2014-12-26 7:26 ` Ouyang, Changchun
2014-12-26 7:37 ` Vladislav Zolotarov
2014-12-26 8:45 ` Ouyang, Changchun
2014-12-28 10:14 ` Vlad Zolotarov
2015-01-05 10:29 ` Bruce Richardson
2015-01-06 1:00 ` Ouyang, Changchun
2014-12-25 13:38 ` Vlad Zolotarov
2014-12-26 1:26 ` Ouyang, Changchun
2015-01-04 2:10 ` Liang, Cunming
2015-01-04 6:25 ` Ouyang, Changchun
2014-12-24 5:23 ` [dpdk-dev] [PATCH v3 6/6] testpmd: Set Rx VMDq RSS mode Ouyang Changchun
2014-12-24 9:59 ` [dpdk-dev] [PATCH v3 0/6] Enable VF RSS for Niantic Vlad Zolotarov
2014-12-25 1:46 ` Ouyang, Changchun
2015-01-05 10:38 ` Bruce Richardson
2015-01-05 13:02 ` Vlad Zolotarov
2015-01-06 1:11 ` Ouyang, Changchun
2015-01-06 11:18 ` Vlad Zolotarov
2015-01-06 11:18 ` Vlad Zolotarov
2015-01-06 1:04 ` Ouyang, Changchun
2014-12-24 10:49 ` Vlad Zolotarov
2014-12-25 2:26 ` Ouyang, Changchun
2014-12-25 12:46 ` Vlad Zolotarov
2014-12-26 2:37 ` Ouyang, Changchun
[not found] ` <CAOYyTHbrB-VinN5ZEd1tYTnS7_GhCT1jiHiZzNKkQUEJ1rG79w@mail.gmail.com>
2014-12-26 5:16 ` Vladislav Zolotarov
2014-12-26 5:25 ` Ouyang, Changchun
2015-01-04 7:18 ` [dpdk-dev] [PATCH v4 " Ouyang Changchun
2015-01-04 7:18 ` [dpdk-dev] [PATCH v4 1/6] ixgbe: Code cleanup Ouyang Changchun
2015-01-04 8:22 ` Vlad Zolotarov
2015-01-04 7:18 ` [dpdk-dev] [PATCH v4 2/6] ixgbe: Negotiate VF API version Ouyang Changchun
2015-01-04 8:26 ` Vlad Zolotarov
2015-01-04 8:30 ` Vlad Zolotarov
2015-01-04 8:37 ` Ouyang, Changchun
2015-01-04 8:40 ` Vlad Zolotarov
2015-01-04 8:51 ` Ouyang, Changchun
2015-01-04 9:37 ` Vlad Zolotarov
2015-01-04 7:18 ` [dpdk-dev] [PATCH v4 3/6] ixgbe: Get VF queue number Ouyang Changchun
2015-01-04 8:38 ` Vlad Zolotarov
2015-01-05 2:59 ` Ouyang, Changchun
2015-01-05 10:07 ` Vlad Zolotarov
2015-01-06 1:54 ` Ouyang, Changchun
2015-01-06 11:26 ` Vlad Zolotarov [this message]
2015-01-07 1:18 ` Ouyang, Changchun
2015-01-04 7:18 ` [dpdk-dev] [PATCH v4 4/6] ether: Check VMDq RSS mode Ouyang Changchun
2015-01-04 8:45 ` Vlad Zolotarov
2015-01-04 8:58 ` Ouyang, Changchun
2015-01-04 9:45 ` Vlad Zolotarov
2015-01-05 1:00 ` Ouyang, Changchun
2015-01-05 10:09 ` Vlad Zolotarov
2015-01-06 1:56 ` Ouyang, Changchun
2015-01-06 19:56 ` Vlad Zolotarov
2015-01-07 2:28 ` Ouyang, Changchun
2015-01-04 7:18 ` [dpdk-dev] [PATCH v4 5/6] ixgbe: Config VF RSS Ouyang Changchun
2015-01-04 7:18 ` [dpdk-dev] [PATCH v4 6/6] testpmd: Set Rx VMDq RSS mode Ouyang Changchun
2015-01-04 8:49 ` Vlad Zolotarov
2015-01-04 9:01 ` Ouyang, Changchun
2015-01-04 9:46 ` Vlad Zolotarov
2015-01-05 2:38 ` Ouyang, Changchun
2015-01-05 10:12 ` Vlad Zolotarov
2015-01-06 2:01 ` Ouyang, Changchun
2015-01-06 12:53 ` Vlad Zolotarov
2015-01-07 1:50 ` Ouyang, Changchun
2015-01-07 6:32 ` [dpdk-dev] [PATCH v5 0/6] Enable VF RSS for Niantic Ouyang Changchun
2015-01-07 6:32 ` [dpdk-dev] [PATCH v5 1/6] ixgbe: Code cleanup Ouyang Changchun
2015-01-07 6:32 ` [dpdk-dev] [PATCH v5 2/6] ixgbe: Negotiate VF API version Ouyang Changchun
2015-01-07 6:32 ` [dpdk-dev] [PATCH v5 3/6] ixgbe: Get VF queue number Ouyang Changchun
2015-01-08 9:01 ` Vlad Zolotarov
2015-01-07 6:32 ` [dpdk-dev] [PATCH v5 4/6] ether: Check VMDq RSS mode Ouyang Changchun
2015-01-08 9:19 ` Vlad Zolotarov
2015-01-08 18:48 ` Vlad Zolotarov
2015-01-09 5:54 ` Ouyang, Changchun
2015-01-09 13:49 ` Vlad Zolotarov
2015-01-12 3:41 ` Ouyang, Changchun
2015-01-12 13:58 ` Vlad Zolotarov
2015-01-13 1:50 ` Ouyang, Changchun
2015-01-13 9:00 ` Vlad Zolotarov
2015-01-14 0:44 ` Ouyang, Changchun
2015-01-07 6:32 ` [dpdk-dev] [PATCH v5 5/6] ixgbe: Config VF RSS Ouyang Changchun
2015-01-08 9:43 ` Vlad Zolotarov
2015-01-09 6:07 ` Ouyang, Changchun
2015-01-09 14:01 ` Vlad Zolotarov
2015-01-12 5:11 ` Ouyang, Changchun
2015-01-07 6:32 ` [dpdk-dev] [PATCH v5 6/6] testpmd: Set Rx VMDq RSS mode Ouyang Changchun
2015-01-08 9:46 ` Vlad Zolotarov
2015-01-08 9:56 ` [dpdk-dev] [PATCH v5 0/6] Enable VF RSS for Niantic Vlad Zolotarov
2015-01-18 21:58 ` Thomas Monjalon
2015-01-19 9:40 ` Vlad Zolotarov
2015-01-12 5:59 ` [dpdk-dev] [PATCH v6 " Ouyang Changchun
2015-01-12 5:59 ` [dpdk-dev] [PATCH v6 1/6] ixgbe: Code cleanup Ouyang Changchun
2015-01-12 5:59 ` [dpdk-dev] [PATCH v6 2/6] ixgbe: Negotiate VF API version Ouyang Changchun
2015-01-12 5:59 ` [dpdk-dev] [PATCH v6 3/6] ixgbe: Get VF queue number Ouyang Changchun
2015-01-19 9:13 ` Wodkowski, PawelX
2015-01-20 0:54 ` Ouyang, Changchun
2015-01-12 5:59 ` [dpdk-dev] [PATCH v6 4/6] ether: Check VMDq RSS mode Ouyang Changchun
2015-01-12 14:06 ` Vlad Zolotarov
2015-01-18 22:04 ` Thomas Monjalon
2015-01-19 10:31 ` Wodkowski, PawelX
2015-01-20 1:03 ` Ouyang, Changchun
2015-01-12 5:59 ` [dpdk-dev] [PATCH v6 5/6] ixgbe: Config VF RSS Ouyang Changchun
2015-01-12 14:04 ` Vlad Zolotarov
2015-01-20 9:35 ` Wodkowski, PawelX
2015-01-21 2:43 ` Ouyang, Changchun
2015-01-21 8:44 ` Wodkowski, PawelX
2015-01-22 12:59 ` Vlad Zolotarov
2015-01-22 13:19 ` Wodkowski, PawelX
2015-01-12 5:59 ` [dpdk-dev] [PATCH v6 6/6] testpmd: Set Rx VMDq RSS mode Ouyang Changchun
2015-01-12 14:05 ` Vlad Zolotarov
2015-01-18 22:24 ` [dpdk-dev] [PATCH v6 0/6] Enable VF RSS for Niantic Thomas Monjalon
2015-01-19 4:51 ` Ouyang, Changchun
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=54ABC679.9070202@cloudius-systems.com \
--to=vladz@cloudius-systems.com \
--cc=changchun.ouyang@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 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).