* [dpdk-dev] i40e and RSS woes @ 2015-02-16 13:36 Gleb Natapov 2015-02-19 14:50 ` Gleb Natapov 0 siblings, 1 reply; 14+ messages in thread From: Gleb Natapov @ 2015-02-16 13:36 UTC (permalink / raw) To: dev I have an application that works reasonably well with ixgbe driver, but when I try to use it with i40e I encounter various RSS related issues. First one is that for some reason i40e, when it builds default reta table, round down number of queues to power of two. Why is this? If I configure reta by my own using all of the queues everything seams to be working. To add insult to injury I do not get any errors during configuration some queues just do not receive any traffic. The second problem is that for some reason i40e does not use 40 byte toeplitz hash key like any other driver, but it expects the key to be 52 bytes. And it would have being fine (if we ignore the fact that it contradicts MS spec), but how my high level code suppose to know that? And again, device configuration does not fail when wrong key length is provided, it just uses some other key. Guys this kind of error handling is completely unacceptable. The last one is more of a question. Why interface to change RSS hash function (XOR or toeplitz) is part of a filter configuration and not rss config? -- Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-02-16 13:36 [dpdk-dev] i40e and RSS woes Gleb Natapov @ 2015-02-19 14:50 ` Gleb Natapov 2015-03-02 12:56 ` Gleb Natapov 0 siblings, 1 reply; 14+ messages in thread From: Gleb Natapov @ 2015-02-19 14:50 UTC (permalink / raw) To: dev CCing i40e driver author in a hope to get an answer. On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > I have an application that works reasonably well with ixgbe driver, but > when I try to use it with i40e I encounter various RSS related issues. > > First one is that for some reason i40e, when it builds default reta > table, round down number of queues to power of two. Why is this? If I > configure reta by my own using all of the queues everything seams to be > working. To add insult to injury I do not get any errors during > configuration some queues just do not receive any traffic. > > The second problem is that for some reason i40e does not use 40 byte > toeplitz hash key like any other driver, but it expects the key to be 52 > bytes. And it would have being fine (if we ignore the fact that it > contradicts MS spec), but how my high level code suppose to know that? > And again, device configuration does not fail when wrong key length is > provided, it just uses some other key. Guys this kind of error handling > is completely unacceptable. > > The last one is more of a question. Why interface to change RSS hash > function (XOR or toeplitz) is part of a filter configuration and not rss > config? > > -- > Gleb. -- Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-02-19 14:50 ` Gleb Natapov @ 2015-03-02 12:56 ` Gleb Natapov 2015-03-05 5:56 ` Zhang, Helin 0 siblings, 1 reply; 14+ messages in thread From: Gleb Natapov @ 2015-03-02 12:56 UTC (permalink / raw) To: dev Ping. On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: > CCing i40e driver author in a hope to get an answer. > > On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > > I have an application that works reasonably well with ixgbe driver, but > > when I try to use it with i40e I encounter various RSS related issues. > > > > First one is that for some reason i40e, when it builds default reta > > table, round down number of queues to power of two. Why is this? If I > > configure reta by my own using all of the queues everything seams to be > > working. To add insult to injury I do not get any errors during > > configuration some queues just do not receive any traffic. > > > > The second problem is that for some reason i40e does not use 40 byte > > toeplitz hash key like any other driver, but it expects the key to be 52 > > bytes. And it would have being fine (if we ignore the fact that it > > contradicts MS spec), but how my high level code suppose to know that? > > And again, device configuration does not fail when wrong key length is > > provided, it just uses some other key. Guys this kind of error handling > > is completely unacceptable. > > > > The last one is more of a question. Why interface to change RSS hash > > function (XOR or toeplitz) is part of a filter configuration and not rss > > config? > > > > -- > > Gleb. > > -- > Gleb. -- Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-03-02 12:56 ` Gleb Natapov @ 2015-03-05 5:56 ` Zhang, Helin 2015-03-05 6:39 ` Gleb Natapov 2015-08-24 11:13 ` Vlad Zolotarov 0 siblings, 2 replies; 14+ messages in thread From: Zhang, Helin @ 2015-03-05 5:56 UTC (permalink / raw) To: Gleb Natapov, dev Hi Gleb Sorry for late! I am struggling on my tasks for the following DPDK release these days. > -----Original Message----- > From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > Sent: Monday, March 2, 2015 8:56 PM > To: dev@dpdk.org > Cc: Zhang, Helin > Subject: Re: i40e and RSS woes > > Ping. > > On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: > > CCing i40e driver author in a hope to get an answer. > > > > On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > > > I have an application that works reasonably well with ixgbe driver, > > > but when I try to use it with i40e I encounter various RSS related issues. > > > > > > First one is that for some reason i40e, when it builds default reta > > > table, round down number of queues to power of two. Why is this? If It seems because of i40e queue configuration. We will check it more and see if it can be changed or improved later. > > > I configure reta by my own using all of the queues everything seams > > > to be working. To add insult to injury I do not get any errors > > > during configuration some queues just do not receive any traffic. > > > > > > The second problem is that for some reason i40e does not use 40 byte > > > toeplitz hash key like any other driver, but it expects the key to > > > be 52 bytes. And it would have being fine (if we ignore the fact > > > that it contradicts MS spec), but how my high level code suppose to know > that? Actually a rss_key_len was introduced in struct rte_eth_rss_conf recently. So the length should be indicated clearly. But I found the annotations of that structure should have been reworked. I will try to rework it with clear descriptions. > > > And again, device configuration does not fail when wrong key length > > > is provided, it just uses some other key. Guys this kind of error > > > handling is completely unacceptable. If less length of key is provided, it will not be used at all, the default key will be used. So there is no issue as you said. But we need to add more clear description for the structure of rte_eth_rss_conf. Thank you very much for the good comments! Regards, Helin > > > > > > The last one is more of a question. Why interface to change RSS hash > > > function (XOR or toeplitz) is part of a filter configuration and not > > > rss config? > > > > > > -- > > > Gleb. > > > > -- > > Gleb. > > -- > Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-03-05 5:56 ` Zhang, Helin @ 2015-03-05 6:39 ` Gleb Natapov 2015-03-05 6:56 ` Zhang, Helin 2015-08-24 11:13 ` Vlad Zolotarov 1 sibling, 1 reply; 14+ messages in thread From: Gleb Natapov @ 2015-03-05 6:39 UTC (permalink / raw) To: Zhang, Helin; +Cc: dev On Thu, Mar 05, 2015 at 05:56:27AM +0000, Zhang, Helin wrote: > Hi Gleb > > Sorry for late! I am struggling on my tasks for the following DPDK release these days. > > > -----Original Message----- > > From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > > Sent: Monday, March 2, 2015 8:56 PM > > To: dev@dpdk.org > > Cc: Zhang, Helin > > Subject: Re: i40e and RSS woes > > > > Ping. > > > > On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: > > > CCing i40e driver author in a hope to get an answer. > > > > > > On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > > > > I have an application that works reasonably well with ixgbe driver, > > > > but when I try to use it with i40e I encounter various RSS related issues. > > > > > > > > First one is that for some reason i40e, when it builds default reta > > > > table, round down number of queues to power of two. Why is this? If > It seems because of i40e queue configuration. We will check it more and see > if it can be changed or improved later. > Thanks, as I said below when I configure reta by myself everything work as expected - traffic is received on all queues, so I am curious if in some scenarios my code can break. > > > > I configure reta by my own using all of the queues everything seams > > > > to be working. To add insult to injury I do not get any errors > > > > during configuration some queues just do not receive any traffic. > > > > > > > > The second problem is that for some reason i40e does not use 40 byte > > > > toeplitz hash key like any other driver, but it expects the key to > > > > be 52 bytes. And it would have being fine (if we ignore the fact > > > > that it contradicts MS spec), but how my high level code suppose to know > > that? > Actually a rss_key_len was introduced in struct rte_eth_rss_conf recently. So the > length should be indicated clearly. But I found the annotations of that structure > should have been reworked. I will try to rework it with clear descriptions. > I saw rss_key_len of course, my question is how my code suppose to know what value to set it to? Why required key length is not part of a device capability query (or is it and I missed it)? The only way I found to get key length is to quire device for a key, and check rss_key_len. If it is zero then key is 40 bytes, otherwise whatever rss_key_len says. This method is more of a hack then proper way to do it. > > > > And again, device configuration does not fail when wrong key length > > > > is provided, it just uses some other key. Guys this kind of error > > > > handling is completely unacceptable. > If less length of key is provided, it will not be used at all, the default key will be used. > So there is no issue as you said. But we need to add more clear description for the > structure of rte_eth_rss_conf. > What you've said above is exactly the issue! My code does not work if a key used by HW is not the same as was set by application, but since I get no error when my setting is ignored the is not way for me to know that my application will not work (short of querying key back and comparing which is again a hack). Device configuration should fail if it cannot apply my settings. -- Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-03-05 6:39 ` Gleb Natapov @ 2015-03-05 6:56 ` Zhang, Helin 2015-04-28 9:21 ` Gleb Natapov 0 siblings, 1 reply; 14+ messages in thread From: Zhang, Helin @ 2015-03-05 6:56 UTC (permalink / raw) To: Gleb Natapov; +Cc: dev > -----Original Message----- > From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > Sent: Thursday, March 5, 2015 2:39 PM > To: Zhang, Helin > Cc: dev@dpdk.org > Subject: Re: i40e and RSS woes > > On Thu, Mar 05, 2015 at 05:56:27AM +0000, Zhang, Helin wrote: > > Hi Gleb > > > > Sorry for late! I am struggling on my tasks for the following DPDK release > these days. > > > > > -----Original Message----- > > > From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > > > Sent: Monday, March 2, 2015 8:56 PM > > > To: dev@dpdk.org > > > Cc: Zhang, Helin > > > Subject: Re: i40e and RSS woes > > > > > > Ping. > > > > > > On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: > > > > CCing i40e driver author in a hope to get an answer. > > > > > > > > On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > > > > > I have an application that works reasonably well with ixgbe > > > > > driver, but when I try to use it with i40e I encounter various RSS related > issues. > > > > > > > > > > First one is that for some reason i40e, when it builds default > > > > > reta table, round down number of queues to power of two. Why is > > > > > this? If > > It seems because of i40e queue configuration. We will check it more > > and see if it can be changed or improved later. > > > Thanks, as I said below when I configure reta by myself everything work as > expected - traffic is received on all queues, so I am curious if in some scenarios > my code can break. > > > > > > I configure reta by my own using all of the queues everything > > > > > seams to be working. To add insult to injury I do not get any > > > > > errors during configuration some queues just do not receive any traffic. > > > > > > > > > > The second problem is that for some reason i40e does not use 40 > > > > > byte toeplitz hash key like any other driver, but it expects the > > > > > key to be 52 bytes. And it would have being fine (if we ignore > > > > > the fact that it contradicts MS spec), but how my high level > > > > > code suppose to know > > > that? > > Actually a rss_key_len was introduced in struct rte_eth_rss_conf > > recently. So the length should be indicated clearly. But I found the > > annotations of that structure should have been reworked. I will try to rework > it with clear descriptions. > > > I saw rss_key_len of course, my question is how my code suppose to know > what value to set it to? Why required key length is not part of a device > capability query (or is it and I missed it)? The only way I found to get key length > is to quire device for a key, and check rss_key_len. If it is zero then key is 40 > bytes, otherwise whatever rss_key_len says. This method is more of a hack > then proper way to do it. I think it was missed. I will add it soon later. > > > > > > And again, device configuration does not fail when wrong key > > > > > length is provided, it just uses some other key. Guys this kind > > > > > of error handling is completely unacceptable. > > If less length of key is provided, it will not be used at all, the default key will be > used. > > So there is no issue as you said. But we need to add more clear > > description for the structure of rte_eth_rss_conf. > > > What you've said above is exactly the issue! My code does not work if a key > used by HW is not the same as was set by application, but since I get no error > when my setting is ignored the is not way for me to know that my application > will not work (short of querying key back and comparing which is again a hack). > Device configuration should fail if it cannot apply my settings. After I checked the code, different PMD may have different implementation. Returning with an error might be the best way for all PMDs. I will unify it later. Really good findings and suggestions from you! Thank you very much! Regards, Helin > > -- > Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-03-05 6:56 ` Zhang, Helin @ 2015-04-28 9:21 ` Gleb Natapov 2015-04-28 14:46 ` Zhang, Helin 0 siblings, 1 reply; 14+ messages in thread From: Gleb Natapov @ 2015-04-28 9:21 UTC (permalink / raw) To: Zhang, Helin; +Cc: dev Hi, I didn't follow DPDK development to close lately. Was those problem fixed already? On Thu, Mar 05, 2015 at 06:56:14AM +0000, Zhang, Helin wrote: > > > > -----Original Message----- > > From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > > Sent: Thursday, March 5, 2015 2:39 PM > > To: Zhang, Helin > > Cc: dev@dpdk.org > > Subject: Re: i40e and RSS woes > > > > On Thu, Mar 05, 2015 at 05:56:27AM +0000, Zhang, Helin wrote: > > > Hi Gleb > > > > > > Sorry for late! I am struggling on my tasks for the following DPDK release > > these days. > > > > > > > -----Original Message----- > > > > From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > > > > Sent: Monday, March 2, 2015 8:56 PM > > > > To: dev@dpdk.org > > > > Cc: Zhang, Helin > > > > Subject: Re: i40e and RSS woes > > > > > > > > Ping. > > > > > > > > On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: > > > > > CCing i40e driver author in a hope to get an answer. > > > > > > > > > > On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > > > > > > I have an application that works reasonably well with ixgbe > > > > > > driver, but when I try to use it with i40e I encounter various RSS related > > issues. > > > > > > > > > > > > First one is that for some reason i40e, when it builds default > > > > > > reta table, round down number of queues to power of two. Why is > > > > > > this? If > > > It seems because of i40e queue configuration. We will check it more > > > and see if it can be changed or improved later. > > > > > Thanks, as I said below when I configure reta by myself everything work as > > expected - traffic is received on all queues, so I am curious if in some scenarios > > my code can break. > > > > > > > > I configure reta by my own using all of the queues everything > > > > > > seams to be working. To add insult to injury I do not get any > > > > > > errors during configuration some queues just do not receive any traffic. > > > > > > > > > > > > The second problem is that for some reason i40e does not use 40 > > > > > > byte toeplitz hash key like any other driver, but it expects the > > > > > > key to be 52 bytes. And it would have being fine (if we ignore > > > > > > the fact that it contradicts MS spec), but how my high level > > > > > > code suppose to know > > > > that? > > > Actually a rss_key_len was introduced in struct rte_eth_rss_conf > > > recently. So the length should be indicated clearly. But I found the > > > annotations of that structure should have been reworked. I will try to rework > > it with clear descriptions. > > > > > I saw rss_key_len of course, my question is how my code suppose to know > > what value to set it to? Why required key length is not part of a device > > capability query (or is it and I missed it)? The only way I found to get key length > > is to quire device for a key, and check rss_key_len. If it is zero then key is 40 > > bytes, otherwise whatever rss_key_len says. This method is more of a hack > > then proper way to do it. > I think it was missed. I will add it soon later. > > > > > > > > > And again, device configuration does not fail when wrong key > > > > > > length is provided, it just uses some other key. Guys this kind > > > > > > of error handling is completely unacceptable. > > > If less length of key is provided, it will not be used at all, the default key will be > > used. > > > So there is no issue as you said. But we need to add more clear > > > description for the structure of rte_eth_rss_conf. > > > > > What you've said above is exactly the issue! My code does not work if a key > > used by HW is not the same as was set by application, but since I get no error > > when my setting is ignored the is not way for me to know that my application > > will not work (short of querying key back and comparing which is again a hack). > > Device configuration should fail if it cannot apply my settings. > After I checked the code, different PMD may have different implementation. > Returning with an error might be the best way for all PMDs. I will unify it later. > > Really good findings and suggestions from you! Thank you very much! > -- Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-04-28 9:21 ` Gleb Natapov @ 2015-04-28 14:46 ` Zhang, Helin 0 siblings, 0 replies; 14+ messages in thread From: Zhang, Helin @ 2015-04-28 14:46 UTC (permalink / raw) To: Gleb Natapov; +Cc: dev Hi Gleb I don't think the fix is in the master branch. I will double check it and get back to you later. Thank you very much for the reminder! Regards, Helin > -----Original Message----- > From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > Sent: Tuesday, April 28, 2015 5:21 PM > To: Zhang, Helin > Cc: dev@dpdk.org > Subject: Re: i40e and RSS woes > > Hi, > > I didn't follow DPDK development to close lately. Was those problem fixed > already? > > On Thu, Mar 05, 2015 at 06:56:14AM +0000, Zhang, Helin wrote: > > > > > > > -----Original Message----- > > > From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > > > Sent: Thursday, March 5, 2015 2:39 PM > > > To: Zhang, Helin > > > Cc: dev@dpdk.org > > > Subject: Re: i40e and RSS woes > > > > > > On Thu, Mar 05, 2015 at 05:56:27AM +0000, Zhang, Helin wrote: > > > > Hi Gleb > > > > > > > > Sorry for late! I am struggling on my tasks for the following DPDK > > > > release > > > these days. > > > > > > > > > -----Original Message----- > > > > > From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > > > > > Sent: Monday, March 2, 2015 8:56 PM > > > > > To: dev@dpdk.org > > > > > Cc: Zhang, Helin > > > > > Subject: Re: i40e and RSS woes > > > > > > > > > > Ping. > > > > > > > > > > On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: > > > > > > CCing i40e driver author in a hope to get an answer. > > > > > > > > > > > > On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > > > > > > > I have an application that works reasonably well with ixgbe > > > > > > > driver, but when I try to use it with i40e I encounter > > > > > > > various RSS related > > > issues. > > > > > > > > > > > > > > First one is that for some reason i40e, when it builds > > > > > > > default reta table, round down number of queues to power of > > > > > > > two. Why is this? If > > > > It seems because of i40e queue configuration. We will check it > > > > more and see if it can be changed or improved later. > > > > > > > Thanks, as I said below when I configure reta by myself everything > > > work as expected - traffic is received on all queues, so I am > > > curious if in some scenarios my code can break. > > > > > > > > > > I configure reta by my own using all of the queues > > > > > > > everything seams to be working. To add insult to injury I do > > > > > > > not get any errors during configuration some queues just do not > receive any traffic. > > > > > > > > > > > > > > The second problem is that for some reason i40e does not use > > > > > > > 40 byte toeplitz hash key like any other driver, but it > > > > > > > expects the key to be 52 bytes. And it would have being fine > > > > > > > (if we ignore the fact that it contradicts MS spec), but how > > > > > > > my high level code suppose to know > > > > > that? > > > > Actually a rss_key_len was introduced in struct rte_eth_rss_conf > > > > recently. So the length should be indicated clearly. But I found > > > > the annotations of that structure should have been reworked. I > > > > will try to rework > > > it with clear descriptions. > > > > > > > I saw rss_key_len of course, my question is how my code suppose to > > > know what value to set it to? Why required key length is not part of > > > a device capability query (or is it and I missed it)? The only way I > > > found to get key length is to quire device for a key, and check > > > rss_key_len. If it is zero then key is 40 bytes, otherwise whatever > > > rss_key_len says. This method is more of a hack then proper way to do it. > > I think it was missed. I will add it soon later. > > > > > > > > > > > > And again, device configuration does not fail when wrong key > > > > > > > length is provided, it just uses some other key. Guys this > > > > > > > kind of error handling is completely unacceptable. > > > > If less length of key is provided, it will not be used at all, the > > > > default key will be > > > used. > > > > So there is no issue as you said. But we need to add more clear > > > > description for the structure of rte_eth_rss_conf. > > > > > > > What you've said above is exactly the issue! My code does not work > > > if a key used by HW is not the same as was set by application, but > > > since I get no error when my setting is ignored the is not way for > > > me to know that my application will not work (short of querying key back > and comparing which is again a hack). > > > Device configuration should fail if it cannot apply my settings. > > After I checked the code, different PMD may have different implementation. > > Returning with an error might be the best way for all PMDs. I will unify it > later. > > > > Really good findings and suggestions from you! Thank you very much! > > > > -- > Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-03-05 5:56 ` Zhang, Helin 2015-03-05 6:39 ` Gleb Natapov @ 2015-08-24 11:13 ` Vlad Zolotarov 2015-08-24 11:40 ` Vlad Zolotarov 2015-08-24 17:51 ` Zhang, Helin 1 sibling, 2 replies; 14+ messages in thread From: Vlad Zolotarov @ 2015-08-24 11:13 UTC (permalink / raw) To: Zhang, Helin, Gleb Natapov, dev On 03/05/15 07:56, Zhang, Helin wrote: > Hi Gleb > > Sorry for late! I am struggling on my tasks for the following DPDK release these days. > >> -----Original Message----- >> From: Gleb Natapov [mailto:gleb@cloudius-systems.com] >> Sent: Monday, March 2, 2015 8:56 PM >> To: dev@dpdk.org >> Cc: Zhang, Helin >> Subject: Re: i40e and RSS woes >> >> Ping. >> >> On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: >>> CCing i40e driver author in a hope to get an answer. >>> >>> On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: >>>> I have an application that works reasonably well with ixgbe driver, >>>> but when I try to use it with i40e I encounter various RSS related issues. >>>> >>>> First one is that for some reason i40e, when it builds default reta >>>> table, round down number of queues to power of two. Why is this? If > It seems because of i40e queue configuration. We will check it more and see > if it can be changed or improved later. Helin, hi! Sorry for bringing it back but it seems that the RSS queues number issue (rounding it down to the nearest power of 2) still hasn't been addressed in the master branch. Could u, pls., clarify what is that "i40e queue configuration" that requires this alignment u are referring above? From what i could see "num" parameter is not propagated outside the i40e_pf_config_rss() in any form except for RSS table contents. This means that any code that would need to know the number of Rx queues would use the dev_data->nb_rx_queues (e.g. i40e_dev_rx_init()) and wouldn't be able to know that i40e_pf_config_rss() something different except for scanning the RSS table in HW which is of course not an option. Therefore, from the first look it seems that this rounding may be safely removed unless I've missed something. Pls., comment. thanks, vlad > >>>> I configure reta by my own using all of the queues everything seams >>>> to be working. To add insult to injury I do not get any errors >>>> during configuration some queues just do not receive any traffic. >>>> >>>> The second problem is that for some reason i40e does not use 40 byte >>>> toeplitz hash key like any other driver, but it expects the key to >>>> be 52 bytes. And it would have being fine (if we ignore the fact >>>> that it contradicts MS spec), but how my high level code suppose to know >> that? > Actually a rss_key_len was introduced in struct rte_eth_rss_conf recently. So the > length should be indicated clearly. But I found the annotations of that structure > should have been reworked. I will try to rework it with clear descriptions. > >>>> And again, device configuration does not fail when wrong key length >>>> is provided, it just uses some other key. Guys this kind of error >>>> handling is completely unacceptable. > If less length of key is provided, it will not be used at all, the default key will be used. > So there is no issue as you said. But we need to add more clear description for the > structure of rte_eth_rss_conf. > > Thank you very much for the good comments! > > Regards, > Helin > >>>> The last one is more of a question. Why interface to change RSS hash >>>> function (XOR or toeplitz) is part of a filter configuration and not >>>> rss config? >>>> >>>> -- >>>> Gleb. >>> -- >>> Gleb. >> -- >> Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-08-24 11:13 ` Vlad Zolotarov @ 2015-08-24 11:40 ` Vlad Zolotarov 2015-08-24 17:51 ` Zhang, Helin 1 sibling, 0 replies; 14+ messages in thread From: Vlad Zolotarov @ 2015-08-24 11:40 UTC (permalink / raw) To: Zhang, Helin, Gleb Natapov, dev On 08/24/15 14:13, Vlad Zolotarov wrote: > > > On 03/05/15 07:56, Zhang, Helin wrote: >> Hi Gleb >> >> Sorry for late! I am struggling on my tasks for the following DPDK >> release these days. >> >>> -----Original Message----- >>> From: Gleb Natapov [mailto:gleb@cloudius-systems.com] >>> Sent: Monday, March 2, 2015 8:56 PM >>> To: dev@dpdk.org >>> Cc: Zhang, Helin >>> Subject: Re: i40e and RSS woes >>> >>> Ping. >>> >>> On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: >>>> CCing i40e driver author in a hope to get an answer. >>>> >>>> On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: >>>>> I have an application that works reasonably well with ixgbe driver, >>>>> but when I try to use it with i40e I encounter various RSS related >>>>> issues. >>>>> >>>>> First one is that for some reason i40e, when it builds default reta >>>>> table, round down number of queues to power of two. Why is this? If >> It seems because of i40e queue configuration. We will check it more >> and see >> if it can be changed or improved later. > > Helin, hi! > Sorry for bringing it back but it seems that the RSS queues number > issue (rounding it down to the nearest power of 2) > still hasn't been addressed in the master branch. > > Could u, pls., clarify what is that "i40e queue configuration" that > requires this alignment u are referring above? > > From what i could see "num" parameter is not propagated outside the > i40e_pf_config_rss() in any form except for RSS table contents. > This means that any code that would need to know the number of Rx > queues would use the dev_data->nb_rx_queues (e.g. i40e_dev_rx_init()) > and wouldn't be able to know that i40e_pf_config_rss() something > different except for scanning the RSS table in HW which is of course > not an option. > > Therefore, from the first look it seems that this rounding may be > safely removed unless I've missed something. > > Pls., comment. Have just noticed this: /* Each of below queue pairs should be power of 2 since it's the precondition after TC configuration applied */ uint16_t lan_nb_qps; /* The number of queue pairs of LAN */ I still couldn't find any justification for either requiring the above or requiring any correlation between the number of Tx queues (whatever it is) and the number of Rx queues in the HW spec. It seems that spec implies that Rx and Tx configuration is completely orthogonal (as it should be). Could u, pls., clarify how TC configuration imposes a requirement on a number of Rx queues to be a power of 2? thanks in advance, vlad > > thanks, > vlad > >> >>>>> I configure reta by my own using all of the queues everything seams >>>>> to be working. To add insult to injury I do not get any errors >>>>> during configuration some queues just do not receive any traffic. >>>>> >>>>> The second problem is that for some reason i40e does not use 40 byte >>>>> toeplitz hash key like any other driver, but it expects the key to >>>>> be 52 bytes. And it would have being fine (if we ignore the fact >>>>> that it contradicts MS spec), but how my high level code suppose >>>>> to know >>> that? >> Actually a rss_key_len was introduced in struct rte_eth_rss_conf >> recently. So the >> length should be indicated clearly. But I found the annotations of >> that structure >> should have been reworked. I will try to rework it with clear >> descriptions. >> >>>>> And again, device configuration does not fail when wrong key length >>>>> is provided, it just uses some other key. Guys this kind of error >>>>> handling is completely unacceptable. >> If less length of key is provided, it will not be used at all, the >> default key will be used. >> So there is no issue as you said. But we need to add more clear >> description for the >> structure of rte_eth_rss_conf. >> >> Thank you very much for the good comments! >> >> Regards, >> Helin >> >>>>> The last one is more of a question. Why interface to change RSS hash >>>>> function (XOR or toeplitz) is part of a filter configuration and not >>>>> rss config? >>>>> >>>>> -- >>>>> Gleb. >>>> -- >>>> Gleb. >>> -- >>> Gleb. > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-08-24 11:13 ` Vlad Zolotarov 2015-08-24 11:40 ` Vlad Zolotarov @ 2015-08-24 17:51 ` Zhang, Helin 2015-08-24 18:26 ` Vlad Zolotarov 1 sibling, 1 reply; 14+ messages in thread From: Zhang, Helin @ 2015-08-24 17:51 UTC (permalink / raw) To: Vlad Zolotarov, Gleb Natapov; +Cc: dev > -----Original Message----- > From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > Sent: Monday, August 24, 2015 4:14 AM > To: Zhang, Helin; Gleb Natapov; dev@dpdk.org > Subject: Re: [dpdk-dev] i40e and RSS woes > > > > On 03/05/15 07:56, Zhang, Helin wrote: > > Hi Gleb > > > > Sorry for late! I am struggling on my tasks for the following DPDK release these > days. > > > >> -----Original Message----- > >> From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > >> Sent: Monday, March 2, 2015 8:56 PM > >> To: dev@dpdk.org > >> Cc: Zhang, Helin > >> Subject: Re: i40e and RSS woes > >> > >> Ping. > >> > >> On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: > >>> CCing i40e driver author in a hope to get an answer. > >>> > >>> On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > >>>> I have an application that works reasonably well with ixgbe driver, > >>>> but when I try to use it with i40e I encounter various RSS related issues. > >>>> > >>>> First one is that for some reason i40e, when it builds default reta > >>>> table, round down number of queues to power of two. Why is this? If > > It seems because of i40e queue configuration. We will check it more > > and see if it can be changed or improved later. > > Helin, hi! > Sorry for bringing it back but it seems that the RSS queues number issue > (rounding it down to the nearest power of 2) still hasn't been addressed in the > master branch. > > Could u, pls., clarify what is that "i40e queue configuration" that requires this > alignment u are referring above? > > From what i could see "num" parameter is not propagated outside the > i40e_pf_config_rss() in any form except for RSS table contents. > This means that any code that would need to know the number of Rx queues > would use the dev_data->nb_rx_queues (e.g. i40e_dev_rx_init()) and wouldn't > be able to know that i40e_pf_config_rss() something different except for > scanning the RSS table in HW which is of course not an option. > > Therefore, from the first look it seems that this rounding may be safely removed > unless I've missed something. Could you help to refer to the data sheet of 'Hash Filter', 'Receive Queue Regions', it is said that '1, 2, 4, 8, 16, 32, 64' are the supported queue regions. Yes, we should support more than 64 queues per port, but for rss, it should be one of '1, 2, 4, 8, 16, 32, 64'. Thanks, Helin > > Pls., comment. > > thanks, > vlad > > > > >>>> I configure reta by my own using all of the queues everything seams > >>>> to be working. To add insult to injury I do not get any errors > >>>> during configuration some queues just do not receive any traffic. > >>>> > >>>> The second problem is that for some reason i40e does not use 40 > >>>> byte toeplitz hash key like any other driver, but it expects the > >>>> key to be 52 bytes. And it would have being fine (if we ignore the > >>>> fact that it contradicts MS spec), but how my high level code > >>>> suppose to know > >> that? > > Actually a rss_key_len was introduced in struct rte_eth_rss_conf > > recently. So the length should be indicated clearly. But I found the > > annotations of that structure should have been reworked. I will try to rework it > with clear descriptions. > > > >>>> And again, device configuration does not fail when wrong key length > >>>> is provided, it just uses some other key. Guys this kind of error > >>>> handling is completely unacceptable. > > If less length of key is provided, it will not be used at all, the default key will be > used. > > So there is no issue as you said. But we need to add more clear > > description for the structure of rte_eth_rss_conf. > > > > Thank you very much for the good comments! > > > > Regards, > > Helin > > > >>>> The last one is more of a question. Why interface to change RSS > >>>> hash function (XOR or toeplitz) is part of a filter configuration > >>>> and not rss config? > >>>> > >>>> -- > >>>> Gleb. > >>> -- > >>> Gleb. > >> -- > >> Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-08-24 17:51 ` Zhang, Helin @ 2015-08-24 18:26 ` Vlad Zolotarov 2015-08-24 18:54 ` Zhang, Helin 0 siblings, 1 reply; 14+ messages in thread From: Vlad Zolotarov @ 2015-08-24 18:26 UTC (permalink / raw) To: Zhang, Helin, Gleb Natapov; +Cc: dev On 08/24/15 20:51, Zhang, Helin wrote: > >> -----Original Message----- >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] >> Sent: Monday, August 24, 2015 4:14 AM >> To: Zhang, Helin; Gleb Natapov; dev@dpdk.org >> Subject: Re: [dpdk-dev] i40e and RSS woes >> >> >> >> On 03/05/15 07:56, Zhang, Helin wrote: >>> Hi Gleb >>> >>> Sorry for late! I am struggling on my tasks for the following DPDK release these >> days. >>>> -----Original Message----- >>>> From: Gleb Natapov [mailto:gleb@cloudius-systems.com] >>>> Sent: Monday, March 2, 2015 8:56 PM >>>> To: dev@dpdk.org >>>> Cc: Zhang, Helin >>>> Subject: Re: i40e and RSS woes >>>> >>>> Ping. >>>> >>>> On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: >>>>> CCing i40e driver author in a hope to get an answer. >>>>> >>>>> On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: >>>>>> I have an application that works reasonably well with ixgbe driver, >>>>>> but when I try to use it with i40e I encounter various RSS related issues. >>>>>> >>>>>> First one is that for some reason i40e, when it builds default reta >>>>>> table, round down number of queues to power of two. Why is this? If >>> It seems because of i40e queue configuration. We will check it more >>> and see if it can be changed or improved later. >> Helin, hi! >> Sorry for bringing it back but it seems that the RSS queues number issue >> (rounding it down to the nearest power of 2) still hasn't been addressed in the >> master branch. >> >> Could u, pls., clarify what is that "i40e queue configuration" that requires this >> alignment u are referring above? >> >> From what i could see "num" parameter is not propagated outside the >> i40e_pf_config_rss() in any form except for RSS table contents. >> This means that any code that would need to know the number of Rx queues >> would use the dev_data->nb_rx_queues (e.g. i40e_dev_rx_init()) and wouldn't >> be able to know that i40e_pf_config_rss() something different except for >> scanning the RSS table in HW which is of course not an option. >> >> Therefore, from the first look it seems that this rounding may be safely removed >> unless I've missed something. > Could you help to refer to the data sheet of 'Hash Filter', 'Receive Queue Regions', it > is said that '1, 2, 4, 8, 16, 32, 64' are the supported queue regions. > Yes, we should support more than 64 queues per port, but for rss, it should be one > of '1, 2, 4, 8, 16, 32, 64'. "The VSIs support 8 regions of receive queues that are aimed mainly for the TCs. The TC regions are defined per VSI by the VSIQF_TCREGION register. The region sizes (defined by the TC_SIZE fields) can be any of the following value: 1, 2, 4, 8, 16, 32, 64 as long as the total number of queues do not exceed the VSI allocation. These regions starts at the offset defined by the TC_OFFSET parameter. According to the region size, the ‘n’ LS bits of the Queue Index from the LUT are enabled." I think the above says that the region sizes may only be one of the mentioned values. AFAIU this doesn't mean that the number or RSS queues has to be the same - it may not exceed it. Just like it's stated in the "Outcome Queue Index" definition the final mapping to the PF index space is done using the VSILAN_QTABLE or VSILAN_QBASE registers (a.k.a. RSS indirection table). For instance if u have a region of size 8 u may configure 3 RSS queues by setting the following RSS table: 0,1,2,0,1,2,0,1 > > Thanks, > Helin > >> Pls., comment. >> >> thanks, >> vlad >> >>>>>> I configure reta by my own using all of the queues everything seams >>>>>> to be working. To add insult to injury I do not get any errors >>>>>> during configuration some queues just do not receive any traffic. >>>>>> >>>>>> The second problem is that for some reason i40e does not use 40 >>>>>> byte toeplitz hash key like any other driver, but it expects the >>>>>> key to be 52 bytes. And it would have being fine (if we ignore the >>>>>> fact that it contradicts MS spec), but how my high level code >>>>>> suppose to know >>>> that? >>> Actually a rss_key_len was introduced in struct rte_eth_rss_conf >>> recently. So the length should be indicated clearly. But I found the >>> annotations of that structure should have been reworked. I will try to rework it >> with clear descriptions. >>>>>> And again, device configuration does not fail when wrong key length >>>>>> is provided, it just uses some other key. Guys this kind of error >>>>>> handling is completely unacceptable. >>> If less length of key is provided, it will not be used at all, the default key will be >> used. >>> So there is no issue as you said. But we need to add more clear >>> description for the structure of rte_eth_rss_conf. >>> >>> Thank you very much for the good comments! >>> >>> Regards, >>> Helin >>> >>>>>> The last one is more of a question. Why interface to change RSS >>>>>> hash function (XOR or toeplitz) is part of a filter configuration >>>>>> and not rss config? >>>>>> >>>>>> -- >>>>>> Gleb. >>>>> -- >>>>> Gleb. >>>> -- >>>> Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-08-24 18:26 ` Vlad Zolotarov @ 2015-08-24 18:54 ` Zhang, Helin 2015-08-24 18:58 ` Vladislav Zolotarov 0 siblings, 1 reply; 14+ messages in thread From: Zhang, Helin @ 2015-08-24 18:54 UTC (permalink / raw) To: Vlad Zolotarov, Gleb Natapov; +Cc: dev > -----Original Message----- > From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > Sent: Monday, August 24, 2015 11:26 AM > To: Zhang, Helin; Gleb Natapov > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] i40e and RSS woes > > > > On 08/24/15 20:51, Zhang, Helin wrote: > > > >> -----Original Message----- > >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > >> Sent: Monday, August 24, 2015 4:14 AM > >> To: Zhang, Helin; Gleb Natapov; dev@dpdk.org > >> Subject: Re: [dpdk-dev] i40e and RSS woes > >> > >> > >> > >> On 03/05/15 07:56, Zhang, Helin wrote: > >>> Hi Gleb > >>> > >>> Sorry for late! I am struggling on my tasks for the following DPDK > >>> release these > >> days. > >>>> -----Original Message----- > >>>> From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > >>>> Sent: Monday, March 2, 2015 8:56 PM > >>>> To: dev@dpdk.org > >>>> Cc: Zhang, Helin > >>>> Subject: Re: i40e and RSS woes > >>>> > >>>> Ping. > >>>> > >>>> On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: > >>>>> CCing i40e driver author in a hope to get an answer. > >>>>> > >>>>> On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > >>>>>> I have an application that works reasonably well with ixgbe > >>>>>> driver, but when I try to use it with i40e I encounter various RSS related > issues. > >>>>>> > >>>>>> First one is that for some reason i40e, when it builds default > >>>>>> reta table, round down number of queues to power of two. Why is > >>>>>> this? If > >>> It seems because of i40e queue configuration. We will check it more > >>> and see if it can be changed or improved later. > >> Helin, hi! > >> Sorry for bringing it back but it seems that the RSS queues number > >> issue (rounding it down to the nearest power of 2) still hasn't been > >> addressed in the master branch. > >> > >> Could u, pls., clarify what is that "i40e queue configuration" that > >> requires this alignment u are referring above? > >> > >> From what i could see "num" parameter is not propagated outside the > >> i40e_pf_config_rss() in any form except for RSS table contents. > >> This means that any code that would need to know the number of Rx > >> queues would use the dev_data->nb_rx_queues (e.g. i40e_dev_rx_init()) > >> and wouldn't be able to know that i40e_pf_config_rss() something > >> different except for scanning the RSS table in HW which is of course not an > option. > >> > >> Therefore, from the first look it seems that this rounding may be > >> safely removed unless I've missed something. > > Could you help to refer to the data sheet of 'Hash Filter', 'Receive > > Queue Regions', it is said that '1, 2, 4, 8, 16, 32, 64' are the supported queue > regions. > > Yes, we should support more than 64 queues per port, but for rss, it > > should be one of '1, 2, 4, 8, 16, 32, 64'. > > "The VSIs support 8 regions of receive queues that are aimed mainly for the TCs. > The TC regions are defined per VSI by the VSIQF_TCREGION register. The region > sizes (defined by the TC_SIZE fields) can be any of the following value: 1, 2, 4, 8, > 16, 32, 64 as long as the total number of queues do not exceed the VSI allocation. > These regions starts at the offset defined by the TC_OFFSET parameter. > According to the region size, the 'n' LS bits of the Queue Index from the LUT are > enabled." > > I think the above says that the region sizes may only be one of the mentioned > values. > > AFAIU this doesn't mean that the number or RSS queues has to be the same > - it may not exceed it. > > Just like it's stated in the "Outcome Queue Index" definition the final mapping to > the PF index space is done using the VSILAN_QTABLE or VSILAN_QBASE registers > (a.k.a. RSS indirection table). > > For instance if u have a region of size 8 u may configure 3 RSS queues by setting > the following RSS table: > 0,1,2,0,1,2,0,1 I tend to agree with you. Anyway, I am working on supporting more queues per port than 64, and I will take this into account. If not other strong reasons, I will change it. Thank you very much! Regards, Helin > > > > > Thanks, > > Helin > > > >> Pls., comment. > >> > >> thanks, > >> vlad > >> > >>>>>> I configure reta by my own using all of the queues everything > >>>>>> seams to be working. To add insult to injury I do not get any > >>>>>> errors during configuration some queues just do not receive any traffic. > >>>>>> > >>>>>> The second problem is that for some reason i40e does not use 40 > >>>>>> byte toeplitz hash key like any other driver, but it expects the > >>>>>> key to be 52 bytes. And it would have being fine (if we ignore > >>>>>> the fact that it contradicts MS spec), but how my high level code > >>>>>> suppose to know > >>>> that? > >>> Actually a rss_key_len was introduced in struct rte_eth_rss_conf > >>> recently. So the length should be indicated clearly. But I found the > >>> annotations of that structure should have been reworked. I will try > >>> to rework it > >> with clear descriptions. > >>>>>> And again, device configuration does not fail when wrong key > >>>>>> length is provided, it just uses some other key. Guys this kind > >>>>>> of error handling is completely unacceptable. > >>> If less length of key is provided, it will not be used at all, the > >>> default key will be > >> used. > >>> So there is no issue as you said. But we need to add more clear > >>> description for the structure of rte_eth_rss_conf. > >>> > >>> Thank you very much for the good comments! > >>> > >>> Regards, > >>> Helin > >>> > >>>>>> The last one is more of a question. Why interface to change RSS > >>>>>> hash function (XOR or toeplitz) is part of a filter configuration > >>>>>> and not rss config? > >>>>>> > >>>>>> -- > >>>>>> Gleb. > >>>>> -- > >>>>> Gleb. > >>>> -- > >>>> Gleb. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] i40e and RSS woes 2015-08-24 18:54 ` Zhang, Helin @ 2015-08-24 18:58 ` Vladislav Zolotarov 0 siblings, 0 replies; 14+ messages in thread From: Vladislav Zolotarov @ 2015-08-24 18:58 UTC (permalink / raw) To: Helin Zhang; +Cc: dev On Aug 24, 2015 21:54, "Zhang, Helin" <helin.zhang@intel.com> wrote: > > > > > -----Original Message----- > > From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > > Sent: Monday, August 24, 2015 11:26 AM > > To: Zhang, Helin; Gleb Natapov > > Cc: dev@dpdk.org > > Subject: Re: [dpdk-dev] i40e and RSS woes > > > > > > > > On 08/24/15 20:51, Zhang, Helin wrote: > > > > > >> -----Original Message----- > > >> From: Vlad Zolotarov [mailto:vladz@cloudius-systems.com] > > >> Sent: Monday, August 24, 2015 4:14 AM > > >> To: Zhang, Helin; Gleb Natapov; dev@dpdk.org > > >> Subject: Re: [dpdk-dev] i40e and RSS woes > > >> > > >> > > >> > > >> On 03/05/15 07:56, Zhang, Helin wrote: > > >>> Hi Gleb > > >>> > > >>> Sorry for late! I am struggling on my tasks for the following DPDK > > >>> release these > > >> days. > > >>>> -----Original Message----- > > >>>> From: Gleb Natapov [mailto:gleb@cloudius-systems.com] > > >>>> Sent: Monday, March 2, 2015 8:56 PM > > >>>> To: dev@dpdk.org > > >>>> Cc: Zhang, Helin > > >>>> Subject: Re: i40e and RSS woes > > >>>> > > >>>> Ping. > > >>>> > > >>>> On Thu, Feb 19, 2015 at 04:50:10PM +0200, Gleb Natapov wrote: > > >>>>> CCing i40e driver author in a hope to get an answer. > > >>>>> > > >>>>> On Mon, Feb 16, 2015 at 03:36:54PM +0200, Gleb Natapov wrote: > > >>>>>> I have an application that works reasonably well with ixgbe > > >>>>>> driver, but when I try to use it with i40e I encounter various RSS related > > issues. > > >>>>>> > > >>>>>> First one is that for some reason i40e, when it builds default > > >>>>>> reta table, round down number of queues to power of two. Why is > > >>>>>> this? If > > >>> It seems because of i40e queue configuration. We will check it more > > >>> and see if it can be changed or improved later. > > >> Helin, hi! > > >> Sorry for bringing it back but it seems that the RSS queues number > > >> issue (rounding it down to the nearest power of 2) still hasn't been > > >> addressed in the master branch. > > >> > > >> Could u, pls., clarify what is that "i40e queue configuration" that > > >> requires this alignment u are referring above? > > >> > > >> From what i could see "num" parameter is not propagated outside the > > >> i40e_pf_config_rss() in any form except for RSS table contents. > > >> This means that any code that would need to know the number of Rx > > >> queues would use the dev_data->nb_rx_queues (e.g. i40e_dev_rx_init()) > > >> and wouldn't be able to know that i40e_pf_config_rss() something > > >> different except for scanning the RSS table in HW which is of course not an > > option. > > >> > > >> Therefore, from the first look it seems that this rounding may be > > >> safely removed unless I've missed something. > > > Could you help to refer to the data sheet of 'Hash Filter', 'Receive > > > Queue Regions', it is said that '1, 2, 4, 8, 16, 32, 64' are the supported queue > > regions. > > > Yes, we should support more than 64 queues per port, but for rss, it > > > should be one of '1, 2, 4, 8, 16, 32, 64'. > > > > "The VSIs support 8 regions of receive queues that are aimed mainly for the TCs. > > The TC regions are defined per VSI by the VSIQF_TCREGION register. The region > > sizes (defined by the TC_SIZE fields) can be any of the following value: 1, 2, 4, 8, > > 16, 32, 64 as long as the total number of queues do not exceed the VSI allocation. > > These regions starts at the offset defined by the TC_OFFSET parameter. > > According to the region size, the 'n' LS bits of the Queue Index from the LUT are > > enabled." > > > > I think the above says that the region sizes may only be one of the mentioned > > values. > > > > AFAIU this doesn't mean that the number or RSS queues has to be the same > > - it may not exceed it. > > > > Just like it's stated in the "Outcome Queue Index" definition the final mapping to > > the PF index space is done using the VSILAN_QTABLE or VSILAN_QBASE registers > > (a.k.a. RSS indirection table). > > > > For instance if u have a region of size 8 u may configure 3 RSS queues by setting > > the following RSS table: > > 0,1,2,0,1,2,0,1 > I tend to agree with you. Anyway, I am working on supporting more queues per port than 64, > and I will take this into account. If not other strong reasons, I will change it. Thank you very much! Great! Thanks a lot, Helin. > > Regards, > Helin > > > > > > > > > Thanks, > > > Helin > > > > > >> Pls., comment. > > >> > > >> thanks, > > >> vlad > > >> > > >>>>>> I configure reta by my own using all of the queues everything > > >>>>>> seams to be working. To add insult to injury I do not get any > > >>>>>> errors during configuration some queues just do not receive any traffic. > > >>>>>> > > >>>>>> The second problem is that for some reason i40e does not use 40 > > >>>>>> byte toeplitz hash key like any other driver, but it expects the > > >>>>>> key to be 52 bytes. And it would have being fine (if we ignore > > >>>>>> the fact that it contradicts MS spec), but how my high level code > > >>>>>> suppose to know > > >>>> that? > > >>> Actually a rss_key_len was introduced in struct rte_eth_rss_conf > > >>> recently. So the length should be indicated clearly. But I found the > > >>> annotations of that structure should have been reworked. I will try > > >>> to rework it > > >> with clear descriptions. > > >>>>>> And again, device configuration does not fail when wrong key > > >>>>>> length is provided, it just uses some other key. Guys this kind > > >>>>>> of error handling is completely unacceptable. > > >>> If less length of key is provided, it will not be used at all, the > > >>> default key will be > > >> used. > > >>> So there is no issue as you said. But we need to add more clear > > >>> description for the structure of rte_eth_rss_conf. > > >>> > > >>> Thank you very much for the good comments! > > >>> > > >>> Regards, > > >>> Helin > > >>> > > >>>>>> The last one is more of a question. Why interface to change RSS > > >>>>>> hash function (XOR or toeplitz) is part of a filter configuration > > >>>>>> and not rss config? > > >>>>>> > > >>>>>> -- > > >>>>>> Gleb. > > >>>>> -- > > >>>>> Gleb. > > >>>> -- > > >>>> Gleb. > ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2015-08-24 18:58 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-02-16 13:36 [dpdk-dev] i40e and RSS woes Gleb Natapov 2015-02-19 14:50 ` Gleb Natapov 2015-03-02 12:56 ` Gleb Natapov 2015-03-05 5:56 ` Zhang, Helin 2015-03-05 6:39 ` Gleb Natapov 2015-03-05 6:56 ` Zhang, Helin 2015-04-28 9:21 ` Gleb Natapov 2015-04-28 14:46 ` Zhang, Helin 2015-08-24 11:13 ` Vlad Zolotarov 2015-08-24 11:40 ` Vlad Zolotarov 2015-08-24 17:51 ` Zhang, Helin 2015-08-24 18:26 ` Vlad Zolotarov 2015-08-24 18:54 ` Zhang, Helin 2015-08-24 18:58 ` Vladislav Zolotarov
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).