Performance degradation after resume

Bug #743907 reported by John Baptist on 2011-03-27
36
This bug affects 5 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
High
Steve Conklin

Bug Description

Resuming after a suspend results in much degraded system performance and strange use of processor resources (according to top, htop, system monitor, and similar).

Suspend works fine. After resume, behavior is sluggish and jumpy. Looking at top (and similar programs) shows that an apparently random process is using an entire core. When I kill that process, another apparently random process takes its place, and occupies 100% use of a whole core, even when that process apparently shouldn't be doing anything at all, and doesn't ever use that much processor time during normal operation. No matter how many processes I kill, there is always one sucking up a whole core. Processes that have exhibited this behavior include gnome-panel, chromium-browser, nautilus, gnome-terminal, bash, Xorg, and others. Again, this consumption of excessive processor time and whole-system performance degradation happens only after a resume.

This is a bug that started in kernel version 2.6.32-26, and continues in 2.6.32-27, 2.6.32-28, 2.6.32-29, and 2.6.32-30. It does NOT occur in 2.6.32-25, and so I consider it a regression.

This is easily reproducible on my Core 2 Quad notebook running up-to-date Lucid.

I don't know what's causing this. Please let me know what information I can collect for you.

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: linux-image-2.6.32-25-generic 2.6.32-25.45
Regression: Yes
Reproducible: Yes
ProcVersionSignature: Ubuntu 2.6.32-25.45-generic 2.6.32.21+drm33.7
Uname: Linux 2.6.32-25-generic x86_64
NonfreeKernelModules: nvidia
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.21.
Architecture: amd64
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: eppie 1692 F.... pulseaudio
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xfc220000 irq 17'
   Mixer name : 'Conexant CX20561 (Hermosa)'
   Components : 'HDA:14f15051,17aa211d,00100000'
   Controls : 14
   Simple ctrls : 7
Card29.Amixer.info:
 Card hw:29 'ThinkPadEC'/'ThinkPad Console Audio Control at EC reg 0x30, fw 7ZHT24WW-1.07'
   Mixer name : 'ThinkPad EC 7ZHT24WW-1.07'
   Components : ''
   Controls : 1
   Simple ctrls : 1
Card29.Amixer.values:
 Simple mixer control 'Console',0
   Capabilities: pswitch pswitch-joined penum
   Playback channels: Mono
   Mono: Playback [on]
Date: Sun Mar 27 23:18:25 2011
HibernationDevice: RESUME=UUID=0157a8b3-c77f-4c15-9b30-44ae99dc1d9a
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release amd64 (20100429)
MachineType: LENOVO 2757CTO
PccardctlIdent:
 Socket 0:
   no product info available
PccardctlStatus:
 Socket 0:
   no card
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.32-25-generic root=UUID=f86cd16c-e2b3-45a7-9905-8b1b5ac28f69 ro quiet splash
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.utf8
 SHELL=/bin/bash
RelatedPackageVersions: linux-firmware 1.34.4
SourcePackage: linux
dmi.bios.date: 08/30/2010
dmi.bios.vendor: LENOVO
dmi.bios.version: 7ZETB3WW (2.13 )
dmi.board.name: 2757CTO
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr7ZETB3WW(2.13):bd08/30/2010:svnLENOVO:pn2757CTO:pvrThinkPadW700:rvnLENOVO:rn2757CTO:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 2757CTO
dmi.product.version: ThinkPad W700
dmi.sys.vendor: LENOVO

John Baptist (jepst79) wrote :
Steve Conklin (sconklin) wrote :

I'll get started on bisecting the changes between -25 and -26, and add a comment here when I have a test kernel.

Just to double check - you're sure it's OK in -25?

Because there are a lot of scheduler changes that were in -25, and also because there aren't that many changes between -25 and -26, and they are all graphics driver changes.

I just want to make sure.

Changed in linux (Ubuntu):
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Steve Conklin (sconklin)
Steve Conklin (sconklin) wrote :

OK, my last comment was wrong. Because the history contains a rebase from a security release,, -26 does contain the scheduler changes. I'll get bisecting.

Steve Conklin (sconklin) wrote :

The first bisected kernel is version:

linux-image-2.6.32-26-generic_2.6.32-26.45~spclp743907b01_i386.deb

and may be found here:

http://people.canonical.com/~sconklin/lp743907/

Please test this kernel and report whether it exhibits the problem or not.

Thanks!

Here's the bisect log to this point:

# bad: [eb6f23d8e8efe3f64d4df0383989063d110e9e55] UBUNTU: Ubuntu-2.6.32-26.46
# good: [eb17a015bb76670c0edf0e16eeb81b29c63bc6d6] UBUNTU: Ubuntu-2.6.32-25.45
git bisect start 'Ubuntu-2.6.32-26.46' 'Ubuntu-2.6.32-25.45'

John Baptist (jepst79) wrote :

Hi Steve,

Thanks for your response. In answer to your first question, yes, I'm sure 2.6.32-25 is ok: I've been suspending and resuming for months on it with no problem.

I'd like to test the bisected kernel, but unfortunately it seems to be a x86 kernel, and I'm running an amd64 system. Can you provide a 64-bit equivalent?

Steve Conklin (sconklin) wrote :

Sorry, fixed it.

Steve Conklin (sconklin) wrote :

amd64 kernels in the same location linked earlier

John Baptist (jepst79) wrote :

I've tested the first bisection kernel. It suffers from the bug.

Steve Conklin (sconklin) wrote :

Next test kernel in the same place: http://people.canonical.com/~sconklin/lp743907/

version is linux-image-2.6.32-26-generic_2.6.32-26.45~spclp743907b02

Here's the git bisection log, in case anyone else needs to reproduce this:

# bad: [eb6f23d8e8efe3f64d4df0383989063d110e9e55] UBUNTU: Ubuntu-2.6.32-26.46
# good: [eb17a015bb76670c0edf0e16eeb81b29c63bc6d6] UBUNTU: Ubuntu-2.6.32-25.45
git bisect start 'Ubuntu-2.6.32-26.46' 'Ubuntu-2.6.32-25.45'
# bad: [71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc] SUNRPC: Fix race corrupting rpc upcall
git bisect bad 71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc

John Baptist (jepst79) wrote :

This one works.

Brad Figg (brad-figg) wrote :

Next test kernel in new location: http://people.canonical.com/~bradf/lp743907/

version is linux-image-2.6.32-26-generic_2.6.32-26.45~spclp743907b03

Here's the git bisection log, in case anyone else needs to reproduce this:

# bad: [eb6f23d8e8efe3f64d4df0383989063d110e9e55] UBUNTU: Ubuntu-2.6.32-26.46
# good: [eb17a015bb76670c0edf0e16eeb81b29c63bc6d6] UBUNTU: Ubuntu-2.6.32-25.45
git bisect start 'Ubuntu-2.6.32-26.46' 'Ubuntu-2.6.32-25.45'
# bad: [71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc] SUNRPC: Fix race corrupting rpc upcall
git bisect bad 71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc
# good: [c666b2d927fee413104218c026fa8bef8964354a] Input: i8042 - fix device removal on unload
git bisect good c666b2d927fee413104218c026fa8bef8964354a

John Baptist (jepst79) wrote :

Hi. This one works, too.

Brad Figg (brad-figg) wrote :

Location: http://people.canonical.com/~bradf/lp743907/
 Version: linux-image-2.6.32-26-generic_2.6.32-26.45~spclp743907b03

git bisect log:

# bad: [eb6f23d8e8efe3f64d4df0383989063d110e9e55] UBUNTU: Ubuntu-2.6.32-26.46
# good: [eb17a015bb76670c0edf0e16eeb81b29c63bc6d6] UBUNTU: Ubuntu-2.6.32-25.45
git bisect start 'Ubuntu-2.6.32-26.46' 'Ubuntu-2.6.32-25.45'
# bad: [71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc] SUNRPC: Fix race corrupting rpc upcall
git bisect bad 71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc
# good: [c666b2d927fee413104218c026fa8bef8964354a] Input: i8042 - fix device removal on unload
git bisect good c666b2d927fee413104218c026fa8bef8964354a
# good: [5109db8ef38ab9c66b0f4089fc98a0daa9a844f8] sched: Fix race between ttwu() and task_rq_lock()
git bisect good 5109db8ef38ab9c66b0f4089fc98a0daa9a844f8

Brad Figg (brad-figg) wrote :

Ooops: version should be: linux-image-2.6.32-26-generic_2.6.32-26.45~spclp743907b04

John Baptist (jepst79) wrote :

This one works.

Brad Figg (brad-figg) wrote :

Location: http://people.canonical.com/~bradf/lp743907/
 Version: linux-image-2.6.32-26-generic_2.6.32-26.45~spclp743907b05

git bisect log:

# bad: [eb6f23d8e8efe3f64d4df0383989063d110e9e55] UBUNTU: Ubuntu-2.6.32-26.46
# good: [eb17a015bb76670c0edf0e16eeb81b29c63bc6d6] UBUNTU: Ubuntu-2.6.32-25.45
git bisect start 'Ubuntu-2.6.32-26.46' 'Ubuntu-2.6.32-25.45'
# bad: [71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc] SUNRPC: Fix race corrupting rpc upcall
git bisect bad 71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc
# good: [c666b2d927fee413104218c026fa8bef8964354a] Input: i8042 - fix device removal on unload
git bisect good c666b2d927fee413104218c026fa8bef8964354a
# good: [5109db8ef38ab9c66b0f4089fc98a0daa9a844f8] sched: Fix race between ttwu() and task_rq_lock()
git bisect good 5109db8ef38ab9c66b0f4089fc98a0daa9a844f8
# good: [c9c58488aebd829280f1683b643bb9f35ec5b6c6] sched: Remove unnecessary RCU exclusion
git bisect good c9c58488aebd829280f1683b643bb9f35ec5b6c6

John Baptist (jepst79) wrote :

I'm going to be travelling for a bit and unable to continue testing kernels. I will pick up where we left when I get back.

John Baptist (jepst79) wrote :

Hi, I'm back. This version does not work.

Steve Conklin (sconklin) wrote :

Location: http://people.canonical.com/~sconklin/lp743907/
  Version: linux-image-2.6.32-26-generic_2.6.32-26.45~spclp743907b06

git bisect log:

# bad: [eb6f23d8e8efe3f64d4df0383989063d110e9e55] UBUNTU: Ubuntu-2.6.32-26.46
# good: [eb17a015bb76670c0edf0e16eeb81b29c63bc6d6] UBUNTU: Ubuntu-2.6.32-25.45
git bisect start 'Ubuntu-2.6.32-26.46' 'Ubuntu-2.6.32-25.45'
# bad: [71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc] SUNRPC: Fix race corrupting rpc upcall
git bisect bad 71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc
# good: [c666b2d927fee413104218c026fa8bef8964354a] Input: i8042 - fix device removal on unload
git bisect good c666b2d927fee413104218c026fa8bef8964354a
# good: [5109db8ef38ab9c66b0f4089fc98a0daa9a844f8] sched: Fix race between ttwu() and task_rq_lock()
git bisect good 5109db8ef38ab9c66b0f4089fc98a0daa9a844f8
# good: [c9c58488aebd829280f1683b643bb9f35ec5b6c6] sched: Remove unnecessary RCU exclusion
git bisect good c9c58488aebd829280f1683b643bb9f35ec5b6c6
# bad: [cce9676aae624b3dae5f8283f503aea1cf6e79f6] sched: cpuacct: Use bigger percpu counter batch values for stats counters
git bisect bad cce9676aae624b3dae5f8283f503aea1cf6e79f6

John Baptist (jepst79) wrote :

This version is bad.

Steve Conklin (sconklin) wrote :

I'm sorry it took so long to get you the next one, try this:

Location: http://people.canonical.com/~sconklin/lp743907/
  Version: linux-image-2.6.32-26-generic_2.6.32-26.45~spclp743907b07

git bisect log:

# bad: [eb6f23d8e8efe3f64d4df0383989063d110e9e55] UBUNTU: Ubuntu-2.6.32-26.46
# good: [eb17a015bb76670c0edf0e16eeb81b29c63bc6d6] UBUNTU: Ubuntu-2.6.32-25.45
git bisect start 'Ubuntu-2.6.32-26.46' 'Ubuntu-2.6.32-25.45'
# bad: [71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc] SUNRPC: Fix race corrupting rpc upcall
git bisect bad 71c440c8d3bb0bdbb9d1b266c5ff4c5f3068d9fc
# good: [c666b2d927fee413104218c026fa8bef8964354a] Input: i8042 - fix device removal on unload
git bisect good c666b2d927fee413104218c026fa8bef8964354a
# good: [5109db8ef38ab9c66b0f4089fc98a0daa9a844f8] sched: Fix race between ttwu() and task_rq_lock()
git bisect good 5109db8ef38ab9c66b0f4089fc98a0daa9a844f8
# good: [c9c58488aebd829280f1683b643bb9f35ec5b6c6] sched: Remove unnecessary RCU exclusion
git bisect good c9c58488aebd829280f1683b643bb9f35ec5b6c6
# bad: [cce9676aae624b3dae5f8283f503aea1cf6e79f6] sched: cpuacct: Use bigger percpu counter batch values for stats counters
git bisect bad cce9676aae624b3dae5f8283f503aea1cf6e79f6
# bad: [e7d700b6f8254549769e0f535f9b5b672792c822] sched: Fix vmark regression on big machines
git bisect bad e7d700b6f8254549769e0f535f9b5b672792c822

cicoandcico (cicoandcico) wrote :

John Babtist, could you please report on if https://bugs.launchpad.net/ubuntu/+source/linux/+bug/743907/comments/21 works or not, or if the problem is resolved?

Changed in linux (Ubuntu):
status: Confirmed → Incomplete
saioa (sairis37) on 2014-04-07
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
status: Confirmed → In Progress
status: In Progress → Fix Committed
status: Fix Committed → Fix Released
Steve Langasek (vorlon) on 2014-04-07
Changed in linux (Ubuntu):
status: Fix Released → Incomplete
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers