You are not logged in.

#1 2010-01-27 00:13:05

archwade
Member
Registered: 2010-01-26
Posts: 14

High ksoftiqrd CPU usage after suspend-to-RAM (STR, S3 standby)

After running pm-suspend, I noticed that ksoftirqd is constantly pegged at 100% CPU:

top - 15:50:39 up 5 min,  1 user,  load average: 1.32, 0.41, 0.14
Tasks:  85 total,   2 running,  83 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.3%sy,  0.0%ni, 49.8%id,  0.0%wa,  0.0%hi, 49.7%si,  0.0%st
Mem:    481440k total,    76584k used,   404856k free,     6808k buffers
Swap:  2104472k total,        0k used,  2104472k free,    36948k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    4 root      20   0     0    0    0 R  100  0.0   0:44.00 ksoftirqd/0
 1810 root      40   0  2308 1008  800 R    0  0.2   0:00.06 top
    1 root      40   0  1688  572  508 S    0  0.1   0:00.95 init
    2 root      40   0     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0
    5 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0
    9 root      20   0     0    0    0 S    0  0.0   0:00.00 events/0
(snip)

I tried using oprofile to see what is happening, and I noticed that there are a lot of samples in 'scsi_mod', which seems like something that could be used by ksoftirqd.  Along those lines, I then tried to rmmod certain kernel modules before suspending, and discovered that removing 'sr_mod' before the suspend fixes the problem.

With sr_mod removed, the system comes back from suspend without the ksoftirqd problem.  If I then try to 'modprobe sr_mod', the CLI will never return and from another TTY I can see that the ksoftirqd CPU usage has peaked again.

If anyone has any suggestions or patches to try, please do let me know!  I'm currently running kernel26 2.6.32.4-1 and the same problem was happening with 2.6.32.3.

Details below.

# uname -a
Linux nyx 2.6.32-ARCH #1 SMP PREEMPT Tue Jan 19 06:08:04 UTC 2010 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux

# pacman -Qi kernel26
Name           : kernel26
Version        : 2.6.32.4-1
URL            : http://www.kernel.org
Licenses       : GPL2
Groups         : base
Provides       : None
Depends On     : coreutils  kernel26-firmware>=2.6.32  module-init-tools  mkinitcpio>=0.5.20
Optional Deps  : crda: to set the correct wireless channels of your country
Required By    : None
Conflicts With : None
Replaces       : kernel24  kernel24-scsi  kernel26-scsi  alsa-driver  ieee80211  hostap-driver26  pwc  nforce  squashfs  unionfs  ivtv  zd1211  kvm-modules
                 iwlwifi  rt2x00-cvs  gspcav1  atl2  wlan-ng26  rt2500
Installed Size : 78846.00 K
Packager       : Tobias Powalowski <tpowa@archlinux.org>
Architecture   : i686
Build Date     : Mon 18 Jan 2010 10:10:25 PM PST
Install Date   : Wed 20 Jan 2010 09:42:29 PM PST
Install Reason : Explicitly installed
Install Script : Yes
Description    : The Linux Kernel and modules

Here's pm-suspend.log when sr_mod is loaded:

Initial commandline parameters: 
Tue Jan 26 15:49:44 PST 2010: Running hooks for suspend.
/usr/lib/pm-utils/sleep.d/00auto-quirk suspend suspend: Adding quirks from HAL: --quirk-dpms-on --quirk-dpms-suspend --quirk-vbe-post --quirk-vbemode-restore --quirk-vbestate-restore --quirk-vga-mode-3 
success.
/usr/lib/pm-utils/sleep.d/00logging suspend suspend: Linux nyx 2.6.32-ARCH #1 SMP PREEMPT Tue Jan 19 06:08:04 UTC 2010 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Module                  Size  Used by
ipv6                  237532  12 
ext2                   56463  1 
snd_seq_dummy           1099  0 
snd_seq_oss            25304  0 
snd_seq_midi_event      4452  1 snd_seq_oss
snd_seq                42628  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          4313  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            33693  0 
ohci_hcd               19732  0 
ehci_hcd               31434  0 
sis_agp                 3461  1 
snd_mixer_oss          14810  1 snd_pcm_oss
fan                     2598  0 
8139too                17116  0 
usbcore               118921  3 ohci_hcd,ehci_hcd
agpgart                23331  1 sis_agp
psmouse                55619  0 
snd_intel8x0           21848  0 
battery                 7328  0 
snd_ac97_codec         85937  1 snd_intel8x0
ac                      2255  0 
ac97_bus                 750  1 snd_ac97_codec
snd_pcm                57479  3 snd_pcm_oss,snd_intel8x0,snd_ac97_codec
shpchp                 26592  0 
snd_timer              16117  2 snd_seq,snd_pcm
pcspkr                  1347  0 
thermal                 9326  0 
snd                    43847  9 snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer
processor              25790  0 
button                  3638  0 
lp                      6616  0 
ppdev                   4882  0 
sg                     21079  0 
evdev                   6970  3 
serio_raw               3620  0 
pci_hotplug            23492  1 shpchp
parport_pc             27680  1 
8139cp                 15404  0 
mii                     3218  2 8139too,8139cp
soundcore               5007  1 snd
snd_page_alloc          5809  2 snd_intel8x0,snd_pcm
parport                26575  3 lp,ppdev,parport_pc
rtc_cmos                7504  0 
rtc_core               12011  1 rtc_cmos
rtc_lib                 1450  1 rtc_core
ext3                  113026  2 
jbd                    38906  1 ext3
mbcache                 4278  2 ext2,ext3
raid1                  19711  2 
md_mod                 79780  3 raid1
sd_mod                 24101  7 
sr_mod                 13161  0 
cdrom                  31625  1 sr_mod
pata_sis                7315  5 
ata_generic             2235  0 
pata_acpi               2264  0 
libata                135162  3 pata_sis,ata_generic,pata_acpi
scsi_mod               78933  4 sg,sd_mod,sr_mod,libata
dm_mod                 54323  6 
             total       used       free     shared    buffers     cached
Mem:        481440      76436     405004          0       6764      36660
-/+ buffers/cache:      33012     448428
Swap:      2104472          0    2104472
success.
/usr/lib/pm-utils/sleep.d/00powersave suspend suspend: success.
/usr/lib/pm-utils/sleep.d/01grub suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/11netcfg suspend suspend: success.
/usr/lib/pm-utils/sleep.d/49bluetooth suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/55NetworkManager suspend suspend: success.
/usr/lib/pm-utils/sleep.d/75modules suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/90clock suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/94cpufreq suspend suspend: success.
/usr/lib/pm-utils/sleep.d/95led suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/98smart-kernel-video suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/99video suspend suspend: kernel.acpi_video_flags = 0
Allocated buffer at 0x2010 (base is 0x0)
ES: 0x0201 EBX: 0x0000
success.
Tue Jan 26 15:49:44 PST 2010: performing suspend
Tue Jan 26 15:49:55 PST 2010: Awake.
Tue Jan 26 15:49:55 PST 2010: Running hooks for resume
/usr/lib/pm-utils/sleep.d/99video resume suspend: Function not supported
success.
/usr/lib/pm-utils/sleep.d/98smart-kernel-video resume suspend: success.
/usr/lib/pm-utils/sleep.d/95led resume suspend: not applicable.
/usr/lib/pm-utils/sleep.d/94cpufreq resume suspend: success.
/usr/lib/pm-utils/sleep.d/90clock resume suspend: not applicable.
/usr/lib/pm-utils/sleep.d/75modules resume suspend: success.
/usr/lib/pm-utils/sleep.d/55NetworkManager resume suspend: success.
/usr/lib/pm-utils/sleep.d/49bluetooth resume suspend: not applicable.
/usr/lib/pm-utils/sleep.d/11netcfg resume suspend: success.
/usr/lib/pm-utils/sleep.d/01grub resume suspend: not applicable.
/usr/lib/pm-utils/sleep.d/00powersave resume suspend: success.
/usr/lib/pm-utils/sleep.d/00logging resume suspend: success.
/usr/lib/pm-utils/sleep.d/00auto-quirk resume suspend: success.
Tue Jan 26 15:49:56 PST 2010: Finished.

Here's pm-suspend.log with sr_mod removed:

Initial commandline parameters: 
Tue Jan 26 16:07:51 PST 2010: Running hooks for suspend.
/usr/lib/pm-utils/sleep.d/00auto-quirk suspend suspend: Adding quirks from HAL: --quirk-dpms-on --quirk-dpms-suspend --quirk-vbe-post --quirk-vbemode-restore --quirk-vbestate-restore --quirk-vga-mode-3 
success.
/usr/lib/pm-utils/sleep.d/00logging suspend suspend: Linux nyx 2.6.32-ARCH #1 SMP PREEMPT Tue Jan 19 06:08:04 UTC 2010 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Module                  Size  Used by
ipv6                  237532  12 
ext2                   56463  1 
snd_intel8x0           21848  0 
snd_seq_dummy           1099  0 
snd_ac97_codec         85937  1 snd_intel8x0
snd_seq_oss            25304  0 
snd_seq_midi_event      4452  1 snd_seq_oss
snd_seq                42628  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          4313  3 snd_seq_dummy,snd_seq_oss,snd_seq
fan                     2598  0 
snd_pcm_oss            33693  0 
8139too                17116  0 
ac97_bus                 750  1 snd_ac97_codec
snd_mixer_oss          14810  1 snd_pcm_oss
ppdev                   4882  0 
lp                      6616  0 
battery                 7328  0 
ohci_hcd               19732  0 
psmouse                55619  0 
snd_pcm                57479  3 snd_intel8x0,snd_ac97_codec,snd_pcm_oss
8139cp                 15404  0 
ac                      2255  0 
parport_pc             27680  1 
ehci_hcd               31434  0 
snd_timer              16117  2 snd_seq,snd_pcm
pcspkr                  1347  0 
parport                26575  3 ppdev,lp,parport_pc
sis_agp                 3461  1 
button                  3638  0 
processor              25790  0 
thermal                 9326  0 
agpgart                23331  1 sis_agp
mii                     3218  2 8139too,8139cp
serio_raw               3620  0 
sg                     21079  0 
shpchp                 26592  0 
usbcore               118921  3 ohci_hcd,ehci_hcd
evdev                   6970  3 
snd                    43847  9 snd_intel8x0,snd_ac97_codec,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
soundcore               5007  1 snd
snd_page_alloc          5809  2 snd_intel8x0,snd_pcm
pci_hotplug            23492  1 shpchp
rtc_cmos                7504  0 
rtc_core               12011  1 rtc_cmos
rtc_lib                 1450  1 rtc_core
ext3                  113026  2 
jbd                    38906  1 ext3
mbcache                 4278  2 ext2,ext3
raid1                  19711  2 
md_mod                 79780  3 raid1
cdrom                  31625  0 
sd_mod                 24101  7 
pata_sis                7315  5 
ata_generic             2235  0 
pata_acpi               2264  0 
libata                135162  3 pata_sis,ata_generic,pata_acpi
scsi_mod               78933  3 sg,sd_mod,libata
dm_mod                 54323  6 
             total       used       free     shared    buffers     cached
Mem:        481440      95964     385476          0       7532      51876
-/+ buffers/cache:      36556     444884
Swap:      2104472          0    2104472
success.
/usr/lib/pm-utils/sleep.d/00powersave suspend suspend: success.
/usr/lib/pm-utils/sleep.d/01grub suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/11netcfg suspend suspend: success.
/usr/lib/pm-utils/sleep.d/49bluetooth suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/55NetworkManager suspend suspend: success.
/usr/lib/pm-utils/sleep.d/75modules suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/90clock suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/94cpufreq suspend suspend: success.
/usr/lib/pm-utils/sleep.d/95led suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/98smart-kernel-video suspend suspend: not applicable.
/usr/lib/pm-utils/sleep.d/99video suspend suspend: kernel.acpi_video_flags = 0
Allocated buffer at 0x2010 (base is 0x0)
ES: 0x0201 EBX: 0x0000
success.
Tue Jan 26 16:07:52 PST 2010: performing suspend
Tue Jan 26 16:08:08 PST 2010: Awake.
Tue Jan 26 16:08:08 PST 2010: Running hooks for resume
/usr/lib/pm-utils/sleep.d/99video resume suspend: Function not supported
success.
/usr/lib/pm-utils/sleep.d/98smart-kernel-video resume suspend: success.
/usr/lib/pm-utils/sleep.d/95led resume suspend: not applicable.
/usr/lib/pm-utils/sleep.d/94cpufreq resume suspend: success.
/usr/lib/pm-utils/sleep.d/90clock resume suspend: not applicable.
/usr/lib/pm-utils/sleep.d/75modules resume suspend: success.
/usr/lib/pm-utils/sleep.d/55NetworkManager resume suspend: success.
/usr/lib/pm-utils/sleep.d/49bluetooth resume suspend: not applicable.
/usr/lib/pm-utils/sleep.d/11netcfg resume suspend: success.
/usr/lib/pm-utils/sleep.d/01grub resume suspend: not applicable.
/usr/lib/pm-utils/sleep.d/00powersave resume suspend: success.
/usr/lib/pm-utils/sleep.d/00logging resume suspend: success.
/usr/lib/pm-utils/sleep.d/00auto-quirk resume suspend: success.
Tue Jan 26 16:08:09 PST 2010: Finished.

Offline

#2 2010-01-28 02:59:26

archwade
Member
Registered: 2010-01-26
Posts: 14

Re: High ksoftiqrd CPU usage after suspend-to-RAM (STR, S3 standby)

Just for an update, the problem is still happening on kernel 2.6.32.6-1:

# uname -a
Linux nyx 2.6.32-ARCH #1 SMP PREEMPT Mon Jan 25 20:06:48 UTC 2010 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux

# pacman -Qi kernel26
Name           : kernel26
Version        : 2.6.32.6-1
URL            : http://www.kernel.org
Licenses       : GPL2
Groups         : base
Provides       : None
Depends On     : coreutils  kernel26-firmware>=2.6.32  module-init-tools  mkinitcpio>=0.5.20
Optional Deps  : crda: to set the correct wireless channels of your country
Required By    : None
Conflicts With : None
Replaces       : kernel24  kernel24-scsi  kernel26-scsi  alsa-driver  ieee80211  hostap-driver26  pwc  nforce  squashfs  unionfs
                 ivtv  zd1211  kvm-modules  iwlwifi  rt2x00-cvs  gspcav1  atl2  wlan-ng26  rt2500
Installed Size : 78670.00 K
Packager       : Tobias Powalowski <tpowa@archlinux.org>
Architecture   : i686
Build Date     : Mon 25 Jan 2010 12:09:08 PM PST
Install Date   : Wed 27 Jan 2010 06:42:40 PM PST
Install Reason : Explicitly installed
Install Script : Yes
Description    : The Linux Kernel and modules

Offline

#3 2010-02-06 15:43:14

cf8
Member
From: Russia
Registered: 2008-10-21
Posts: 83

Re: High ksoftiqrd CPU usage after suspend-to-RAM (STR, S3 standby)

Hello, archwade
I have similar problem. Try to create /etc/pm/sleep.d/66dummy with the following:

#!/bin/bash
case $1 in
    hibernate)
                modprobe -r sr_mod
        ;;
    suspend)
                modprobe -r sr_mod
        ;;
    *)  echo "somebody is calling me totally wrong."
        ;;
esac

For me it resolves the problem.

Offline

Board footer

Powered by FluxBB