/proc/$pid/maps performance regression

Bug #1547231 reported by Nelson Elhage
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Medium
Tim Gardner
Trusty
Triaged
Medium
Unassigned
Vivid
Fix Released
Undecided
Unassigned
Wily
Fix Released
Undecided
Tim Gardner
Xenial
Fix Released
Medium
Tim Gardner

Bug Description

/proc/$pid/maps experienced a significant performance regression for processes with large numbers of threads between Precise and Trusty due to an upstream bug. This behavior is currently blocking my ability to upgrade to Trusty, as we depend on applications with with 10s of thousands of threads.

The issue has been fixed in the 4.5 release.

Upstream report: http://comments.gmane.org/gmane.linux.kernel.mm/144712
Upstream patches: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=65376df582174ffcec9e6471bf5b0dd79ba05e4a

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: linux-image-3.13.0-36-generic 3.13.0-36.63
ProcVersionSignature: Ubuntu 3.13.0-36.63-generic 3.13.11.6
Uname: Linux 3.13.0-36-generic x86_64
AlsaDevices:
 total 0
 crw-rw---- 1 root audio 116, 1 Feb 18 12:13 seq
 crw-rw---- 1 root audio 116, 33 Feb 18 12:13 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.14.1-0ubuntu3.19
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
Date: Thu Feb 18 13:44:23 2016
MachineType: Supermicro A1SAi
PciMultimedia:

ProcEnviron:
 TERM=screen
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcFB: 0 astdrmfb
ProcKernelCmdLine: root=/dev/md1 ro console=tty0 console=ttyS0,57600
RelatedPackageVersions:
 linux-restricted-modules-3.13.0-36-generic N/A
 linux-backports-modules-3.13.0-36-generic N/A
 linux-firmware 1.127.20
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: Upgraded to trusty on 2014-07-18 (579 days ago)
WifiSyslog:

dmi.bios.date: 02/27/2014
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 1.0c
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: A1SAi
dmi.board.vendor: Supermicro
dmi.board.version: 123456789
dmi.chassis.asset.tag: To Be Filled By O.E.M.
dmi.chassis.type: 18
dmi.chassis.vendor: To Be Filled By O.E.M.
dmi.chassis.version: To Be Filled By O.E.M.
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr1.0c:bd02/27/2014:svnSupermicro:pnA1SAi:pvr123456789:rvnSupermicro:rnA1SAi:rvr123456789:cvnToBeFilledByO.E.M.:ct18:cvrToBeFilledByO.E.M.:
dmi.product.name: A1SAi
dmi.product.version: 123456789
dmi.sys.vendor: Supermicro

Revision history for this message
Nelson Elhage (nelhage) wrote :
Revision history for this message
Brad Figg (brad-figg) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Changed in linux (Ubuntu):
importance: Undecided → Medium
Changed in linux (Ubuntu Trusty):
status: New → Confirmed
importance: Undecided → Medium
penalvch (penalvch)
tags: added: cherry-pick kernel-fixed-upstream
Changed in linux (Ubuntu Trusty):
status: Confirmed → Triaged
Changed in linux (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

We can cherry-pick and/or backport these commits once they land in mainline.

tags: added: kernel-da-key
Revision history for this message
Nelson Elhage (nelhage) wrote :

These patches have landed in v4.5rc3 squashed as 65376df582174ffcec9e6471bf5b0dd79ba05e4a (v4.5-rc3~15^2~9). Is that sufficient, or should I reping once 4.5 final is out?

Tim Gardner (timg-tpi)
Changed in linux (Ubuntu Xenial):
assignee: nobody → Tim Gardner (timg-tpi)
status: Triaged → Fix Committed
Changed in linux (Ubuntu Wily):
assignee: nobody → Tim Gardner (timg-tpi)
status: New → In Progress
Changed in linux (Ubuntu Wily):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Vivid):
status: New → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (7.9 KiB)

This bug was fixed in the package linux - 4.4.0-18.34

---------------
linux (4.4.0-18.34) xenial; urgency=low

  [ Tim Gardner ]

  * Release Tracking Bug
    - LP: #1566868

  * [i915_bpo] Fix RC6 on SKL GT3 & GT4 (LP: #1564759)
    - SAUCE: i915_bpo: drm/i915/skl: Fix rc6 based gpu/system hang
    - SAUCE: i915_bpo: drm/i915/skl: Fix spurious gpu hang with gt3/gt4 revs

  * CONFIG_ARCH_ROCKCHIP not enabled in armhf generic kernel (LP: #1566283)
    - [Config] CONFIG_ARCH_ROCKCHIP=y

  * [Feature] Memory Bandwidth Monitoring (LP: #1397880)
    - perf/x86/cqm: Fix CQM handling of grouping events into a cache_group
    - perf/x86/cqm: Fix CQM memory leak and notifier leak
    - x86/cpufeature: Carve out X86_FEATURE_*
    - Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
    - x86/topology: Create logical package id
    - perf/x86/mbm: Add Intel Memory B/W Monitoring enumeration and init
    - perf/x86/mbm: Add memory bandwidth monitoring event management
    - perf/x86/mbm: Implement RMID recycling
    - perf/x86/mbm: Add support for MBM counter overflow handling

  * User namespace mount updates (LP: #1566505)
    - SAUCE: quota: Require that qids passed to dqget() be valid and map into s_user_ns
    - SAUCE: fs: Allow superblock owner to change ownership of inodes with unmappable ids
    - SAUCE: fuse: Don't initialize user_id or group_id in mount options
    - SAUCE: cgroup: Use a new super block when mounting in a cgroup namespace
    - SAUCE: fs: fix a posible leak of allocated superblock

  * [arm64] kernel BUG at /build/linux-StrpB2/linux-4.4.0/fs/ext4/inode.c:2394!
    (LP: #1566518)
    - arm64: Honour !PTE_WRITE in set_pte_at() for kernel mappings
    - arm64: Update PTE_RDONLY in set_pte_at() for PROT_NONE permission

  * [Feature]USB core and xHCI tasks for USB 3.1 SuperSpeedPlus (SSP) support
    for Alpine Ridge on SKL (LP: #1519623)
    - usb: define USB_SPEED_SUPER_PLUS speed for SuperSpeedPlus USB3.1 devices
    - usb: set USB 3.1 roothub device speed to USB_SPEED_SUPER_PLUS
    - usb: show speed "10000" in sysfs for USB 3.1 SuperSpeedPlus devices
    - usb: add device descriptor for usb 3.1 root hub
    - usb: Support USB 3.1 extended port status request
    - xhci: Make sure xhci handles USB_SPEED_SUPER_PLUS devices.
    - xhci: set roothub speed to USB_SPEED_SUPER_PLUS for USB3.1 capable controllers
    - xhci: USB 3.1 add default Speed Attributes to SuperSpeedPlus device capability
    - xhci: set slot context speed field to SuperSpeedPlus for USB 3.1 SSP devices
    - usb: Add USB3.1 SuperSpeedPlus Isoc Endpoint Companion descriptor
    - usb: Parse the new USB 3.1 SuperSpeedPlus Isoc endpoint companion descriptor
    - usb: Add USB 3.1 Precision time measurement capability descriptor support
    - xhci: refactor and cleanup endpoint initialization.
    - xhci: Add SuperSpeedPlus high bandwidth isoc support to xhci endpoints
    - xhci: cleanup isoc tranfers queuing code
    - xhci: Support extended burst isoc TRB structure used by xhci 1.1 for USB 3.1
    - SAUCE: (noup) usb: fix regression in SuperSpeed endpoint descriptor parsing

  * wrong/missing permissions for device f...

Read more...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Kamal Mostafa (kamalmostafa) 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-vivid' to 'verification-done-vivid'.

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-vivid
tags: added: verification-needed-wily
Revision history for this message
Kamal Mostafa (kamalmostafa) 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-wily' to 'verification-done-wily'.

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!

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (30.4 KiB)

This bug was fixed in the package linux - 4.2.0-36.41

---------------
linux (4.2.0-36.41) wily; urgency=low

  [ Kamal Mostafa ]

  * Release Tracking Bug
    - LP: #1571667

  [ Benjamin Tissoires ]

  * SAUCE: Input: synaptics - handle spurious release of trackstick
    buttons, again
    - LP: #1553811

  [ dann frazier ]

  * Revert "SAUCE: arm64, numa, dt: adding dt based numa support using dt
    node property arm, associativity"
    - LP: #1558828
  * Revert "SAUCE: Documentation: arm64/arm: dt bindings for numa."
    - LP: #1558828
  * Revert "SAUCE: arm64, numa: adding numa support for arm64 platforms."
    - LP: #1558828
  * Revert "[Config] Enable NUMA on ARM64"
    - LP: #1558828

  [ K. Y. Srinivasan ]

  * SAUCE: (noup): Drivers: hv: vmbus: Fix a bug in
    hv_need_to_signal_on_read()
    - LP: #1556264

  [ Kamal Mostafa ]

  * [debian] BugLink: close LP: bugs only for Launchpad urls
  * [Config] updateconfigs after v4.2.8-ckt7

  [ Upstream Kernel Changes ]

  * Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin"
    - LP: #1561677
  * tipc: fix connection abort during subscription cancel
    - LP: #1561677
  * tipc: fix nullptr crash during subscription cancel
    - LP: #1561677
  * s390/mm: four page table levels vs. fork
    - LP: #1561677
  * Input: aiptek - fix crash on detecting device without endpoints
    - LP: #1561677
  * wext: fix message delay/ordering
    - LP: #1561677
  * cfg80211/wext: fix message ordering
    - LP: #1561677
  * mac80211: fix use of uninitialised values in RX aggregation
    - LP: #1561677
  * mac80211: minstrel: Change expected throughput unit back to Kbps
    - LP: #1561677
  * libata: fix HDIO_GET_32BIT ioctl
    - LP: #1561677
  * iwlwifi: mvm: inc pending frames counter also when txing non-sta
    - LP: #1561677
  * [media] adv7604: fix tx 5v detect regression
    - LP: #1561677
  * ahci: add new Intel device IDs
    - LP: #1561677
  * ahci: Order SATA device IDs for codename Lewisburg
    - LP: #1561677
  * Adding Intel Lewisburg device IDs for SATA
    - LP: #1561677
  * ASoC: samsung: Use IRQ safe spin lock calls
    - LP: #1561677
  * mac80211: minstrel_ht: set default tx aggregation timeout to 0
    - LP: #1561677
  * usb: chipidea: otg: change workqueue ci_otg as freezable
    - LP: #1561677
  * jffs2: Fix page lock / f->sem deadlock
    - LP: #1561677
  * Fix directory hardlinks from deleted directories
    - LP: #1561677
  * iommu/amd: Fix boot warning when device 00:00.0 is not iommu covered
    - LP: #1561677
  * iommu/amd: Apply workaround for ATS write permission check
    - LP: #1561677
  * libata: Align ata_device's id on a cacheline
    - LP: #1561677
  * can: gs_usb: fixed disconnect bug by removing erroneous use of kfree()
    - LP: #1561677
  * fbcon: set a default value to blink interval
    - LP: #1561677
  * KVM: x86: fix root cause for missed hardware breakpoints
    - LP: #1561677
  * arm64: vmemmap: use virtual projection of linear region
    - LP: #1561677
  * vfio: fix ioctl error handling
    - LP: #1561677
  * ALSA: ctl: Fix ioctls for X32 ABI
    - LP: #1561677
  * ALSA: pcm: Fix ioctls for X32 ABI
    - LP: #1561677
  * ALSA: rawmidi: Fix ioct...

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

This bug was fixed in the package linux - 3.19.0-59.65

---------------
linux (3.19.0-59.65) vivid; urgency=low

  [ Kamal Mostafa ]

  * Release Tracking Bug
    - LP: #1571694

  [ Benjamin Tissoires ]

  * SAUCE: Input: synaptics - handle spurious release of trackstick
    buttons, again
    - LP: #1553811

  [ K. Y. Srinivasan ]

  * SAUCE: (noup): Drivers: hv: vmbus: Fix a bug in
    hv_need_to_signal_on_read()
    - LP: #1556264

  [ Kamal Mostafa ]

  * [debian] BugLink: close LP: bugs only for Launchpad urls
  * [Config] updateconfigs after v3.19.8-ckt18

  [ Upstream Kernel Changes ]

  * Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin"
    - LP: #1561714
  * [stable-only] AIO: properly check iovec sizes
    - LP: #1561714
  * Input: aiptek - fix crash on detecting device without endpoints
    - LP: #1561714
  * wext: fix message delay/ordering
    - LP: #1561714
  * cfg80211/wext: fix message ordering
    - LP: #1561714
  * mac80211: fix use of uninitialised values in RX aggregation
    - LP: #1561714
  * libata: fix HDIO_GET_32BIT ioctl
    - LP: #1561714
  * iwlwifi: mvm: inc pending frames counter also when txing non-sta
    - LP: #1561714
  * [media] adv7604: fix tx 5v detect regression
    - LP: #1561714
  * ahci: add new Intel device IDs
    - LP: #1561714
  * ahci: Order SATA device IDs for codename Lewisburg
    - LP: #1561714
  * Adding Intel Lewisburg device IDs for SATA
    - LP: #1561714
  * mac80211: minstrel_ht: set default tx aggregation timeout to 0
    - LP: #1561714
  * usb: chipidea: otg: change workqueue ci_otg as freezable
    - LP: #1561714
  * jffs2: Fix page lock / f->sem deadlock
    - LP: #1561714
  * Fix directory hardlinks from deleted directories
    - LP: #1561714
  * iommu/amd: Fix boot warning when device 00:00.0 is not iommu covered
    - LP: #1561714
  * iommu/amd: Apply workaround for ATS write permission check
    - LP: #1561714
  * libata: Align ata_device's id on a cacheline
    - LP: #1561714
  * can: gs_usb: fixed disconnect bug by removing erroneous use of kfree()
    - LP: #1561714
  * vfio: fix ioctl error handling
    - LP: #1561714
  * ALSA: ctl: Fix ioctls for X32 ABI
    - LP: #1561714
  * ALSA: rawmidi: Fix ioctls X32 ABI
    - LP: #1561714
  * ALSA: timer: Fix broken compat timer user status ioctl
    - LP: #1561714
  * ALSA: timer: Fix ioctls for X32 ABI
    - LP: #1561714
  * cifs: fix out-of-bounds access in lease parsing
    - LP: #1561714
  * CIFS: Fix SMB2+ interim response processing for read requests
    - LP: #1561714
  * Fix cifs_uniqueid_to_ino_t() function for s390x
    - LP: #1561714
  * arm/arm64: KVM: Fix ioctl error handling
    - LP: #1561714
  * ALSA: hdspm: Fix wrong boolean ctl value accesses
    - LP: #1561714
  * ALSA: hdspm: Fix zero-division
    - LP: #1561714
  * ALSA: hdsp: Fix wrong boolean ctl value accesses
    - LP: #1561714
  * USB: qcserial: add Dell Wireless 5809e Gobi 4G HSPA+ (rev3)
    - LP: #1561714
  * USB: cp210x: Add ID for Parrot NMEA GPS Flight Recorder
    - LP: #1561714
  * ASoC: wm8958: Fix enum ctl accesses in a wrong type
    - LP: #1561714
  * ASoC: wm8994: Fix enum ctl accesses in a wrong type
    - LP: #1561714
  * A...

Changed in linux (Ubuntu Vivid):
status: Fix Committed → Fix Released
Revision history for this message
Evan Broder (broder) wrote :

Hey folks -

Anything I can do to get this into the next trusty kernel release? This has now caused multiple production incidents for us.

Evan Broder (broder)
description: updated
Revision history for this message
Tim Gardner (timg-tpi) wrote :

The Trusty backport does not look like it would be suitable for an SRU. Is running linux-generic-lts-xenial an option ?

Revision history for this message
David Bartley (dtbartle) wrote :

Running the xenial kernel on trusty seems like it would be pretty risky, since presumably far fewer people have tested that combination.

Revision history for this message
Evan Broder (broder) wrote :

What makes this unsuitable for an SRU? Is the concern that this would be considered an interface change?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.