Bug 511211 - cpuspeed behave strangely after suspend/resume on intel machine hp-dl580g5-01.rhts.bos.redhat.com
cpuspeed behave strangely after suspend/resume on intel machine hp-dl580g5-01...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel (Show other bugs)
5.4
x86_64 Linux
medium Severity high
: rc
: ---
Assigned To: Prarit Bhargava
Red Hat Kernel QE team
:
Depends On:
Blocks: 533192 526775
  Show dependency treegraph
 
Reported: 2009-07-14 05:00 EDT by Zhang Kexin
Modified: 2013-01-10 03:00 EST (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 513472 (view as bug list)
Environment:
Last Closed: 2010-03-30 03:38:44 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
cpuinfo of rhts machine hp-dl580g5-01.rhts.bos.redhat.com (10.00 KB, application/octet-stream)
2009-07-14 05:03 EDT, Zhang Kexin
no flags Details
RHEL5 fix for this issue (889 bytes, patch)
2009-08-03 11:09 EDT, Prarit Bhargava
no flags Details | Diff

  None (edit)
Description Zhang Kexin 2009-07-14 05:00:02 EDT
Description of problem:
on intel machine hp-dl580g5-01.rhts.bos.redhat.com, after suspend/resume, some of /sys/devices/system/cpu/cpu*/cpufreq files disappear.

Version-Release number of selected component (if applicable):
cpuspeed-1.2.1-8.el5

How reproducible:
always

Steps to Reproduce:
1.echo disk > /sys/power/state
2.resume the machine
3.ls  /sys/devices/system/cpu/cpu*/cpufreq
  
Actual results:

/sys/devices/system/cpu/cpu0/cpufreq:
affected_cpus     ondemand                       scaling_cur_freq  scaling_max_freq
cpuinfo_max_freq  scaling_available_frequencies  scaling_driver    scaling_min_freq
cpuinfo_min_freq  scaling_available_governors    scaling_governor

/sys/devices/system/cpu/cpu12/cpufreq:
affected_cpus     ondemand                       scaling_cur_freq  scaling_max_freq
cpuinfo_max_freq  scaling_available_frequencies  scaling_driver    scaling_min_freq
cpuinfo_min_freq  scaling_available_governors    scaling_governor

/sys/devices/system/cpu/cpu1/cpufreq:
affected_cpus     ondemand                       scaling_cur_freq  scaling_max_freq
cpuinfo_max_freq  scaling_available_frequencies  scaling_driver    scaling_min_freq
cpuinfo_min_freq  scaling_available_governors    scaling_governor

/sys/devices/system/cpu/cpu2/cpufreq:
affected_cpus     ondemand                       scaling_cur_freq  scaling_max_freq
cpuinfo_max_freq  scaling_available_frequencies  scaling_driver    scaling_min_freq
cpuinfo_min_freq  scaling_available_governors    scaling_governor

/sys/devices/system/cpu/cpu3/cpufreq:
affected_cpus     ondemand                       scaling_cur_freq  scaling_max_freq
cpuinfo_max_freq  scaling_available_frequencies  scaling_driver    scaling_min_freq
cpuinfo_min_freq  scaling_available_governors    scaling_governor

/sys/devices/system/cpu/cpu4/cpufreq:
affected_cpus     ondemand                       scaling_cur_freq  scaling_max_freq
cpuinfo_max_freq  scaling_available_frequencies  scaling_driver    scaling_min_freq
cpuinfo_min_freq  scaling_available_governors    scaling_governor

/sys/devices/system/cpu/cpu8/cpufreq:
affected_cpus     ondemand                       scaling_cur_freq  scaling_max_freq
cpuinfo_max_freq  scaling_available_frequencies  scaling_driver    scaling_min_freq
cpuinfo_min_freq  scaling_available_governors    scaling_governor

Expected results:
all cpus (cpu0~cpu15) should list cpufreq

Additional info:
on AMD machine dell-per905-01.rhts.bos.redhat.com does not have this problem.
Comment 1 Zhang Kexin 2009-07-14 05:03:48 EDT
Created attachment 351564 [details]
cpuinfo of rhts machine hp-dl580g5-01.rhts.bos.redhat.com
Comment 2 Zhang Kexin 2009-07-14 05:05:45 EDT
for all following kernels I installed, same thing happens.

kernel-2.6.18-128.el5
kernel-2.6.18-157.el5
kernel-2.6.18-141.el5
Comment 3 Jarod Wilson 2009-07-14 09:19:03 EDT
This sounds more like a kernel issue than a cpuspeed package issue.
Comment 4 Jarod Wilson 2009-07-14 09:19:39 EDT
...the heck? I swear I said "kernel", not "kdepim"... fixing...
Comment 5 Prarit Bhargava 2009-07-22 09:01:34 EDT
>1.echo disk > /sys/power/state
>2.resume the machine

Kexin, what did you do to resume the machine?

Thanks,

P.
Comment 6 Zhang Kexin 2009-07-22 22:30:02 EDT
click on the "reboot" button on the http://lab.rhts.bos.redhat.com/cgi-bin/rhts/system.cgi?id=1112
it is through power switch?
Comment 7 Prarit Bhargava 2009-07-23 08:25:50 EDT
(In reply to comment #6)
> click on the "reboot" button on the
> http://lab.rhts.bos.redhat.com/cgi-bin/rhts/system.cgi?id=1112
> it is through power switch?  

Yes, I always thought that did a hard rest of the system.  I'll ask in #rhts ...

P.
Comment 8 Prarit Bhargava 2009-07-23 13:29:57 EDT
Kexin,

The sequence is:

1. use console to access system console
2.

[root@hp-dl580g5-01 sys]# find ./ -name *cpufreq* > /tmp/before
[root@hp-dl580g5-01 sys]# cat /tmp/before 
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu15/cpufreq
./devices/system/cpu/cpu14/cpufreq
./devices/system/cpu/cpu13/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu11/cpufreq
./devices/system/cpu/cpu10/cpufreq
./devices/system/cpu/cpu9/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu7/cpufreq
./devices/system/cpu/cpu6/cpufreq
./devices/system/cpu/cpu5/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq

3.  echo disk > /sys/power/state
4.  let system go to sleep
5.  resume by pressing a few keys on the system console
6.

[root@hp-dl580g5-01 sys]# find ./ -name *cpufreq*
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq

I'll have to put some code in to determine why the files didn't "return" after the resume.

P.
Comment 9 Prarit Bhargava 2009-07-23 13:40:53 EDT
Actually, it doesn't look like the system is entering suspend at all:

CPU6 is down
CPU 7 is now offline
CPU7 is down
CPU 8 is now offline
CPU8 is down
CPU 9 is now offline
CPU9 is down
CPU 10 is now offline
CPU10 is down
CPU 11 is now offline
CPU11 is down
CPU 12 is now offline
CPU12 is down
Breaking affinity for irq 59
CPU 13 is now offline
CPU13 is down
Breaking affinity for irq 14
CPU 14 is now offline
CPU14 is down
Breaking affinity for irq 75
CPU 15 is now offline
CPU15 is down
Stopping tasks: ======================================================================
 stopping tasks timed out after 20 seconds (1 tasks remaining):
  cciss_scan00
Restarting tasks...<6> Strange, cciss_scan00 not stopped
 done
Enabling non-boot CPUs ...
 
Initializing CPU#1
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU1 is up

P.
Comment 10 Prarit Bhargava 2009-07-23 13:47:37 EDT
Suspend works in -128.el5 (RHEL5.3 kernel).  I'm going to do a bit of debugging to figure out why the cciss_scan00 thread isn't stopping.

P.
Comment 11 Prarit Bhargava 2009-07-23 15:41:16 EDT
Opened 513472 to track the cciss issue.  Now back to this bug -- it looks like the missing sysfs file problem occurs in 5.3 (128.el5) as well.

Therefore not a regression or a blocker, but still needs to be fixed.

I'm going to push this to 5.5.

P.
Comment 12 Prarit Bhargava 2009-07-29 09:43:03 EDT
This seems to hit quite a few systems so it is not specific to this system.

Raising the priority and severity.

What is odd is that the first physical package seems to be working properly (cpus 0,4,8,12) and the other packages' first cpu are working properly (1,2,3).

Maybe a race of some sort... looking into it now.

P.
Comment 13 Prarit Bhargava 2009-07-30 14:49:57 EDT
Here's what the issue is and it is a race in the code.  During regular
boot-up all the cpus are online.  But during a resume, they are not.  There's
a check in the code to determine if the cpus are online, and if they are
offline we do not repopulate part of the cpufreq sysfs.

Offending codepath is

drivers/cpufreq/cpufreq.c: line 806

        /* symlink affected CPUs */
        for_each_cpu_mask(j, policy->cpus) {
                if (j == cpu)
                        continue;
                if (!cpu_online(j))  <-----------  resume codepath bails here.
                        continue;

                dprintk("CPU %u already managed, adding link\n", j);
                cpufreq_cpu_get(cpu);
                cpu_sys_dev = get_cpu_sysdev(j);
                sysfs_create_link(&cpu_sys_dev->kobj, &policy->kobj,
                                  "cpufreq");
        }

I have a few ideas on how to fix this, but first I need to see if this same issue hits upstream.  AFAICT it does, but I want to be sure they haven't fixed it in some other way.

P.
Comment 14 Prarit Bhargava 2009-07-30 14:52:40 EDT
Dave Jones is to blame :)  (joking ... just kidding around)

upstream commit 8ff69732d484ea9ccbf242cc49b4fe9538e64c71

P.
Comment 15 Prarit Bhargava 2009-08-03 10:44:52 EDT
Found the issue.  The cpufreq code sets the per_cpu policy_cpu value when the logical cpu is offline.  The code should not do this.

(Sorry for the cut-and-paste)

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 47442d4..5621123 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -798,6 +798,8 @@ static int cpufreq_add_dev (struct sys_device * sys_dev)
 
        spin_lock_irqsave(&cpufreq_driver_lock, flags);
        for_each_cpu_mask(j, policy->cpus) {
+               if (!cpu_online(j))
+                       continue;
                cpufreq_cpu_data[j] = policy;
                per_cpu(policy_cpu, j) = policy->cpu;
        }

fixes the issue.

I wrote a script to automate the suspend/resume:

#!/bin/bash
echo "BEFORE"
echo " "
(cd /sys; find ./ -name *cpufreq*)
sysctl -w kernel.printk=8
echo disk > /sys/power/state
echo "AFTER"
echo " "
(cd /sys; find ./ -name *cpufreq*)


BEFORE THE PATCH ABOVE WAS APPLIED:
----------------------------------

BEFORE
 
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu15/cpufreq
./devices/system/cpu/cpu14/cpufreq
./devices/system/cpu/cpu13/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu11/cpufreq
./devices/system/cpu/cpu10/cpufreq
./devices/system/cpu/cpu9/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu7/cpufreq
./devices/system/cpu/cpu6/cpufreq
./devices/system/cpu/cpu5/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq
kernel.printk = 8
./doit: line 6: echo: write error: Device or resource busy
AFTER
 
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq

cpufreq fails to work because of missing sysfs files.

AFTER THE PATCH ABOVE WAS APPLIED:
----------------------------------

BEFORE
 
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu15/cpufreq
./devices/system/cpu/cpu14/cpufreq
./devices/system/cpu/cpu13/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu11/cpufreq
./devices/system/cpu/cpu10/cpufreq
./devices/system/cpu/cpu9/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu7/cpufreq
./devices/system/cpu/cpu6/cpufreq
./devices/system/cpu/cpu5/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq
kernel.printk = 8
./doit: line 6: echo: write error: Device or resource busy
AFTER
 
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu15/cpufreq
./devices/system/cpu/cpu14/cpufreq
./devices/system/cpu/cpu13/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu11/cpufreq
./devices/system/cpu/cpu10/cpufreq
./devices/system/cpu/cpu9/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu7/cpufreq
./devices/system/cpu/cpu6/cpufreq
./devices/system/cpu/cpu5/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq

and cpufreq works correctly.

P.
Comment 16 Prarit Bhargava 2009-08-03 10:45:35 EDT
I can reproduce this upstream as well.

Pushing to lkml.

P.
Comment 17 Prarit Bhargava 2009-08-03 11:09:21 EDT
Created attachment 356050 [details]
RHEL5 fix for this issue
Comment 18 RHEL Product and Program Management 2009-09-25 13:38:20 EDT
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
release.
Comment 19 Don Zickus 2009-10-06 15:38:30 EDT
in kernel-2.6.18-168.el5
You can download this test kernel from http://people.redhat.com/dzickus/el5

Please do NOT transition this bugzilla state to VERIFIED until our QE team
has sent specific instructions indicating when to do so.  However feel free
to provide a comment indicating that this fix has been verified.
Comment 21 michal novacek 2010-03-18 05:49:12 EDT
Did you guys have a machine that has processors with cpu frequency scaling and at the same time will resume after sleeping to disk (echo disk > /sys/power/state) I could test on?
Comment 24 Jan Tluka 2010-03-25 10:34:13 EDT
Reproduced on -164.el5 kernel:

[root@hp-dl580g5-01 ~]# ./repro.sh 
BEFORE
 
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu15/cpufreq
./devices/system/cpu/cpu14/cpufreq
./devices/system/cpu/cpu13/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu11/cpufreq
./devices/system/cpu/cpu10/cpufreq
./devices/system/cpu/cpu9/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu7/cpufreq
./devices/system/cpu/cpu6/cpufreq
./devices/system/cpu/cpu5/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq
kernel.printk = 8
Disabling non-boot CPUs ...
CPU 1 is now offline
CPU1 is down
CPU 2 is now offline
CPU2 is down
CPU 3 is now offline
CPU3 is down
CPU 4 is now offline
CPU4 is down
CPU 5 is now offline
CPU5 is down
CPU 6 is now offline
CPU6 is down
CPU 7 is now offline
CPU7 is down
CPU 8 is now offline
CPU8 is down
CPU 9 is now offline
CPU9 is down
CPU 10 is now offline
CPU10 is down
CPU 11 is now offline
CPU11 is down
Breaking affinity for irq 4
Breaking affinity for irq 14
Breaking affinity for irq 59
Breaking affinity for irq 75
CPU 12 is now offline
CPU12 is down
CPU 13 is now offline
CPU13 is down
CPU 14 is now offline
CPU14 is down
CPU 15 is now offline
SMP alternatives: switching to UP code
CPU15 is down
Stopping tasks: =================================================================================
 stopping tasks timed out after 20 seconds (1 tasks remaining):
  cciss_scan00
Restarting tasks...<6> Strange, cciss_scan00 not stopped
 done
Enabling non-boot CPUs ...
SMP alternatives: switching to SMP code
Booting processor 1/16 APIC 0x8
Initializing CPU#1
Calibrating delay using timer specific routine.. 4800.31 BogoMIPS (lpj=2400155)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 2
CPU: Processor Core ID: 0
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU1 is up
SMP alternatives: switching to SMP code
Booting processor 2/16 APIC 0x10
sInitializing CPU#2
Calibrating delay using timer specific routine.. 4786.71 BogoMIPS (lpj=2393359)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 4
CPU: Processor Core ID: 0
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU2 is up
tSMP alternatives: switching to SMP code
Booting processor 3/16 APIC 0x18
Initializing CPU#3
Calibrating delay using timer specific routine.. 4800.83 BogoMIPS (lpj=2400419)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 6
CPU: Processor Core ID: 0
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU3 is up
SMP alternatives: switching to SMP code
Booting processor 4/16 APIC 0x1
Initializing CPU#4
Calibrating delay using timer specific routine.. 4800.29 BogoMIPS (lpj=2400147)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU4 is up
SMP alternatives: switching to SMP code
Booting processor 5/16 APIC 0x9
Initializing CPU#5
Calibrating delay using timer specific routine.. 4800.67 BogoMIPS (lpj=2400335)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 2
CPU: Processor Core ID: 1
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU5 is up
SMP alternatives: switching to SMP code
Booting processor 6/16 APIC 0x11
Initializing CPU#6
Calibrating delay using timer specific routine.. 4800.16 BogoMIPS (lpj=2400082)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 4
CPU: Processor Core ID: 1
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU6 is up
SMP alternatives: switching to SMP code
Booting processor 7/16 APIC 0x19
Initializing CPU#7
Calibrating delay using timer specific routine.. 4800.25 BogoMIPS (lpj=2400128)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 6
CPU: Processor Core ID: 1
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU7 is up
SMP alternatives: switching to SMP code
Booting processor 8/16 APIC 0x2
Initializing CPU#8
Calibrating delay using timer specific routine.. 4800.13 BogoMIPS (lpj=2400068)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU8 is up
SMP alternatives: switching to SMP code
Booting processor 9/16 APIC 0xa
Initializing CPU#9
Calibrating delay using timer specific routine.. 4800.24 BogoMIPS (lpj=2400123)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 2
CPU: Processor Core ID: 2
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU9 is up
SMP alternatives: switching to SMP code
Booting processor 10/16 APIC 0x12
Initializing CPU#10
Calibrating delay using timer specific routine.. 4799.78 BogoMIPS (lpj=2399893)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 4
CPU: Processor Core ID: 2
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU10 is up
SMP alternatives: switching to SMP code
Booting processor 11/16 APIC 0x1a
Initializing CPU#11
Calibrating delay using timer specific routine.. 4800.50 BogoMIPS (lpj=2400251)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 6
CPU: Processor Core ID: 2
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU11 is up
SMP alternatives: switching to SMP code
Booting processor 12/16 APIC 0x3
Initializing CPU#12
Calibrating delay using timer specific routine.. 4799.93 BogoMIPS (lpj=2399967)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU12 is up
SMP alternatives: switching to SMP code
Booting processor 13/16 APIC 0xb
Initializing CPU#13
Calibrating delay using timer specific routine.. 4800.70 BogoMIPS (lpj=2400354)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 2
CPU: Processor Core ID: 3
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU13 is up
SMP alternatives: switching to SMP code
Booting processor 14/16 APIC 0x13
Initializing CPU#14
Calibrating delay using timer specific routine.. 4800.16 BogoMIPS (lpj=2400081)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 4
CPU: Processor Core ID: 3
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU14 is up
SMP alternatives: switching to SMP code
Booting processor 15/16 APIC 0x1b
Initializing CPU#15
Calibrating delay using timer specific routine.. 4800.23 BogoMIPS (lpj=2400115)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 6
CPU: Processor Core ID: 3
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU15 is up
./repro.sh: line 6: echo: write error: Device or resource busy
AFTER
 
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq
[root@hp-dl580g5-01 ~]# 




Verified on -194.el5 kernel: 

[root@hp-dl580g5-01 ~]# ./repro.sh 
BEFORE
 
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu15/cpufreq
./devices/system/cpu/cpu14/cpufreq
./devices/system/cpu/cpu13/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu11/cpufreq
./devices/system/cpu/cpu10/cpufreq
./devices/system/cpu/cpu9/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu7/cpufreq
./devices/system/cpu/cpu6/cpufreq
./devices/system/cpu/cpu5/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq
kernel.printk = 8
Disabling non-boot CPUs ...
CPU 1 is now offline
CPU1 is down
CPU 2 is now offline
CPU2 is down
CPU 3 is now offline
CPU3 is down
CPU 4 is now offline
CPU4 is down
CPU 5 is now offline
CPU5 is down
CPU 6 is now offline
CPU6 is down
CPU 7 is now offline
CPU7 is down
CPU 8 is now offline
CPU8 is down
CPU 9 is now offline
CPU9 is down
CPU 10 is now offline
CPU10 is down
CPU 11 is now offline
CPU11 is down
Breaking affinity for irq 4
Breaking affinity for irq 14
Breaking affinity for irq 59
Breaking affinity for irq 75
CPU 12 is now offline
CPU12 is down
CPU 13 is now offline
CPU13 is down
CPU 14 is now offline
CPU14 is down
CPU 15 is now offline
SMP alternatives: switching to UP code
CPU15 is down
Stopping tasks: ===========================================================================================================
 stopping tasks timed out after 120 seconds (1 tasks remaining):
  cciss_scan00
Restarting tasks...<6> Strange, cciss_scan00 not stopped
 done
Enabling non-boot CPUs ...
SMP alternatives: switching to SMP code
Booting processor 1/16 APIC 0x8
Initializing CPU#1
Calibrating delay using timer specific routine.. 4800.17 BogoMIPS (lpj=2400087)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 2
CPU: Processor Core ID: 0
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU1 is up
SMP alternatives: switching to SMP code
Booting processor 2/16 APIC 0x10
Initializing CPU#2
Calibrating delay using timer specific routine.. 4800.20 BogoMIPS (lpj=2400104)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 4
CPU: Processor Core ID: 0
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU2 is up
SMP alternatives: switching to SMP code
Booting processor 3/16 APIC 0x18
Initializing CPU#3
Calibrating delay using timer specific routine.. 4800.45 BogoMIPS (lpj=2400229)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 6
CPU: Processor Core ID: 0
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU3 is up
SMP alternatives: switching to SMP code
Booting processor 4/16 APIC 0x1
Initializing CPU#4
Calibrating delay using timer specific routine.. 4854.47 BogoMIPS (lpj=2427236)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU4 is up
SMP alternatives: switching to SMP code
Booting processor 5/16 APIC 0x9
Initializing CPU#5
Calibrating delay using timer specific routine.. 4800.16 BogoMIPS (lpj=2400084)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 2
CPU: Processor Core ID: 1
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU5 is up
SMP alternatives: switching to SMP code
Booting processor 6/16 APIC 0x11
Initializing CPU#6
Calibrating delay using timer specific routine.. 4800.15 BogoMIPS (lpj=2400079)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 4
CPU: Processor Core ID: 1
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU6 is up
SMP alternatives: switching to SMP code
Booting processor 7/16 APIC 0x19
Initializing CPU#7
Calibrating delay using timer specific routine.. 4800.63 BogoMIPS (lpj=2400315)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 6
CPU: Processor Core ID: 1
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU7 is up
SMP alternatives: switching to SMP code
Booting processor 8/16 APIC 0x2
Initializing CPU#8
Calibrating delay using timer specific routine.. 4800.14 BogoMIPS (lpj=2400073)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 2
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU8 is up
SMP alternatives: switching to SMP code
Booting processor 9/16 APIC 0xa
Initializing CPU#9
Calibrating delay using timer specific routine.. 4800.15 BogoMIPS (lpj=2400077)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 2
CPU: Processor Core ID: 2
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU9 is up
SMP alternatives: switching to SMP code
Booting processor 10/16 APIC 0x12
Initializing CPU#10
Calibrating delay using timer specific routine.. 4800.63 BogoMIPS (lpj=2400319)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 4
CPU: Processor Core ID: 2
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU10 is up
SMP alternatives: switching to SMP code
Booting processor 11/16 APIC 0x1a
Initializing CPU#11
Calibrating delay using timer specific routine.. 4800.05 BogoMIPS (lpj=2400027)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 6
CPU: Processor Core ID: 2
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU11 is up
SMP alternatives: switching to SMP code
Booting processor 12/16 APIC 0x3
Initializing CPU#12
Calibrating delay using timer specific routine.. 4800.14 BogoMIPS (lpj=2400073)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 3
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU12 is up
SMP alternatives: switching to SMP code
Booting processor 13/16 APIC 0xb
Initializing CPU#13
Calibrating delay using timer specific routine.. 4800.04 BogoMIPS (lpj=2400020)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 2
CPU: Processor Core ID: 3
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU13 is up
SMP alternatives: switching to SMP code
Booting processor 14/16 APIC 0x13
Initializing CPU#14
Calibrating delay using timer specific routine.. 4800.12 BogoMIPS (lpj=2400064)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 4
CPU: Processor Core ID: 3
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU14 is up
SMP alternatives: switching to SMP code
Booting processor 15/16 APIC 0x1b
Initializing CPU#15
Calibrating delay using timer specific routine.. 4799.98 BogoMIPS (lpj=2399993)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU: Physical Processor ID: 6
CPU: Processor Core ID: 3
Intel(R) Xeon(R) CPU           E7340  @ 2.40GHz stepping 0b
CPU15 is up
./repro.sh: line 6: echo: write error: Device or resource busy
AFTER
 
./module/cpufreq_ondemand
./module/acpi_cpufreq
./module/cpufreq
./devices/system/cpu/cpu15/cpufreq
./devices/system/cpu/cpu14/cpufreq
./devices/system/cpu/cpu13/cpufreq
./devices/system/cpu/cpu12/cpufreq
./devices/system/cpu/cpu11/cpufreq
./devices/system/cpu/cpu10/cpufreq
./devices/system/cpu/cpu9/cpufreq
./devices/system/cpu/cpu8/cpufreq
./devices/system/cpu/cpu7/cpufreq
./devices/system/cpu/cpu6/cpufreq
./devices/system/cpu/cpu5/cpufreq
./devices/system/cpu/cpu4/cpufreq
./devices/system/cpu/cpu3/cpufreq
./devices/system/cpu/cpu2/cpufreq
./devices/system/cpu/cpu1/cpufreq
./devices/system/cpu/cpu0/cpufreq
[root@hp-dl580g5-01 ~]#
Comment 25 errata-xmlrpc 2010-03-30 03:38:44 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2010-0178.html

Note You need to log in before you can comment on or make changes to this bug.