Subject: Re: [PATCH net-next v6 4/7] ixgbevf: Add a RETA query code

From: Vlad Zolotarov <[email-masked]>
Date: Tue, 24 Mar 2015 12:25:31 +0200

On 03/24/15 01:46, Tantilov, Emil S wrote:
>> -----Original Message-----
>> From: [email-masked] [mailto:[email-masked]] On Behalf Of Vlad Zolotarov
>> Sent: Sunday, March 22, 2015 12:01 PM
>>
>> Subject: [PATCH net-next v6 4/7] ixgbevf: Add a RETA query code
>>
>>    - Added a new API version support.
>>    - Added the query implementation in the ixgbevf.
>>
>> Signed-off-by: Vlad Zolotarov <[email-masked]>
>> ---
>> New in v6:
>>    - Add a proper return code when an operation is blocked by PF.
>>
>> New in v3:
>>    - Adjusted to the new interface IXGBE_VF_GET_RETA command.
>>    - Added a proper support for x550 devices.
>>
>> New in v1 (compared to RFC):
>>    - Use "if-else" statement instead of a "switch-case" for a single option case
>>      (in ixgbevf_get_reta()).
>> ---
>> drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |  4 +-
>> drivers/net/ethernet/intel/ixgbevf/mbx.h          |  8 ++
>> drivers/net/ethernet/intel/ixgbevf/vf.c           | 92 +++++++++++++++++++++++
>> drivers/net/ethernet/intel/ixgbevf/vf.h           |  1 +
>> 4 files changed, 104 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
>> index 4ee15ad..4787fcf 100644
>> --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
>> +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
>> @@ -2030,7 +2030,8 @@ static void ixgbevf_init_last_counter_stats(struct ixgbevf_adapter *adapter)
>> static void ixgbevf_negotiate_api(struct ixgbevf_adapter *adapter)
>> {
>> 	struct ixgbe_hw *hw = &adapter->hw;
>> -	int api[] = { ixgbe_mbox_api_11,
>> +	int api[] = { ixgbe_mbox_api_12,
>> +		      ixgbe_mbox_api_11,
>> 		      ixgbe_mbox_api_10,
>> 		      ixgbe_mbox_api_unknown };
>> 	int err = 0, idx = 0;
>> @@ -3712,6 +3713,7 @@ static int ixgbevf_change_mtu(struct net_device *netdev, int new_mtu)
>>
>> 	switch (adapter->hw.api_version) {
>> 	case ixgbe_mbox_api_11:
>> +	case ixgbe_mbox_api_12:
>> 		max_possible_frame = IXGBE_MAX_JUMBO_FRAME_SIZE;
>> 		break;
>> 	default:
> You need another case for ixgbe_mbox_api_12 in ixgbevf_set_num_queues(), otherwise the driver will load with a single queue.

Right. I've missed this place since it's been added after the first 
series version and 'git rebase' silently integrated it... ;)

I have a question about this new code though. Why does ixgbevf ignores 
IXGBE_VF_RX_QUEUES PF returns it in IXGBE_VF_GET_QUEUE?
PF returns there 1 by the way (see ixgbe_get_vf_queues()) despite the 
fact it configures the VF to have up to 4 queues... I do understand why 
it allows up to 4 queues but why does it return 1 for IXGBE_VF_RX_QUEUES 
in IXGBE_VF_GET_QUEUE? Shouldn't it return 4 there?

Could somebody clarify this design to me, please?

>
> Thanks,
> Emil
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html