mbox series

[00/12,B,C] Update Hi1822 driver to mainline ver

Message ID 20190318082733.26665-1-ike.pan@canonical.com
Headers show
Series Update Hi1822 driver to mainline ver | expand

Message

Ike Panhc March 18, 2019, 8:27 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1820187

Current driver for Huawei NIC has poor performance. When connect to
10G switch it has only 1-2Gb/s throughput and not stable. 

Cherry-pick patches from mainline can solve this issue to have
stable and satisfied performance

$ iperf -c 10.228.68.102 -P2 -t 180 # kernel with this patchset
------------------------------------------------------------
Client connecting to 10.228.68.102, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 10.228.68.135 port 57200 connected with 10.228.68.102 port 5001
[  4] local 10.228.68.135 port 57198 connected with 10.228.68.102 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-180.0 sec  84.4 GBytes  4.03 Gbits/sec
[  4]  0.0-180.0 sec  84.1 GBytes  4.01 Gbits/sec
[SUM]  0.0-180.0 sec   168 GBytes  8.04 Gbits/sec


Colin Ian King (1):
  net: hinic: fix null pointer dereference on pointer hwdev

Eric Dumazet (1):
  hinic: remove ndo_poll_controller

Nathan Chancellor (1):
  hinic: Fix l4_type parameter in hinic_task_set_tunnel_l4

Xue Chaojing (7):
  net-next/hinic:replace multiply and division operators
  net-next/hinic:add rx checksum offload for HiNIC
  net-next/hinic:fix a bug in set mac address
  net-next/hinic: fix a bug in rx data flow
  hinic: optmize rx refill buffer mechanism
  net-next/hinic:add shutdown callback
  net-next/hinic: replace disable_irq_nosync/enable_irq

Zhao Chen (2):
  net-next: hinic: fix a problem in free_tx_poll()
  net-next/hinic: add checksum offload and TSO support

 .../net/ethernet/huawei/hinic/hinic_hw_dev.c  |  13 +
 .../net/ethernet/huawei/hinic/hinic_hw_dev.h  |   7 +
 .../net/ethernet/huawei/hinic/hinic_hw_if.c   |  28 ++
 .../net/ethernet/huawei/hinic/hinic_hw_if.h   |  14 +
 .../net/ethernet/huawei/hinic/hinic_hw_qp.c   | 157 +++++++--
 .../net/ethernet/huawei/hinic/hinic_hw_qp.h   |  33 +-
 .../net/ethernet/huawei/hinic/hinic_hw_wq.c   |  69 ++--
 .../net/ethernet/huawei/hinic/hinic_hw_wq.h   |   5 +-
 .../net/ethernet/huawei/hinic/hinic_hw_wqe.h  | 101 ++++--
 .../net/ethernet/huawei/hinic/hinic_main.c    |  61 ++--
 .../net/ethernet/huawei/hinic/hinic_port.c    |  62 ++++
 .../net/ethernet/huawei/hinic/hinic_port.h    |  28 ++
 drivers/net/ethernet/huawei/hinic/hinic_rx.c  |  58 ++--
 drivers/net/ethernet/huawei/hinic/hinic_rx.h  |   6 +-
 drivers/net/ethernet/huawei/hinic/hinic_tx.c  | 321 +++++++++++++++++-
 15 files changed, 825 insertions(+), 138 deletions(-)

Comments

Stefan Bader March 27, 2019, 5:20 p.m. UTC | #1
On 18.03.19 09:27, Ike Panhc wrote:
> BugLink: https://bugs.launchpad.net/bugs/1820187
> 
> Current driver for Huawei NIC has poor performance. When connect to
> 10G switch it has only 1-2Gb/s throughput and not stable. 
> 
> Cherry-pick patches from mainline can solve this issue to have
> stable and satisfied performance
> 
> $ iperf -c 10.228.68.102 -P2 -t 180 # kernel with this patchset
> ------------------------------------------------------------
> Client connecting to 10.228.68.102, TCP port 5001
> TCP window size: 85.0 KByte (default)
> ------------------------------------------------------------
> [  3] local 10.228.68.135 port 57200 connected with 10.228.68.102 port 5001
> [  4] local 10.228.68.135 port 57198 connected with 10.228.68.102 port 5001
> [ ID] Interval       Transfer     Bandwidth
> [  3]  0.0-180.0 sec  84.4 GBytes  4.03 Gbits/sec
> [  4]  0.0-180.0 sec  84.1 GBytes  4.01 Gbits/sec
> [SUM]  0.0-180.0 sec   168 GBytes  8.04 Gbits/sec
> 
> 
> Colin Ian King (1):
>   net: hinic: fix null pointer dereference on pointer hwdev
> 
> Eric Dumazet (1):
>   hinic: remove ndo_poll_controller
> 
> Nathan Chancellor (1):
>   hinic: Fix l4_type parameter in hinic_task_set_tunnel_l4
> 
> Xue Chaojing (7):
>   net-next/hinic:replace multiply and division operators
>   net-next/hinic:add rx checksum offload for HiNIC
>   net-next/hinic:fix a bug in set mac address
>   net-next/hinic: fix a bug in rx data flow
>   hinic: optmize rx refill buffer mechanism
>   net-next/hinic:add shutdown callback
>   net-next/hinic: replace disable_irq_nosync/enable_irq
> 
> Zhao Chen (2):
>   net-next: hinic: fix a problem in free_tx_poll()
>   net-next/hinic: add checksum offload and TSO support
> 
>  .../net/ethernet/huawei/hinic/hinic_hw_dev.c  |  13 +
>  .../net/ethernet/huawei/hinic/hinic_hw_dev.h  |   7 +
>  .../net/ethernet/huawei/hinic/hinic_hw_if.c   |  28 ++
>  .../net/ethernet/huawei/hinic/hinic_hw_if.h   |  14 +
>  .../net/ethernet/huawei/hinic/hinic_hw_qp.c   | 157 +++++++--
>  .../net/ethernet/huawei/hinic/hinic_hw_qp.h   |  33 +-
>  .../net/ethernet/huawei/hinic/hinic_hw_wq.c   |  69 ++--
>  .../net/ethernet/huawei/hinic/hinic_hw_wq.h   |   5 +-
>  .../net/ethernet/huawei/hinic/hinic_hw_wqe.h  | 101 ++++--
>  .../net/ethernet/huawei/hinic/hinic_main.c    |  61 ++--
>  .../net/ethernet/huawei/hinic/hinic_port.c    |  62 ++++
>  .../net/ethernet/huawei/hinic/hinic_port.h    |  28 ++
>  drivers/net/ethernet/huawei/hinic/hinic_rx.c  |  58 ++--
>  drivers/net/ethernet/huawei/hinic/hinic_rx.h  |   6 +-
>  drivers/net/ethernet/huawei/hinic/hinic_tx.c  | 321 +++++++++++++++++-
>  15 files changed, 825 insertions(+), 138 deletions(-)
> 
Wholesale backports into a released LTS kernel will always earn you grumpy
points. Stable updates should be specific to fix a problem.

That said, since it is limited to that one specific driver which you certainly
have tested very well (right?), and we have been accepting similar things in the
past (though I wished we had not),

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Kleber Sacilotto de Souza March 29, 2019, 11:29 a.m. UTC | #2
On 3/18/19 9:27 AM, Ike Panhc wrote:
> BugLink: https://bugs.launchpad.net/bugs/1820187
> 
> Current driver for Huawei NIC has poor performance. When connect to
> 10G switch it has only 1-2Gb/s throughput and not stable. 
> 
> Cherry-pick patches from mainline can solve this issue to have
> stable and satisfied performance
> 
> $ iperf -c 10.228.68.102 -P2 -t 180 # kernel with this patchset
> ------------------------------------------------------------
> Client connecting to 10.228.68.102, TCP port 5001
> TCP window size: 85.0 KByte (default)
> ------------------------------------------------------------
> [  3] local 10.228.68.135 port 57200 connected with 10.228.68.102 port 5001
> [  4] local 10.228.68.135 port 57198 connected with 10.228.68.102 port 5001
> [ ID] Interval       Transfer     Bandwidth
> [  3]  0.0-180.0 sec  84.4 GBytes  4.03 Gbits/sec
> [  4]  0.0-180.0 sec  84.1 GBytes  4.01 Gbits/sec
> [SUM]  0.0-180.0 sec   168 GBytes  8.04 Gbits/sec
> 
> 
> Colin Ian King (1):
>   net: hinic: fix null pointer dereference on pointer hwdev
> 
> Eric Dumazet (1):
>   hinic: remove ndo_poll_controller
> 
> Nathan Chancellor (1):
>   hinic: Fix l4_type parameter in hinic_task_set_tunnel_l4
> 
> Xue Chaojing (7):
>   net-next/hinic:replace multiply and division operators
>   net-next/hinic:add rx checksum offload for HiNIC
>   net-next/hinic:fix a bug in set mac address
>   net-next/hinic: fix a bug in rx data flow
>   hinic: optmize rx refill buffer mechanism
>   net-next/hinic:add shutdown callback
>   net-next/hinic: replace disable_irq_nosync/enable_irq
> 
> Zhao Chen (2):
>   net-next: hinic: fix a problem in free_tx_poll()
>   net-next/hinic: add checksum offload and TSO support
> 
>  .../net/ethernet/huawei/hinic/hinic_hw_dev.c  |  13 +
>  .../net/ethernet/huawei/hinic/hinic_hw_dev.h  |   7 +
>  .../net/ethernet/huawei/hinic/hinic_hw_if.c   |  28 ++
>  .../net/ethernet/huawei/hinic/hinic_hw_if.h   |  14 +
>  .../net/ethernet/huawei/hinic/hinic_hw_qp.c   | 157 +++++++--
>  .../net/ethernet/huawei/hinic/hinic_hw_qp.h   |  33 +-
>  .../net/ethernet/huawei/hinic/hinic_hw_wq.c   |  69 ++--
>  .../net/ethernet/huawei/hinic/hinic_hw_wq.h   |   5 +-
>  .../net/ethernet/huawei/hinic/hinic_hw_wqe.h  | 101 ++++--
>  .../net/ethernet/huawei/hinic/hinic_main.c    |  61 ++--
>  .../net/ethernet/huawei/hinic/hinic_port.c    |  62 ++++
>  .../net/ethernet/huawei/hinic/hinic_port.h    |  28 ++
>  drivers/net/ethernet/huawei/hinic/hinic_rx.c  |  58 ++--
>  drivers/net/ethernet/huawei/hinic/hinic_rx.h  |   6 +-
>  drivers/net/ethernet/huawei/hinic/hinic_tx.c  | 321 +++++++++++++++++-
>  15 files changed, 825 insertions(+), 138 deletions(-)
> 

Limited to hinic driver.

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Khalid Elmously March 31, 2019, 11:12 p.m. UTC | #3
On 2019-03-18 16:27:33 , Ike Panhc wrote:
> BugLink: https://bugs.launchpad.net/bugs/1820187
> 
> Current driver for Huawei NIC has poor performance. When connect to
> 10G switch it has only 1-2Gb/s throughput and not stable. 
> 
> Cherry-pick patches from mainline can solve this issue to have
> stable and satisfied performance
> 
> $ iperf -c 10.228.68.102 -P2 -t 180 # kernel with this patchset
> ------------------------------------------------------------
> Client connecting to 10.228.68.102, TCP port 5001
> TCP window size: 85.0 KByte (default)
> ------------------------------------------------------------
> [  3] local 10.228.68.135 port 57200 connected with 10.228.68.102 port 5001
> [  4] local 10.228.68.135 port 57198 connected with 10.228.68.102 port 5001
> [ ID] Interval       Transfer     Bandwidth
> [  3]  0.0-180.0 sec  84.4 GBytes  4.03 Gbits/sec
> [  4]  0.0-180.0 sec  84.1 GBytes  4.01 Gbits/sec
> [SUM]  0.0-180.0 sec   168 GBytes  8.04 Gbits/sec
> 
> 
> Colin Ian King (1):
>   net: hinic: fix null pointer dereference on pointer hwdev
> 
> Eric Dumazet (1):
>   hinic: remove ndo_poll_controller
> 
> Nathan Chancellor (1):
>   hinic: Fix l4_type parameter in hinic_task_set_tunnel_l4
> 
> Xue Chaojing (7):
>   net-next/hinic:replace multiply and division operators
>   net-next/hinic:add rx checksum offload for HiNIC
>   net-next/hinic:fix a bug in set mac address
>   net-next/hinic: fix a bug in rx data flow
>   hinic: optmize rx refill buffer mechanism
>   net-next/hinic:add shutdown callback
>   net-next/hinic: replace disable_irq_nosync/enable_irq
> 
> Zhao Chen (2):
>   net-next: hinic: fix a problem in free_tx_poll()
>   net-next/hinic: add checksum offload and TSO support
> 
>  .../net/ethernet/huawei/hinic/hinic_hw_dev.c  |  13 +
>  .../net/ethernet/huawei/hinic/hinic_hw_dev.h  |   7 +
>  .../net/ethernet/huawei/hinic/hinic_hw_if.c   |  28 ++
>  .../net/ethernet/huawei/hinic/hinic_hw_if.h   |  14 +
>  .../net/ethernet/huawei/hinic/hinic_hw_qp.c   | 157 +++++++--
>  .../net/ethernet/huawei/hinic/hinic_hw_qp.h   |  33 +-
>  .../net/ethernet/huawei/hinic/hinic_hw_wq.c   |  69 ++--
>  .../net/ethernet/huawei/hinic/hinic_hw_wq.h   |   5 +-
>  .../net/ethernet/huawei/hinic/hinic_hw_wqe.h  | 101 ++++--
>  .../net/ethernet/huawei/hinic/hinic_main.c    |  61 ++--
>  .../net/ethernet/huawei/hinic/hinic_port.c    |  62 ++++
>  .../net/ethernet/huawei/hinic/hinic_port.h    |  28 ++
>  drivers/net/ethernet/huawei/hinic/hinic_rx.c  |  58 ++--
>  drivers/net/ethernet/huawei/hinic/hinic_rx.h  |   6 +-
>  drivers/net/ethernet/huawei/hinic/hinic_tx.c  | 321 +++++++++++++++++-
>  15 files changed, 825 insertions(+), 138 deletions(-)
> 
> -- 
> 2.17.1
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team