Ubuntu 16.10: Network checksum fixes needed for IPoIB for Mellanox CX4/CX5 card

Bug #1670247 reported by bugproxy on 2017-03-06
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
Tim Gardner
Yakkety
Undecided
Tim Gardner
Zesty
Undecided
Tim Gardner

Bug Description

== Comment: #0 - Carol L. Soto <email address hidden> - 2017-03-03 22:23:11 ==
---Problem Description---
Mellanox CX4/CX5 IB if running IPoIB in connected mode, it does not have the hw checksum so when running IPoIB in power system the performance is low.
with iperf and 4 threads we get
[ 8] local 44.44.44.44 port 5001 connected with 44.44.44.45 port 48536
[ 4] local 44.44.44.44 port 5001 connected with 44.44.44.45 port 48538
[ 5] local 44.44.44.44 port 5001 connected with 44.44.44.45 port 48540
[ 6] local 44.44.44.44 port 5001 connected with 44.44.44.45 port 48542
[ 8] 0.0-10.0 sec 9.07 GBytes 7.79 Gbits/sec
[ 4] 0.0-10.0 sec 9.16 GBytes 7.87 Gbits/sec
[ 5] 0.0-10.0 sec 9.13 GBytes 7.84 Gbits/sec
[ 6] 0.0-10.0 sec 9.18 GBytes 7.88 Gbits/sec
[SUM] 0.0-10.0 sec 36.5 GBytes 31.4 Gbits/sec

if we add the following patches:
From 68201fbbb04a030864f8560b05d43d8019f7f8df Mon Sep 17 00:00:00 2001
From: Michael Ellerman <email address hidden>
Date: Thu, 11 Aug 2016 16:03:14 +1000
Subject: powerpc/Makefile: Drop CONFIG_WORD_SIZE for BITS

From b492f7e4e07a28e706db26cf4943bb0911435426 Mon Sep 17 00:00:00 2001
From: Paul Mackerras <email address hidden>
Date: Thu, 3 Nov 2016 16:10:55 +1100
Subject: powerpc/64: Fix checksum folding in csum_tcpudp_nofold and
 ip_fast_csum_nofold

From d4fde568a34a93897dfb9ae64cfe9dda9d5c908c Mon Sep 17 00:00:00 2001
From: Paul Mackerras <email address hidden>
Date: Thu, 3 Nov 2016 16:15:42 +1100
Subject: powerpc/64: Use optimized checksum routines on little-endian

then I can get with iperf
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 23.0 GBytes 19.7 Gbits/sec
[ 6] 0.0-10.0 sec 22.9 GBytes 19.7 Gbits/sec
[ 5] 0.0-10.0 sec 22.9 GBytes 19.7 Gbits/sec
[ 7] 0.0-10.0 sec 22.9 GBytes 19.6 Gbits/sec
[SUM] 0.0-10.0 sec 91.7 GBytes 78.7 Gbits/sec

Contact Information = Carol <email address hidden>

---uname output---
4.8.0-34-generic #36-Ubuntu SMP Wed Dec 21 17:22:53 UTC 2016 ppc64le ppc64le ppc64le GNU/Linux

---Additional Hardware Info---
Need a power system and Mellanox CX4 IB card.

Machine Type = P8

---Steps to Reproduce---
 just run iperf with IPoIB in connected mode and will see aroung 30Gbits/sec. If we add the patches then we can get more than 70Gbits/sec.

CVE References

bugproxy (bugproxy) on 2017-03-06
tags: added: architecture-ppc64le bugnameltc-152252 severity-high targetmilestone-inin---
Changed in ubuntu:
assignee: nobody → Taco Screen team (taco-screen-team)
affects: ubuntu → linux (Ubuntu)
Tim Gardner (timg-tpi) wrote :
Changed in linux (Ubuntu Yakkety):
assignee: nobody → Tim Gardner (timg-tpi)
status: New → In Progress
Changed in linux (Ubuntu Zesty):
assignee: Taco Screen team (taco-screen-team) → Tim Gardner (timg-tpi)
status: New → Fix Released

------- Comment From <email address hidden> 2017-03-10 11:53 EDT-------
Hi
I just noticed this other commit that is a fix to one of the commits. Can we add it too?

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/arch/powerpc/include/asm/checksum.h?id=6ad966d7303b70165228dba1ee8da1a05c10eefe
From 6ad966d7303b70165228dba1ee8da1a05c10eefe Mon Sep 17 00:00:00 2001
From: Shile Zhang <email address hidden>
Date: Sat, 4 Feb 2017 17:03:40 +0800
Subject: powerpc/64: Fix checksum folding in csum_add()

Thanks.

Tim Gardner (timg-tpi) wrote :

Patch applied to Zesty and submitted to the k-team list for Yakkety

bugproxy (bugproxy) on 2017-03-21
tags: added: targetmilestone-inin1704
removed: targetmilestone-inin---
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2017-03-28 15:35 EDT-------
Hi Canonical
Which kernel will have these patches in zesty? thanks.

Tim Gardner (timg-tpi) wrote :

Oops, looks like ('powerpc/64: Fix checksum folding in csum_tcpudp_nofold and
 ip_fast_csum_nofold') and ('powerpc/64: Use optimized checksum routines on little-endian') went missing. They've been applied and will appear in 4.10.0-16.18

Changed in linux (Ubuntu Yakkety):
status: In Progress → Fix Committed

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-yakkety' to 'verification-done-yakkety'. If the problem still exists, change the tag 'verification-needed-yakkety' to 'verification-failed-yakkety'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-yakkety
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2017-04-17 14:33 EDT-------
(In reply to comment #14)
> This bug is awaiting verification that the kernel in -proposed solves the
> problem. Please test the kernel and update this bug with the results. If the
> problem is solved, change the tag 'verification-needed-yakkety' to
> 'verification-done-yakkety'. If the problem still exists, change the tag
> 'verification-needed-yakkety' to 'verification-failed-yakkety'.
>
> If verification is not done by 5 working days from today, this fix will be
> dropped from the source code, and this bug will be closed.
>
> See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to
> enable and use -proposed. Thank you!

Hi Canonical
Which yakkety kernel is the one with the fix?
from looking at git it maybe in 4.8.0-47.50 but when I check the proposed kernel I only see until 4.8.0-46-generic.
Can you confirm? thanks.

Po-Hsu Lin (cypressyew) wrote :

Hello,

The yakkety kernel in our proposed pocket should be 4.8.0-48.51

Thank you.

bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2017-04-20 17:46 EDT-------
(In reply to comment #16)
> Hello,
>
> The yakkety kernel in our proposed pocket should be 4.8.0-48.51
>
> Thank you.

Hi canonical
This made it to yaketty to 4.8.0-48-generic. I can see the better numbers.
Does latest zesty kernel has the patches?
Thanks.

tags: added: verification-done-yakkety
removed: verification-needed-yakkety
Launchpad Janitor (janitor) wrote :
Download full text (14.5 KiB)

This bug was fixed in the package linux - 4.8.0-49.52

---------------
linux (4.8.0-49.52) yakkety; urgency=low

  * linux: 4.8.0-49.52 -proposed tracker (LP: #1684427)

  * [Hyper-V] hv: util: move waiting for release to hv_utils_transport itself
    (LP: #1682561)
    - Drivers: hv: util: move waiting for release to hv_utils_transport itself

linux (4.8.0-48.51) yakkety; urgency=low

  * linux: 4.8.0-48.51 -proposed tracker (LP: #1682034)

  * [Hyper-V] hv: vmbus: Raise retry/wait limits in vmbus_post_msg()
    (LP: #1681893)
    - Drivers: hv: vmbus: Raise retry/wait limits in vmbus_post_msg()

linux (4.8.0-47.50) yakkety; urgency=low

  * linux: 4.8.0-47.50 -proposed tracker (LP: #1679678)

  * CVE-2017-6353
    - sctp: deny peeloff operation on asocs with threads sleeping on it

  * CVE-2017-5986
    - sctp: avoid BUG_ON on sctp_wait_for_sndbuf

  * vfat: missing iso8859-1 charset (LP: #1677230)
    - [Config] NLS_ISO8859_1=y

  * [Hyper-V] pci-hyperv: Use device serial number as PCI domain (LP: #1667527)
    - net/mlx4_core: Use cq quota in SRIOV when creating completion EQs

  * Regression: KVM modules should be on main kernel package (LP: #1678099)
    - [Config] powerpc: Add kvm-hv and kvm-pr to the generic inclusion list

  * linux-lts-xenial 4.4.0-63.84~14.04.2 ADT test failure with linux-lts-xenial
    4.4.0-63.84~14.04.2 (LP: #1664912)
    - SAUCE: apparmor: fix link auditing failure due to, uninitialized var

  * regession tests failing after stackprofile test is run (LP: #1661030)
    - SAUCE: fix regression with domain change in complain mode

  * Permission denied and inconsistent behavior in complain mode with 'ip netns
    list' command (LP: #1648903)
    - SAUCE: fix regression with domain change in complain mode

  * unexpected errno=13 and disconnected path when trying to open /proc/1/ns/mnt
    from a unshared mount namespace (LP: #1656121)
    - SAUCE: apparmor: null profiles should inherit parent control flags

  * apparmor refcount leak of profile namespace when removing profiles
    (LP: #1660849)
    - SAUCE: apparmor: fix ns ref count link when removing profiles from policy

  * tor in lxd: apparmor="DENIED" operation="change_onexec"
    namespace="root//CONTAINERNAME_<var-lib-lxd>" profile="unconfined"
    name="system_tor" (LP: #1648143)
    - SAUCE: apparmor: Fix no_new_privs blocking change_onexec when using stacked
      namespaces

  * apparmor oops in bind_mnt when dev_path lookup fails (LP: #1660840)
    - SAUCE: apparmor: fix oops in bind_mnt when dev_path lookup fails

  * apparmor auditing denied access of special apparmor .null fi\ le
    (LP: #1660836)
    - SAUCE: apparmor: Don't audit denied access of special apparmor .null file

  * apparmor label leak when new label is unused (LP: #1660834)
    - SAUCE: apparmor: fix label leak when new label is unused

  * apparmor reference count bug in label_merge_insert() (LP: #1660833)
    - SAUCE: apparmor: fix reference count bug in label_merge_insert()

  * apparmor's raw_data file in securityfs is sometimes truncated (LP: #1638996)
    - SAUCE: apparmor: fix replacement race in reading rawdata

  * unix domain socket cross permission check failing with n...

Changed in linux (Ubuntu Yakkety):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers