Hi, Sugesh,
Thanks for review. My comments inline.

Bets regards, Ilya Maximets.

On 20.09.2016 11:41, Chandran, Sugesh wrote:
> Hi Ilya,
> Thank you for sending out the patch.
> I verified that the patch is working fine.
> Please find some comments below.
> 
> Regards
> _Sugesh
> 
> 
>> -----Original Message-----
>> From: Ilya Maximets [mailto:i.maxim...@samsung.com]
>> Sent: Monday, September 19, 2016 2:34 PM
>> To: dev@openvswitch.org; Daniele Di Proietto <diproiet...@vmware.com>
>> Cc: Dyasly Sergey <s.dya...@samsung.com>; Heetae Ahn
>> <heetae82....@samsung.com>; Chandran, Sugesh
>> <sugesh.chand...@intel.com>; Bodireddy, Bhanuprakash
>> <bhanuprakash.bodire...@intel.com>; Loftus, Ciara
>> <ciara.lof...@intel.com>; Ilya Maximets <i.maxim...@samsung.com>
>> Subject: [PATCH] netdev-dpdk: Configure flow control only when necessary.
>>
>> It is not necessary to touch the physical device each time, if the
>> configuration has not been changed. Also, few style issues fixed.
>>
>> Signed-off-by: Ilya Maximets <i.maxim...@samsung.com>
>> ---
>>  lib/netdev-dpdk.c | 30 +++++++++++++++++-------------
>>  1 file changed, 17 insertions(+), 13 deletions(-)
>>
>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
>> index 6d334db..1632b97 100644
>> --- a/lib/netdev-dpdk.c
>> +++ b/lib/netdev-dpdk.c
>> @@ -1057,6 +1057,7 @@ netdev_dpdk_get_config(const struct netdev
>> *netdev, struct smap *args)
>>
>>  static void
>>  dpdk_set_rxq_config(struct netdev_dpdk *dev, const struct smap *args)
>> +    OVS_REQUIRES(dev->mutex)
> [Sugesh] I assume this mutex is needed irrelevant of flow director 
> configuration.
> Can you mention this as well in the commit message.

You right. I just thought that this annotation can be treated as a style fix.
If you disagree, I can mention it in a commit-message.

>>  {
>>      int new_n_rxq;
>>
>> @@ -1071,24 +1072,27 @@ static int
>>  netdev_dpdk_set_config(struct netdev *netdev, const struct smap *args)
>>  {
>>      struct netdev_dpdk *dev = netdev_dpdk_cast(netdev);
>> +    uint8_t rx_fc_en, tx_fc_en, autoneg;
>> +    enum rte_eth_fc_mode fc_mode;
>> +    static const enum rte_eth_fc_mode fc_mode_set[2][2] = {
>> +        {RTE_FC_NONE,     RTE_FC_TX_PAUSE},
>> +        {RTE_FC_RX_PAUSE, RTE_FC_FULL    }
>> +    };
>>
>>      ovs_mutex_lock(&dev->mutex);
>>
>>      dpdk_set_rxq_config(dev, args);
>>
>> -    /* Flow control support is only available for DPDK Ethernet ports. */
>> -    bool rx_fc_en = false;
>> -    bool tx_fc_en = false;
>> -    enum rte_eth_fc_mode fc_mode_set[2][2] =
>> -                                       {{RTE_FC_NONE, RTE_FC_TX_PAUSE},
>> -                                        {RTE_FC_RX_PAUSE, RTE_FC_FULL}
>> -                                       };
>> -    rx_fc_en = smap_get_bool(args, "rx-flow-ctrl", false);
>> -    tx_fc_en = smap_get_bool(args, "tx-flow-ctrl", false);
>> -    dev->fc_conf.autoneg = smap_get_bool(args, "flow-ctrl-autoneg", false);
>> -    dev->fc_conf.mode = fc_mode_set[tx_fc_en][rx_fc_en];
>> -
>> -    dpdk_eth_flow_ctrl_setup(dev);
>> +    rx_fc_en = smap_get_bool(args, "rx-flow-ctrl", false) ? 1 : 0;
> [Sugesh] smap_get_bool itself returns 1, 0 based on the input. I wouldn't use 
> the conditional operator to check the result.
> Same comment for the following smap_get* as well.

'smap_get_bool()' returns 'bool'.
And according to "C DIALECT" section of CodingStyle.md:
"
  Most C99 features are OK because they are widely implemented:

        * bool and <stdbool.h>, but don't assume that bool or _Bool can
          only take on the values 0 or 1, because this behavior can't be
          simulated on C89 compilers.
"

This means that 'bool' must be directly converted to 0 or 1 before
using as an index.

>> +    tx_fc_en = smap_get_bool(args, "tx-flow-ctrl", false) ? 1 : 0;
>> +    autoneg = smap_get_bool(args, "flow-ctrl-autoneg", false) ? 1 : 0;
>> +
>> +    fc_mode = fc_mode_set[tx_fc_en][rx_fc_en];
>> +    if (dev->fc_conf.mode != fc_mode || autoneg != dev->fc_conf.autoneg)
>> {
>> +        dev->fc_conf.mode = fc_mode;
>> +        dev->fc_conf.autoneg = autoneg;
>> +        dpdk_eth_flow_ctrl_setup(dev);
>> +    }
>>
>>      ovs_mutex_unlock(&dev->mutex);
>>
>> --
>> 2.7.4
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to