Ubuntu 18.04 - Performance: Radix page fault handler bug in KVM

Bug #1752236 reported by bugproxy on 2018-02-28
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
The Ubuntu-power-systems project
Critical
Canonical Kernel Team
linux (Ubuntu)
Critical
Joseph Salisbury
Bionic
Critical
Joseph Salisbury

Bug Description

== Comment: #0 - JENIFER HOPPER <email address hidden> - 2018-02-27 17:25:59 ==
+++ This bug was initially created as a clone of Bug #165215 +++

---Problem Description---
Paul Mackerras has posted a fix to a Radix page fault handler bug in KVM:

http://patchwork.ozlabs.org/patch/877033/
" KVM: PPC: Book3S HV: Fix handling of large pages in radix page fault handler "

This is critical for P9 KVM performance. Using an open source database workload, we saw an 11% throughput improvement with this patch when the guest was backed w/ 2MB hugepages. Without this patch, hugepage backing does not help performance compared to base page size.

---uname output---
18.04 lts

Machine Type = 5104-22C

---Debugger---
A debugger is not configured

---Steps to Reproduce---
  Back guest w/ 2MB pages, run a throughput test and compare performance.

Contact Information = <email address hidden>

CVE References

------- Comment From <email address hidden> 2018-02-28 00:16 EDT-------
note, patch is not upstream yet, it was just posted..will update commit id once it's accepted in upstream

tags: added: architecture-ppc64le bugnameltc-165216 severity-critical targetmilestone-inin---
Changed in ubuntu:
assignee: nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage)
affects: ubuntu → kernel-package (Ubuntu)
affects: kernel-package (Ubuntu) → linux (Ubuntu)
Changed in ubuntu-power-systems:
status: New → Triaged
importance: Undecided → Critical
assignee: nobody → Canonical Kernel Team (canonical-kernel-team)
tags: added: kernel-da-key triage-g
Changed in ubuntu-power-systems:
status: Triaged → Incomplete
bugproxy (bugproxy) on 2018-03-01
tags: added: targetmilestone-inin1804
removed: targetmilestone-inin---
Changed in linux (Ubuntu):
importance: Undecided → Critical
status: New → Triaged
Changed in linux (Ubuntu Bionic):
assignee: Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) → Joseph Salisbury (jsalisbury)
Changed in linux (Ubuntu Bionic):
status: Triaged → In Progress
Changed in ubuntu-power-systems:
status: Incomplete → In Progress
Joseph Salisbury (jsalisbury) wrote :

I built a test kernel with the patch referenced in the description. The test kernel can be downloaded from:
http://kernel.ubuntu.com/~jsalisbury/lp1752236

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

Note, to test this kernel, you need to install both the linux-image and linux-image-extra .deb packages.

Thanks in advance!

Changed in linux (Ubuntu Bionic):
status: In Progress → Fix Committed
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2018-03-14 16:28 EDT-------
Thanks, I verified the test kernel fixes the bug.

To do so, I ran the specjbb2005 benchmark in a pinned guest with base page backing and compared that to a pinned guest with 2MB hugepage backing. On the stock 4.15.0-10 kernel, the 2MB backing throughput was w/in run variance (1.5%). With the fixed test kernel (#11~lp1752236), the 2MB backing provided 8% guest throughput improvement as expected for this workload.

Changed in ubuntu-power-systems:
status: In Progress → Fix Committed
bugproxy (bugproxy) on 2018-03-15
tags: removed: bugnameltc-165216 kernel-da-key severity-critical triage-g
tags: added: triage-g
Launchpad Janitor (janitor) wrote :
Download full text (32.6 KiB)

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

---------------
linux (4.15.0-13.14) bionic; urgency=medium

  * linux: 4.15.0-13.14 -proposed tracker (LP: #1756408)

  * devpts: handle bind-mounts (LP: #1755857)
    - SAUCE: devpts: hoist out check for DEVPTS_SUPER_MAGIC
    - SAUCE: devpts: resolve devpts bind-mounts
    - SAUCE: devpts: comment devpts_mntget()
    - SAUCE: selftests: add devpts selftests

  * [bionic][arm64] d-i: add hisi_sas_v3_hw to scsi-modules (LP: #1756103)
    - d-i: add hisi_sas_v3_hw to scsi-modules

  * [Bionic][ARM64] enable ROCE and HNS3 driver support for hip08 SoC
    (LP: #1756097)
    - RDMA/hns: Refactor eq code for hip06
    - RDMA/hns: Add eq support of hip08
    - RDMA/hns: Add detailed comments for mb() call
    - RDMA/hns: Add rq inline data support for hip08 RoCE
    - RDMA/hns: Update the usage of sr_max and rr_max field
    - RDMA/hns: Set access flags of hip08 RoCE
    - RDMA/hns: Filter for zero length of sge in hip08 kernel mode
    - RDMA/hns: Fix QP state judgement before sending work requests
    - RDMA/hns: Assign dest_qp when deregistering mr
    - RDMA/hns: Fix endian problems around imm_data and rkey
    - RDMA/hns: Assign the correct value for tx_cqn
    - RDMA/hns: Create gsi qp in hip08
    - RDMA/hns: Add gsi qp support for modifying qp in hip08
    - RDMA/hns: Fill sq wqe context of ud type in hip08
    - RDMA/hns: Assign zero for pkey_index of wc in hip08
    - RDMA/hns: Update the verbs of polling for completion
    - RDMA/hns: Set the guid for hip08 RoCE device
    - net: hns3: Refactor of the reset interrupt handling logic
    - net: hns3: Add reset service task for handling reset requests
    - net: hns3: Refactors the requested reset & pending reset handling code
    - net: hns3: Add HNS3 VF IMP(Integrated Management Proc) cmd interface
    - net: hns3: Add mailbox support to VF driver
    - net: hns3: Add HNS3 VF HCL(Hardware Compatibility Layer) Support
    - net: hns3: Add HNS3 VF driver to kernel build framework
    - net: hns3: Unified HNS3 {VF|PF} Ethernet Driver for hip08 SoC
    - net: hns3: Add mailbox support to PF driver
    - net: hns3: Change PF to add ring-vect binding & resetQ to mailbox
    - net: hns3: Add mailbox interrupt handling to PF driver
    - net: hns3: add support to query tqps number
    - net: hns3: add support to modify tqps number
    - net: hns3: change the returned tqp number by ethtool -x
    - net: hns3: free the ring_data structrue when change tqps
    - net: hns3: get rss_size_max from configuration but not hardcode
    - net: hns3: add a mask initialization for mac_vlan table
    - net: hns3: add vlan offload config command
    - net: hns3: add ethtool related offload command
    - net: hns3: add handling vlan tag offload in bd
    - net: hns3: cleanup mac auto-negotiation state query
    - net: hns3: fix for getting auto-negotiation state in hclge_get_autoneg
    - net: hns3: add support for set_pauseparam
    - net: hns3: add support to update flow control settings after autoneg
    - net: hns3: add Asym Pause support to phy default features
    - net: hns3: add support for querying advertised pause frame by ethtool ethx
    - net:...

Changed in linux (Ubuntu Bionic):
status: Fix Committed → Fix Released
Changed in ubuntu-power-systems:
status: Fix Committed → Fix Released
bugproxy (bugproxy) on 2019-03-08
tags: added: bugnameltc-165216 severity-critical
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers