RPT related fixes missing in Ubuntu 16.04.3

Bug #1709220 reported by bugproxy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
The Ubuntu-power-systems project
High
Canonical Kernel Team
linux (Ubuntu)
High
Joseph Salisbury
Zesty
High
Joseph Salisbury

Bug Description

== SRU Justification ==
These four commits are Radix performance patches specific to powerpc.

The patches are reported to help anywhere from 40% up to 3.5X on unixbench fork/exec testcases.

The first patch was included in mainlne as of 4.12-rc1. The last three patches are
still in linux-next.

---Problem Description---

The following patches are missing in the ubuntu 16.04.3 kernel

https://lists.ozlabs.org/pipermail/linuxppc-dev/2017-April/156104.html

https://lists.ozlabs.org/pipermail/linuxppc-dev/2017-April/156105.html

https://lists.ozlabs.org/pipermail/linuxppc-dev/2017-April/157130.html

---uname output---

4.10.0-29-generic #33~16.04.1-Ubuntu SMP Tue Jul 25 18:17:06 UTC 2017 ppc64le ppc64le ppc64le GNU/Linux

Machine Type = power9

---Steps to Reproduce---

Did a fork and exec benchmark to look at the performance and they pointed to radix routines.

Upstream commits mentioned:

commit f7327e0ba3805470cced2acfa053e795362ee41d

powerpc/mm/radix: Remove unnecessary ptesync

commit f6b0df55cad252fedd60aa2ba75a0207d0006283

powerpc/mm/radix: Don't do page walk cache flush when doing full mm flush

commit a5998fcb92552a18713b6aa5c146aa400e4d75ee

powerpc/mm/radix: Optimise tlbiel flush all case

CVE References

bugproxy (bugproxy)
tags: added: architecture-ppc64le bugnameltc-157357 severity-high targetmilestone-inin16043
Changed in ubuntu:
assignee: nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage)
affects: ubuntu → linux (Ubuntu)
Frank Heimes (fheimes)
Changed in ubuntu-power-systems:
assignee: nobody → Canonical Kernel Team (canonical-kernel-team)
importance: Undecided → High
Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2017-08-08 11:39 EDT-------
(In reply to comment #4)
Looking at the "Ubuntu-hwe-4.10.0-30.34_16.04.1" branch, it appears the first two are included:

> commit f7327e0ba3805470cced2acfa053e795362ee41d
> powerpc/mm/radix: Remove unnecessary ptesync
commit 2da0c6d3eb566166126b7a4180ac2a10729ae034
Author: Aneesh Kumar K.V <email address hidden>
Date: Mon Apr 10 10:23:46 2017 -0300

UBUNTU: SAUCE: powerpc/mm/radix: Remove unnecessary ptesync
BugLink: https://bugs.launchpad.net/bugs/1681429

>
> commit f6b0df55cad252fedd60aa2ba75a0207d0006283
> powerpc/mm/radix: Don't do page walk cache flush when doing full mm flush
>
commit ea856a8baccee7dd3fd9fd37a37cd688d534a0b6
Author: Aneesh Kumar K.V <email address hidden>
Date: Mon Apr 10 10:23:45 2017 -0300

UBUNTU: SAUCE: powerpc/mm/radix: Don't do page walk cache flush when doing full mm flush
BugLink: https://bugs.launchpad.net/bugs/1681429

** But this one is missing:

> commit a5998fcb92552a18713b6aa5c146aa400e4d75ee
> powerpc/mm/radix: Optimise tlbiel flush all case

Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2017-08-08 15:30 EDT-------
So, this bug is basically a request to include a5998fcb92552a18713b6aa5c146aa400e4d75ee into Ubuntu Zesty (4.10) kernel, correct?

------- Comment From <email address hidden> 2017-08-08 15:36 EDT-------
(In reply to comment #6)
> So, this bug is basically a request to include
> a5998fcb92552a18713b6aa5c146aa400e4d75ee into Ubuntu Zesty (4.10) kernel,
> correct?

Yep! would like this fix for the 16.04.3 hwe 4.10 kernel

Frank Heimes (fheimes)
summary: - RPT related fixes missing in ubintu 16.04.3
+ RPT related fixes missing in Ubuntu 16.04.3
Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2017-08-10 10:41 EDT-------
Aneesh has additional Radix performance fixes (3 more total):

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=424de9c6e3f89399fc11afc1f53f89c5329132da
("powerpc/mm/radix: Avoid flushing the PWC on every flush_tlb_range")
.
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a46cc7a90fd8d95bfbb2b27080efe872a1a51db4
("powerpc/mm/radix: Improve TLB/PWC flushes")
.
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5ce5fe14ed0302315061cf97ce67accd1b25b938
("powerpc/mm/radix: Improve _tlbiel_pid to be usable for PWC flushes")

(upstream, currently scheduled for 4.14)

Can these be included in Zesty as well?

FYI the first set of 3 patches mentioned in the orig bug report helps anywhere from 40% up to 3.5X on unixbench fork/exec testcases. I will post updated numbers for this second set of 3 fixes soon.

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

The first two commits listed in the bug description are indeed already in Zesty via bug 1681429.

I built a test kernel with the third of the requested patches in the description(Commit a5998fcb92). This test kernel also has the three additional patches requested in comment #3.

The first and third patches mentioned comment #3(5ce5fe14ed and 424de9c6e3) picked cleanly from linux-next. However, commit a46cc7a90f needed a minor backport.

The test kernel can be downloaded from:
http://kernel.ubuntu.com/~jsalisbury/lp1709220/

Can you test this kernel and see if it resolves this bug?

Thanks in advance!

Changed in linux (Ubuntu):
status: New → In Progress
Changed in linux (Ubuntu Zesty):
status: New → In Progress
Changed in linux (Ubuntu):
importance: Undecided → High
Changed in linux (Ubuntu Zesty):
importance: Undecided → High
assignee: nobody → Joseph Salisbury (jsalisbury)
Changed in linux (Ubuntu):
assignee: Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) → Joseph Salisbury (jsalisbury)
Frank Heimes (fheimes)
Changed in ubuntu-power-systems:
status: New → In Progress
Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2017-08-15 12:06 EDT-------
Thanks! Seeing good improvements with this build based on some unixbench microbenchmarks:

baseline = 4.10.0-32-generic
RPT fixes = 4.10.0-32.36~lp1709220

Unixbench baseline RPT fixes improvement
SMToff SMT4 SMToff SMT4 SMToff SMT4
Execl ? single 656.2 963.0 1583.0 1507.1 141.2% 56.5%
Execl ? multi 2522.9 6527.3 4720.2 11766.7 87.1% 80.3%
Sysexec ? single 487.2 715.5 787.0 1082.2 61.5% 51.3%
Sysexec ? multi 1783.0 4845.2 2738.6 8029.3 53.6% 65.7%
Spawn ? single 1645.0 2546.8 2632.9 3168.8 60.1% 24.4%
Spawn ? multi 5877.5 17688.8 8459.9 23650.1 43.9% 33.7%

Note this was on a 4core DD1 system running at 1.6GHz.

Jenifer Hopper (jhopper)
description: updated
tags: added: verification-done-zesty
description: updated
Changed in linux (Ubuntu Zesty):
status: In Progress → Fix Committed
tags: removed: verification-done-zesty
Revision history for this message
Kleber Sacilotto de Souza (kleber-souza) wrote :

The fixes were applied to zesty/master-next branch and will be available on the next kernel SRU cycle.

I removed the verification-done-zesty tag because it must be added only after the fixes have been tested with a kernel that's at least in -proposed. So the verification will need to be done again when the next SRU kernel hits -proposed (a comment will be added when that happens).

Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2017-08-24 12:41 EDT-------
(In reply to comment #15)
> The fixes were applied to zesty/master-next branch and will be available on
> the next kernel SRU cycle.
>
> I removed the verification-done-zesty tag because it must be added only
> after the fixes have been tested with a kernel that's at least in -proposed.
> So the verification will need to be done again when the next SRU kernel hits
> -proposed (a comment will be added when that happens).

Oops sorry, got too excited about verification ;) Thanks for the info.

Manoj Iyer (manjo)
tags: added: triage-g
Revision history for this message
Kleber Sacilotto de Souza (kleber-souza) wrote :

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-zesty' to 'verification-done-zesty'. If the problem still exists, change the tag 'verification-needed-zesty' to 'verification-failed-zesty'.

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-zesty
Revision history for this message
Kleber Sacilotto de Souza (kleber-souza) wrote :

Hello IBM,

Could you please verify the fix with the lasted Zesty kernel in -proposed?

Thank you!

Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2017-09-07 16:14 EDT-------
Hi, I was able to verify that these fixes in the -proposed kernel provide the expected performance improvements, thanks!

This time I re-baselined on a P9 with 32 DD2 cores, so overall compare is a bit different than previous comments but still seeing significant performance gains as expected. Here are the improvements of the proposed kernel (4.10.0-34-generic -- #38~16.04.1-Ubuntu) compared to the baseline kernel (4.10.0-33-generic #37~16.04.1-Ubuntu):

improvement
SMToff SMT4
Execl ? single 136.6% 153.0%
Execl ? multi -6.2% 8.8%
Sysexec ? single 110.1% 91.1%
Sysexec ? multi 2.8% 5.6%
Spawn ? single 43.9% 46.1%
Spawn ? multi 8.3% 14.2%

tags: added: verification-done-zesty
removed: verification-needed-zesty
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (12.1 KiB)

This bug was fixed in the package linux - 4.12.0-13.14

---------------
linux (4.12.0-13.14) artful; urgency=low

  * linux: 4.12.0-13.14 -proposed tracker (LP: #1714687)

  * vhost guest network randomly drops under stress (kvm) (LP: #1711251)
    - Revert "vhost: cache used event for better performance"

  * EDAC sbridge: Failed to register device with error -22. (LP: #1714112)
    - [Config] CONFIG_EDAC_GHES=n

  * Artful update to v4.12.10 stable release (LP: #1714525)
    - sparc64: remove unnecessary log message
    - bonding: require speed/duplex only for 802.3ad, alb and tlb
    - bonding: ratelimit failed speed/duplex update warning
    - af_key: do not use GFP_KERNEL in atomic contexts
    - dccp: purge write queue in dccp_destroy_sock()
    - dccp: defer ccid_hc_tx_delete() at dismantle time
    - ipv4: fix NULL dereference in free_fib_info_rcu()
    - net_sched/sfq: update hierarchical backlog when drop packet
    - net_sched: remove warning from qdisc_hash_add
    - bpf: fix bpf_trace_printk on 32 bit archs
    - net: igmp: Use ingress interface rather than vrf device
    - openvswitch: fix skb_panic due to the incorrect actions attrlen
    - ptr_ring: use kmalloc_array()
    - ipv4: better IP_MAX_MTU enforcement
    - nfp: fix infinite loop on umapping cleanup
    - tun: handle register_netdevice() failures properly
    - sctp: fully initialize the IPv6 address in sctp_v6_to_addr()
    - tipc: fix use-after-free
    - ipv6: reset fn->rr_ptr when replacing route
    - ipv6: repair fib6 tree in failure case
    - tcp: when rearming RTO, if RTO time is in past then fire RTO ASAP
    - net/mlx4_core: Enable 4K UAR if SRIOV module parameter is not enabled
    - irda: do not leak initialized list.dev to userspace
    - net: sched: fix NULL pointer dereference when action calls some targets
    - net_sched: fix order of queue length updates in qdisc_replace()
    - bpf, verifier: add additional patterns to evaluate_reg_imm_alu
    - bpf: fix mixed signed/unsigned derived min/max value bounds
    - bpf/verifier: fix min/max handling in BPF_SUB
    - Input: trackpoint - add new trackpoint firmware ID
    - Input: elan_i2c - add ELAN0602 ACPI ID to support Lenovo Yoga310
    - Input: ALPS - fix two-finger scroll breakage in right side on ALPS touchpad
    - KVM: s390: sthyi: fix sthyi inline assembly
    - KVM: s390: sthyi: fix specification exception detection
    - KVM: x86: simplify handling of PKRU
    - KVM, pkeys: do not use PKRU value in vcpu->arch.guest_fpu.state
    - KVM: x86: block guest protection keys unless the host has them enabled
    - ALSA: usb-audio: Add delay quirk for H650e/Jabra 550a USB headsets
    - ALSA: core: Fix unexpected error at replacing user TLV
    - ALSA: hda - Add stereo mic quirk for Lenovo G50-70 (17aa:3978)
    - ALSA: firewire: fix NULL pointer dereference when releasing uninitialized
      data of iso-resource
    - ALSA: firewire-motu: destroy stream data surely at failure of card
      initialization
    - ARCv2: SLC: Make sure busy bit is set properly for region ops
    - ARCv2: PAE40: Explicitly set MSB counterpart of SLC region ops addresses
    - ARCv2: PAE40: set MSB even if !CONFIG_ARC_HAS_...

Changed in linux (Ubuntu):
status: In Progress → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.2 KiB)

This bug was fixed in the package linux - 4.10.0-35.39

---------------
linux (4.10.0-35.39) zesty; urgency=low

  * linux: 4.10.0-35.39 -proposed tracker (LP: #1716606)

  * kernel panic -not syncing: Fatal exception: panic_on_oops (LP: #1708399)
    - SAUCE: s390/mm: fix local TLB flushing vs. detach of an mm address space
    - SAUCE: s390/mm: fix race on mm->context.flush_mm

  * CVE-2017-1000251
    - Bluetooth: Properly check L2CAP config option output buffer length

linux (4.10.0-34.38) zesty; urgency=low

  * linux: 4.10.0-34.38 -proposed tracker (LP: #1713470)

  * Ubuntu 16.04.03: perf tool does not count pm_run_inst_cmpl with rcode on
    POWER9 DD2.0 (LP: #1709964)
    - powerpc/perf: Fix Power9 test_adder fields

  * HID: multitouch: Support ALPS PTP Stick and Touchpad devices (LP: #1712481)
    - HID: multitouch: Support PTP Stick and Touchpad device
    - SAUCE: HID: multitouch: Support ALPS PTP stick with pid 0x120A

  * igb: Support using Broadcom 54616 as PHY (LP: #1712024)
    - SAUCE: igb: add support for using Broadcom 54616 as PHY

  * RPT related fixes missing in Ubuntu 16.04.3 (LP: #1709220)
    - powerpc/mm/radix: Optimise tlbiel flush all case
    - powerpc/mm/radix: Improve _tlbiel_pid to be usable for PWC flushes
    - powerpc/mm/radix: Improve TLB/PWC flushes
    - powerpc/mm/radix: Avoid flushing the PWC on every flush_tlb_range

  * AMD RV platforms with SNPS 3.1 USB controller stop responding (S3 issue)
    (LP: #1711098)
    - usb: xhci: Issue stop EP command only when the EP state is running

  * dma-buf: performance issue when looking up the fence status (LP: #1711096)
    - dma-buf: avoid scheduling on fence status query v2

  * IPR driver causes multipath to fail paths/stuck IO on Medium Errors
    (LP: #1682644)
    - scsi: ipr: do not set DID_PASSTHROUGH on CHECK CONDITION

  * Disable CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE (LP: #1709171)
    - [Config] CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=n for ppc64el

  * memory-hotplug test needs to be fixed (LP: #1710868)
    - selftests: typo correction for memory-hotplug test
    - selftests: check hot-pluggagble memory for memory-hotplug test
    - selftests: check percentage range for memory-hotplug test
    - selftests: add missing test name in memory-hotplug test
    - selftests: fix memory-hotplug test

  * Ubuntu 16.04.3: Qemu fails on P9 (LP: #1686019)
    - KVM: PPC: Pass kvm* to kvmppc_find_table()
    - KVM: PPC: Use preregistered memory API to access TCE list
    - KVM: PPC: VFIO: Add in-kernel acceleration for VFIO
    - powerpc/powernv/iommu: Add real mode version of iommu_table_ops::exchange()
    - powerpc/powernv/ioda2: Update iommu table base on ownership change
    - powerpc/iommu/vfio_spapr_tce: Cleanup iommu_table disposal
    - powerpc/vfio_spapr_tce: Add reference counting to iommu_table
    - powerpc/mmu: Add real mode support for IOMMU preregistered memory
    - KVM: PPC: Reserve KVM_CAP_SPAPR_TCE_VFIO capability number
    - KVM: PPC: Book3S HV: Add radix checks in real-mode hypercall handlers

  * [SRU][Zesty] [QDF2400] pl011 E44 erratum patch needed for 2.0 firmware and
    1.1 silicon (LP: #1709123)
    - tty: pl011: fix initialization or...

Read more...

Changed in linux (Ubuntu Zesty):
status: Fix Committed → Fix Released
Manoj Iyer (manjo)
Changed in ubuntu-power-systems:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers