Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1613191 > unrolled thread

[PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements

Started bySalil Mehta <salil.mehta@huawei.com>
First post2017-03-30 17:40 +0200
Last post2017-03-31 12:00 +0200
Articles 8 on this page of 28 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 17/19] net: hns: Adjust the SBM module buffer threshold Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 16/19] net: hns: Simplify the exception sequence in hns_ppe_init() Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 12/19] net: hns: Remove redundant mac_get_id() Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 05/19] net: hns: Remove redundant memset during buffer release Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 13/19] net: hns: Remove redundant mac table operations Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 02/19] net: hns: Modify GMAC init TX threshold value Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 04/19] net: hns: Change the TX queue selection algorithm Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 19/19] net: hns: Some checkpatch.pl script & warning fixes Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 15/19] net: hns: Optimise the code in hns_mdio_wait_ready() Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 07/19] net: hns: Optimize hns_nic_common_poll for better performance Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 06/19] net: hns: bug fix of ethtool show the speed Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 08/19] net: hns: Fix to adjust buf_size of ring according to mtu Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
      Re: [PATCH net 08/19] net: hns: Fix to adjust buf_size of ring  according to mtu kbuild test robot <lkp@intel.com> - 2017-04-01 02:00 +0200
      [PATCH] net: hns: fix boolreturn.cocci warnings kbuild test robot <lkp@intel.com> - 2017-04-01 02:00 +0200
        Re: [PATCH] net: hns: fix boolreturn.cocci warnings David Miller <davem@davemloft.net> - 2017-04-03 04:50 +0200
          Re: [kbuild-all] [PATCH] net: hns: fix boolreturn.cocci warnings Fengguang Wu <lkp@intel.com> - 2017-04-03 05:00 +0200
    [PATCH net 09/19] net: hns: Replace netif_tx_lock to ring spin lock Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 10/19] net: hns: Correct HNS RSS key set function Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 03/19] net: hns: Optimize the code for GMAC pad and crc Config Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 14/19] net: hns: Clean redundant code from hns_mdio.c file Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:40 +0200
    [PATCH net 01/19] net: hns: Fix the implementation of irq affinity function Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 17:50 +0200
    Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code  Improvements David Miller <davem@davemloft.net> - 2017-03-30 19:10 +0200
      RE: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code  Improvements Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 19:30 +0200
        Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code  Improvements David Miller <davem@davemloft.net> - 2017-03-30 19:30 +0200
          RE: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code  Improvements Salil Mehta <salil.mehta@huawei.com> - 2017-03-30 19:30 +0200
    Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code  Improvements David Miller <davem@davemloft.net> - 2017-03-31 05:10 +0200
      RE: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code  Improvements Salil Mehta <salil.mehta@huawei.com> - 2017-03-31 12:00 +0200

Page 2 of 2 — ← Prev page 1 [2]


#1613225 — [PATCH net 14/19] net: hns: Clean redundant code from hns_mdio.c file

FromSalil Mehta <salil.mehta@huawei.com>
Date2017-03-30 17:40 +0200
Subject[PATCH net 14/19] net: hns: Clean redundant code from hns_mdio.c file
Message-ID<tqKl6-8nZ-73@gated-at.bofh.it>
In reply to#1613191
From: Kejian Yan <yankejian@huawei.com>

This patch cleans the redundant code from  hns_mdio.c.

Reported-by: Ping Zhang <zhangping5@huawei.com>
Signed-off-by: Kejian Yan <yankejian@huawei.com>
Reviewed-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns_mdio.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns_mdio.c b/drivers/net/ethernet/hisilicon/hns_mdio.c
index 501eb20..fad1c5b 100644
--- a/drivers/net/ethernet/hisilicon/hns_mdio.c
+++ b/drivers/net/ethernet/hisilicon/hns_mdio.c
@@ -23,17 +23,9 @@
 #include <linux/phy.h>
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
-#include <linux/spinlock_types.h>
 
 #define MDIO_DRV_NAME "Hi-HNS_MDIO"
 #define MDIO_BUS_NAME "Hisilicon MII Bus"
-#define MDIO_DRV_VERSION "1.3.0"
-#define MDIO_COPYRIGHT "Copyright(c) 2015 Huawei Corporation."
-#define MDIO_DRV_STRING MDIO_BUS_NAME
-#define MDIO_DEFAULT_DEVICE_DESCR MDIO_BUS_NAME
-
-#define MDIO_CTL_DEV_ADDR(x)	(x & 0x1f)
-#define MDIO_CTL_PORT_ADDR(x)	((x & 0x1f) << 5)
 
 #define MDIO_TIMEOUT			1000000
 
@@ -64,9 +56,7 @@ struct hns_mdio_device {
 #define MDIO_CMD_DEVAD_S	0
 #define MDIO_CMD_PRTAD_M	0x1f
 #define MDIO_CMD_PRTAD_S	5
-#define MDIO_CMD_OP_M		0x3
 #define MDIO_CMD_OP_S		10
-#define MDIO_CMD_ST_M		0x3
 #define MDIO_CMD_ST_S		12
 #define MDIO_CMD_START_B	14
 
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1613226 — [PATCH net 01/19] net: hns: Fix the implementation of irq affinity function

FromSalil Mehta <salil.mehta@huawei.com>
Date2017-03-30 17:50 +0200
Subject[PATCH net 01/19] net: hns: Fix the implementation of irq affinity function
Message-ID<tqKuJ-8ry-1@gated-at.bofh.it>
In reply to#1613191
From: lipeng <lipeng321@huawei.com>

This patch fixes the implementation of the IRQ affinity
function. This function is used to create the cpu mask
which eventually is used to initialize the cpu<->queue
association for XPS(Transmit Packet Steering).

Signed-off-by: lipeng <lipeng321@huawei.com>
Signed-off-by: Kejian Yan <yankejian@huawei.com>
Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c | 75 +++++++++++----------------
 drivers/net/ethernet/hisilicon/hns/hns_enet.h |  1 +
 2 files changed, 30 insertions(+), 46 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index fca37e2..73ec8c8 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -1196,54 +1196,31 @@ static void hns_nic_ring_close(struct net_device *netdev, int idx)
 	napi_disable(&priv->ring_data[idx].napi);
 }
 
-static void hns_set_irq_affinity(struct hns_nic_priv *priv)
+static int hns_nic_init_affinity_mask(int q_num, int ring_idx,
+				      struct hnae_ring *ring, cpumask_t *mask)
 {
-	struct hnae_handle *h = priv->ae_handle;
-	struct hns_nic_ring_data *rd;
-	int i;
 	int cpu;
-	cpumask_var_t mask;
 
-	if (!alloc_cpumask_var(&mask, GFP_KERNEL))
-		return;
-
-	/*diffrent irq banlance for 16core and 32core*/
-	if (h->q_num == num_possible_cpus()) {
-		for (i = 0; i < h->q_num * 2; i++) {
-			rd = &priv->ring_data[i];
-			if (cpu_online(rd->queue_index)) {
-				cpumask_clear(mask);
-				cpu = rd->queue_index;
-				cpumask_set_cpu(cpu, mask);
-				(void)irq_set_affinity_hint(rd->ring->irq,
-							    mask);
-			}
-		}
+	/* Diffrent irq banlance between 16core and 32core.
+	 * The cpu mask set by ring index according to the ring flag
+	 * which indicate the ring is tx or rx.
+	 */
+	if (q_num == num_possible_cpus()) {
+		if (is_tx_ring(ring))
+			cpu = ring_idx;
+		else
+			cpu = ring_idx - q_num;
 	} else {
-		for (i = 0; i < h->q_num; i++) {
-			rd = &priv->ring_data[i];
-			if (cpu_online(rd->queue_index * 2)) {
-				cpumask_clear(mask);
-				cpu = rd->queue_index * 2;
-				cpumask_set_cpu(cpu, mask);
-				(void)irq_set_affinity_hint(rd->ring->irq,
-							    mask);
-			}
-		}
-
-		for (i = h->q_num; i < h->q_num * 2; i++) {
-			rd = &priv->ring_data[i];
-			if (cpu_online(rd->queue_index * 2 + 1)) {
-				cpumask_clear(mask);
-				cpu = rd->queue_index * 2 + 1;
-				cpumask_set_cpu(cpu, mask);
-				(void)irq_set_affinity_hint(rd->ring->irq,
-							    mask);
-			}
-		}
+		if (is_tx_ring(ring))
+			cpu = ring_idx * 2;
+		else
+			cpu = (ring_idx - q_num) * 2 + 1;
 	}
 
-	free_cpumask_var(mask);
+	cpumask_clear(mask);
+	cpumask_set_cpu(cpu, mask);
+
+	return cpu;
 }
 
 static int hns_nic_init_irq(struct hns_nic_priv *priv)
@@ -1252,6 +1229,7 @@ static int hns_nic_init_irq(struct hns_nic_priv *priv)
 	struct hns_nic_ring_data *rd;
 	int i;
 	int ret;
+	int cpu;
 
 	for (i = 0; i < h->q_num * 2; i++) {
 		rd = &priv->ring_data[i];
@@ -1261,7 +1239,7 @@ static int hns_nic_init_irq(struct hns_nic_priv *priv)
 
 		snprintf(rd->ring->ring_name, RCB_RING_NAME_LEN,
 			 "%s-%s%d", priv->netdev->name,
-			 (i < h->q_num ? "tx" : "rx"), rd->queue_index);
+			 (is_tx_ring(rd->ring) ? "tx" : "rx"), rd->queue_index);
 
 		rd->ring->ring_name[RCB_RING_NAME_LEN - 1] = '\0';
 
@@ -1273,12 +1251,17 @@ static int hns_nic_init_irq(struct hns_nic_priv *priv)
 			return ret;
 		}
 		disable_irq(rd->ring->irq);
+
+		cpu = hns_nic_init_affinity_mask(h->q_num, i,
+						 rd->ring, &rd->mask);
+
+		if (cpu_online(cpu))
+			irq_set_affinity_hint(rd->ring->irq,
+					      &rd->mask);
+
 		rd->ring->irq_init_flag = RCB_IRQ_INITED;
 	}
 
-	/*set cpu affinity*/
-	hns_set_irq_affinity(priv);
-
 	return 0;
 }
 
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.h b/drivers/net/ethernet/hisilicon/hns/hns_enet.h
index 5b412de..fff8f8a 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.h
@@ -37,6 +37,7 @@ enum hns_nic_state {
 struct hns_nic_ring_data {
 	struct hnae_ring *ring;
 	struct napi_struct napi;
+	cpumask_t mask; /* affinity mask */
 	int queue_index;
 	int (*poll_one)(struct hns_nic_ring_data *, int, void *);
 	void (*ex_process)(struct hns_nic_ring_data *, struct sk_buff *);
-- 
2.7.4

[toc] | [prev] | [next] | [standalone]


#1613303 — Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements

FromDavid Miller <davem@davemloft.net>
Date2017-03-30 19:10 +0200
SubjectRe: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements
Message-ID<tqLK9-16I-11@gated-at.bofh.it>
In reply to#1613191
From: Salil Mehta <salil.mehta@huawei.com>
Date: Thu, 30 Mar 2017 16:30:47 +0100

> This patch set introduces various HNS bug fixes, optimizations and code
> improvements.

What tree are you targetting?

You say "net" in your Subject lines, but this series has cleanups and all sorts
of other things which are absolutely not appropriate for 'net' and are 'net-next'
material.

[toc] | [prev] | [next] | [standalone]


#1613311 — RE: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements

FromSalil Mehta <salil.mehta@huawei.com>
Date2017-03-30 19:30 +0200
SubjectRE: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements
Message-ID<tqM3v-1dT-3@gated-at.bofh.it>
In reply to#1613303
> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Thursday, March 30, 2017 6:09 PM
> To: Salil Mehta
> Cc: Zhuangyuzeng (Yisen); mehta.salil.lnk@gmail.com;
> netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Linuxarm
> Subject: Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code
> Improvements
> 
> From: Salil Mehta <salil.mehta@huawei.com>
> Date: Thu, 30 Mar 2017 16:30:47 +0100
> 
> > This patch set introduces various HNS bug fixes, optimizations and code
> > improvements.
> 
> What tree are you targetting?
> 
> You say "net" in your Subject lines, but this series has cleanups and all
> sorts
> of other things which are absolutely not appropriate for 'net' and are
> 'net-next'
> material.
Hi David,
Sorry David, These bug fixes are for the next merge window and for net-next.
Should I resend the patches with below change?

>>>>[PATCH net-next 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements  

Best regards
Salil

[toc] | [prev] | [next] | [standalone]


#1613312 — Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements

FromDavid Miller <davem@davemloft.net>
Date2017-03-30 19:30 +0200
SubjectRe: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements
Message-ID<tqM3v-1dT-5@gated-at.bofh.it>
In reply to#1613311
From: Salil Mehta <salil.mehta@huawei.com>
Date: Thu, 30 Mar 2017 17:19:44 +0000

> 
>> -----Original Message-----
>> From: David Miller [mailto:davem@davemloft.net]
>> Sent: Thursday, March 30, 2017 6:09 PM
>> To: Salil Mehta
>> Cc: Zhuangyuzeng (Yisen); mehta.salil.lnk@gmail.com;
>> netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Linuxarm
>> Subject: Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code
>> Improvements
>> 
>> From: Salil Mehta <salil.mehta@huawei.com>
>> Date: Thu, 30 Mar 2017 16:30:47 +0100
>> 
>> > This patch set introduces various HNS bug fixes, optimizations and code
>> > improvements.
>> 
>> What tree are you targetting?
>> 
>> You say "net" in your Subject lines, but this series has cleanups and all
>> sorts
>> of other things which are absolutely not appropriate for 'net' and are
>> 'net-next'
>> material.
> Hi David,
> Sorry David, These bug fixes are for the next merge window and for net-next.
> Should I resend the patches with below change?

It is not necessary to resend, thanks for clarifying.

[toc] | [prev] | [next] | [standalone]


#1613319 — RE: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements

FromSalil Mehta <salil.mehta@huawei.com>
Date2017-03-30 19:30 +0200
SubjectRE: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements
Message-ID<tqM3x-1dT-29@gated-at.bofh.it>
In reply to#1613312

> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Thursday, March 30, 2017 6:22 PM
> To: Salil Mehta
> Cc: Zhuangyuzeng (Yisen); mehta.salil.lnk@gmail.com;
> netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Linuxarm
> Subject: Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code
> Improvements
> 
> From: Salil Mehta <salil.mehta@huawei.com>
> Date: Thu, 30 Mar 2017 17:19:44 +0000
> 
> >
> >> -----Original Message-----
> >> From: David Miller [mailto:davem@davemloft.net]
> >> Sent: Thursday, March 30, 2017 6:09 PM
> >> To: Salil Mehta
> >> Cc: Zhuangyuzeng (Yisen); mehta.salil.lnk@gmail.com;
> >> netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Linuxarm
> >> Subject: Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code
> >> Improvements
> >>
> >> From: Salil Mehta <salil.mehta@huawei.com>
> >> Date: Thu, 30 Mar 2017 16:30:47 +0100
> >>
> >> > This patch set introduces various HNS bug fixes, optimizations and
> code
> >> > improvements.
> >>
> >> What tree are you targetting?
> >>
> >> You say "net" in your Subject lines, but this series has cleanups
> and all
> >> sorts
> >> of other things which are absolutely not appropriate for 'net' and
> are
> >> 'net-next'
> >> material.
> > Hi David,
> > Sorry David, These bug fixes are for the next merge window and for
> net-next.
> > Should I resend the patches with below change?
> 
> It is not necessary to resend, thanks for clarifying.
Sure thanks.

[toc] | [prev] | [next] | [standalone]


#1613586 — Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements

FromDavid Miller <davem@davemloft.net>
Date2017-03-31 05:10 +0200
SubjectRe: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements
Message-ID<tqV6N-7m5-1@gated-at.bofh.it>
In reply to#1613191
From: Salil Mehta <salil.mehta@huawei.com>
Date: Thu, 30 Mar 2017 16:30:47 +0100

> This patch set introduces various HNS bug fixes, optimizations and code
> improvements.

There is no way you should do such an expensive calculation for every
single transmit packet as you are doing in your select_queue() routine.

That's really crazy.

Just use the networking stack's queue selection scheme, or suggest
ways to improve it.  Don't do private hashing like this in your
driver, please!

[toc] | [prev] | [next] | [standalone]


#1613819 — RE: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements

FromSalil Mehta <salil.mehta@huawei.com>
Date2017-03-31 12:00 +0200
SubjectRE: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code Improvements
Message-ID<tr1vA-2UA-5@gated-at.bofh.it>
In reply to#1613586

> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Friday, March 31, 2017 4:03 AM
> To: Salil Mehta
> Cc: Zhuangyuzeng (Yisen); mehta.salil.lnk@gmail.com;
> netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Linuxarm
> Subject: Re: [PATCH net 00/19] net: hns: Misc. HNS Bug Fixes & Code
> Improvements
> 
> From: Salil Mehta <salil.mehta@huawei.com>
> Date: Thu, 30 Mar 2017 16:30:47 +0100
> 
> > This patch set introduces various HNS bug fixes, optimizations and
> code
> > improvements.
> 
> There is no way you should do such an expensive calculation for every
> single transmit packet as you are doing in your select_queue() routine.
> 
> That's really crazy.
> 
> Just use the networking stack's queue selection scheme, or suggest
> ways to improve it.  Don't do private hashing like this in your
> driver, please!
Hi David,
I got your point. I will drop this patch from this patch-set for now.

Thanks
Salil 

[toc] | [prev] | [standalone]


Page 2 of 2 — ← Prev page 1 [2]

Back to top | Article view | linux.kernel


csiph-web