All of lore.kernel.org
 help / color / mirror / Atom feed
From: andriy.shevchenko@linux.intel.com (Andy Shevchenko)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH net-next 10/19] net: hns: bugfix about pfc pause frame statistics
Date: Tue, 21 Jun 2016 13:32:58 +0300	[thread overview]
Message-ID: <1466505178.30123.201.camel@linux.intel.com> (raw)
In-Reply-To: <1466481399-70080-11-git-send-email-Yisen.Zhuang@huawei.com>

On Tue, 2016-06-21 at 11:56 +0800, Yisen Zhuang wrote:
> From: Daode Huang <huangdaode@hisilicon.com>
> 
> For SoC hip06, PFC pause handled in dsaf, while hip05 in XGMAC,
> so change the statistics of pfc pause in dsaf and remove the old
> pfc pause frame statistics.
> 


> +static char *hns_dsaf_get_node_stats_strings(char *data, int node,
> +					?????struct dsaf_device
> *dsaf_dev)
> ?{
> ?	char *buff = data;
> +	int i;
> +	bool is_ver1 = AE_IS_VER1(dsaf_dev->dsaf_ver);
> ?
> ?	snprintf(buff, ETH_GSTRING_LEN, "innod%d_pad_drop_pkts",
> node);
> ?	buff = buff + ETH_GSTRING_LEN;
> @@ -2502,6 +2530,18 @@ static char
> *hns_dsaf_get_node_stats_strings(char *data, int node)
> ?	buff = buff + ETH_GSTRING_LEN;
> ?	snprintf(buff, ETH_GSTRING_LEN, "innod%d_stp_drop_pkts",
> node);
> ?	buff = buff + ETH_GSTRING_LEN;
> +	if ((node < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {

Redundant parens.

> +		for (i = 0; i < DSAF_PRIO_NR; i++) {
> +			snprintf(buff, ETH_GSTRING_LEN,
> +				?"inod%d_pfc_prio%d_pkts", node, i);
> +			buff = buff + ETH_GSTRING_LEN;

buff += ...

> +		}
> +		for (i = 0; i < DSAF_PRIO_NR; i++) {
> +			snprintf(buff, ETH_GSTRING_LEN,
> +				?"onod%d_pfc_prio%d_pkts", node, i);
> +			buff = buff + ETH_GSTRING_LEN;

Ditto.

> ?{
> ?	u64 *p = data;
> +	int i;
> ?	struct dsaf_hw_stats *hw_stats = &ddev->hw_stats[node_num];
> +	bool is_ver1 = AE_IS_VER1(ddev->dsaf_ver);
> ?
> ?	p[0] = hw_stats->pad_drop;
> ?	p[1] = hw_stats->man_pkts;
> @@ -2527,8 +2569,16 @@ static u64 *hns_dsaf_get_node_stats(struct
> dsaf_device *ddev, u64 *data,
> ?	p[10] = hw_stats->local_addr_false;
> ?	p[11] = hw_stats->vlan_drop;
> ?	p[12] = hw_stats->stp_drop;
> -	p[13] = hw_stats->tx_pkts;
> +	if ((node_num < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
> +		for (i = 0; i < DSAF_PRIO_NR; i++) {
> +			p[13 + i] = hw_stats->rx_pfc[i];
> +			p[13 + i + DSAF_PRIO_NR] = hw_stats-
> >tx_pfc[i];
> +		}

Two different approaches how to assign data. Above uses 2 for-loops,
here you put everything to one.

> +		p[29] = hw_stats->tx_pkts;
> +		return &p[30];
> +	}
> ?
> +	p[13] = hw_stats->tx_pkts;
> ?	return &p[14];
> ?}

-- 

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Yisen Zhuang <Yisen.Zhuang@huawei.com>,
	davem@davemloft.net, salil.mehta@huawei.com,
	yankejian@huawei.com
Cc: liguozhu@huawei.com, huangdaode@hisilicon.com, arnd@arndb.de,
	andrew@lunn.ch, geliangtang@163.com, ivecera@redhat.com,
	fengguang.wu@intel.com, charles.chenxin@huawei.com,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linuxarm@huawei.com
Subject: Re: [PATCH net-next 10/19] net: hns: bugfix about pfc pause frame statistics
Date: Tue, 21 Jun 2016 13:32:58 +0300	[thread overview]
Message-ID: <1466505178.30123.201.camel@linux.intel.com> (raw)
In-Reply-To: <1466481399-70080-11-git-send-email-Yisen.Zhuang@huawei.com>

On Tue, 2016-06-21 at 11:56 +0800, Yisen Zhuang wrote:
> From: Daode Huang <huangdaode@hisilicon.com>
> 
> For SoC hip06, PFC pause handled in dsaf, while hip05 in XGMAC,
> so change the statistics of pfc pause in dsaf and remove the old
> pfc pause frame statistics.
> 


> +static char *hns_dsaf_get_node_stats_strings(char *data, int node,
> +					     struct dsaf_device
> *dsaf_dev)
>  {
>  	char *buff = data;
> +	int i;
> +	bool is_ver1 = AE_IS_VER1(dsaf_dev->dsaf_ver);
>  
>  	snprintf(buff, ETH_GSTRING_LEN, "innod%d_pad_drop_pkts",
> node);
>  	buff = buff + ETH_GSTRING_LEN;
> @@ -2502,6 +2530,18 @@ static char
> *hns_dsaf_get_node_stats_strings(char *data, int node)
>  	buff = buff + ETH_GSTRING_LEN;
>  	snprintf(buff, ETH_GSTRING_LEN, "innod%d_stp_drop_pkts",
> node);
>  	buff = buff + ETH_GSTRING_LEN;
> +	if ((node < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {

Redundant parens.

> +		for (i = 0; i < DSAF_PRIO_NR; i++) {
> +			snprintf(buff, ETH_GSTRING_LEN,
> +				 "inod%d_pfc_prio%d_pkts", node, i);
> +			buff = buff + ETH_GSTRING_LEN;

buff += ...

> +		}
> +		for (i = 0; i < DSAF_PRIO_NR; i++) {
> +			snprintf(buff, ETH_GSTRING_LEN,
> +				 "onod%d_pfc_prio%d_pkts", node, i);
> +			buff = buff + ETH_GSTRING_LEN;

Ditto.

>  {
>  	u64 *p = data;
> +	int i;
>  	struct dsaf_hw_stats *hw_stats = &ddev->hw_stats[node_num];
> +	bool is_ver1 = AE_IS_VER1(ddev->dsaf_ver);
>  
>  	p[0] = hw_stats->pad_drop;
>  	p[1] = hw_stats->man_pkts;
> @@ -2527,8 +2569,16 @@ static u64 *hns_dsaf_get_node_stats(struct
> dsaf_device *ddev, u64 *data,
>  	p[10] = hw_stats->local_addr_false;
>  	p[11] = hw_stats->vlan_drop;
>  	p[12] = hw_stats->stp_drop;
> -	p[13] = hw_stats->tx_pkts;
> +	if ((node_num < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
> +		for (i = 0; i < DSAF_PRIO_NR; i++) {
> +			p[13 + i] = hw_stats->rx_pfc[i];
> +			p[13 + i + DSAF_PRIO_NR] = hw_stats-
> >tx_pfc[i];
> +		}

Two different approaches how to assign data. Above uses 2 for-loops,
here you put everything to one.

> +		p[29] = hw_stats->tx_pkts;
> +		return &p[30];
> +	}
>  
> +	p[13] = hw_stats->tx_pkts;
>  	return &p[14];
>  }

-- 

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Yisen Zhuang <Yisen.Zhuang@huawei.com>,
	davem@davemloft.net, salil.mehta@huawei.com,
	yankejian@huawei.com
Cc: ivecera@redhat.com, andrew@lunn.ch, liguozhu@huawei.com,
	arnd@arndb.de, charles.chenxin@huawei.com,
	linux-kernel@vger.kernel.org, linuxarm@huawei.com,
	geliangtang@163.com, huangdaode@hisilicon.com,
	netdev@vger.kernel.org, fengguang.wu@intel.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH net-next 10/19] net: hns: bugfix about pfc pause frame statistics
Date: Tue, 21 Jun 2016 13:32:58 +0300	[thread overview]
Message-ID: <1466505178.30123.201.camel@linux.intel.com> (raw)
In-Reply-To: <1466481399-70080-11-git-send-email-Yisen.Zhuang@huawei.com>

On Tue, 2016-06-21 at 11:56 +0800, Yisen Zhuang wrote:
> From: Daode Huang <huangdaode@hisilicon.com>
> 
> For SoC hip06, PFC pause handled in dsaf, while hip05 in XGMAC,
> so change the statistics of pfc pause in dsaf and remove the old
> pfc pause frame statistics.
> 


> +static char *hns_dsaf_get_node_stats_strings(char *data, int node,
> +					     struct dsaf_device
> *dsaf_dev)
>  {
>  	char *buff = data;
> +	int i;
> +	bool is_ver1 = AE_IS_VER1(dsaf_dev->dsaf_ver);
>  
>  	snprintf(buff, ETH_GSTRING_LEN, "innod%d_pad_drop_pkts",
> node);
>  	buff = buff + ETH_GSTRING_LEN;
> @@ -2502,6 +2530,18 @@ static char
> *hns_dsaf_get_node_stats_strings(char *data, int node)
>  	buff = buff + ETH_GSTRING_LEN;
>  	snprintf(buff, ETH_GSTRING_LEN, "innod%d_stp_drop_pkts",
> node);
>  	buff = buff + ETH_GSTRING_LEN;
> +	if ((node < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {

Redundant parens.

> +		for (i = 0; i < DSAF_PRIO_NR; i++) {
> +			snprintf(buff, ETH_GSTRING_LEN,
> +				 "inod%d_pfc_prio%d_pkts", node, i);
> +			buff = buff + ETH_GSTRING_LEN;

buff += ...

> +		}
> +		for (i = 0; i < DSAF_PRIO_NR; i++) {
> +			snprintf(buff, ETH_GSTRING_LEN,
> +				 "onod%d_pfc_prio%d_pkts", node, i);
> +			buff = buff + ETH_GSTRING_LEN;

Ditto.

>  {
>  	u64 *p = data;
> +	int i;
>  	struct dsaf_hw_stats *hw_stats = &ddev->hw_stats[node_num];
> +	bool is_ver1 = AE_IS_VER1(ddev->dsaf_ver);
>  
>  	p[0] = hw_stats->pad_drop;
>  	p[1] = hw_stats->man_pkts;
> @@ -2527,8 +2569,16 @@ static u64 *hns_dsaf_get_node_stats(struct
> dsaf_device *ddev, u64 *data,
>  	p[10] = hw_stats->local_addr_false;
>  	p[11] = hw_stats->vlan_drop;
>  	p[12] = hw_stats->stp_drop;
> -	p[13] = hw_stats->tx_pkts;
> +	if ((node_num < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
> +		for (i = 0; i < DSAF_PRIO_NR; i++) {
> +			p[13 + i] = hw_stats->rx_pfc[i];
> +			p[13 + i + DSAF_PRIO_NR] = hw_stats-
> >tx_pfc[i];
> +		}

Two different approaches how to assign data. Above uses 2 for-loops,
here you put everything to one.

> +		p[29] = hw_stats->tx_pkts;
> +		return &p[30];
> +	}
>  
> +	p[13] = hw_stats->tx_pkts;
>  	return &p[14];
>  }

-- 

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2016-06-21 10:32 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-21  3:56 [PATCH net-next 00/19] net: hns: fix some bugs in hns driver Yisen Zhuang
2016-06-21  3:56 ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 01/19] net: hns: bug fix of ge reset sequence Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21 10:35   ` Andy Shevchenko
2016-06-21 10:35     ` Andy Shevchenko
2016-06-22  1:33     ` Yisen Zhuang
2016-06-22  1:33       ` Yisen Zhuang
2016-06-22  1:33       ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 02/19] net: hns: fix hns dsaf v1 dont support tx_pause close Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 03/19] net: hns: add skb_reset_mac_header() after skb being alloc Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 04/19] net: hns: typo fix of annotation info for hns_nic_reset_subtask() Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 05/19] net: hns: Remove unnecessary device resource free Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 06/19] net: hns: fix the error info when dma_set_mask_and_coherent fail Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 07/19] net: hns: select Hilink before serdes loopback for HNS V2 Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 08/19] net: hns: fix ethtool loopback fail bug Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 09/19] net: hns: fix the wrong speed for bond Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 10/19] net: hns: bugfix about pfc pause frame statistics Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21 10:32   ` Andy Shevchenko [this message]
2016-06-21 10:32     ` Andy Shevchenko
2016-06-21 10:32     ` Andy Shevchenko
2016-06-22  1:43     ` Yisen Zhuang
2016-06-22  1:43       ` Yisen Zhuang
2016-06-22  9:41       ` Andy Shevchenko
2016-06-22  9:41         ` Andy Shevchenko
2016-06-23  5:42         ` Yisen Zhuang
2016-06-23  5:42           ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 11/19] net: hns: add spin lock for tcam table operation Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 12/19] net: hns: fix bug of getting the wrong tcam data Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 13/19] net: hns: add get_coalesce_range api for hns Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 14/19] net: hns: delete redundancy ring enable operations Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 15/19] net: hns: bug fix about led control logic when link down Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 16/19] net: hns: fix bug that alloc skb fail lead to port unavailable Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21 13:25   ` Sergei Shtylyov
2016-06-21 13:25     ` Sergei Shtylyov
2016-06-22  1:41     ` Yisen Zhuang
2016-06-22  1:41       ` Yisen Zhuang
2016-06-22  1:41       ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 17/19] net: hns: fix sbm default parameters config error Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 18/19] net: hns: change the default coalesce usecs Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56 ` [PATCH net-next 19/19] net: hns: bug fix about TSO on|off when there is traffic Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  3:56   ` Yisen Zhuang
2016-06-21  8:54 ` [PATCH net-next 00/19] net: hns: fix some bugs in hns driver David Miller
2016-06-21  8:54   ` David Miller

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=1466505178.30123.201.camel@linux.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=linux-arm-kernel@lists.infradead.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 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.