Hi;
With kernel-2.6.18, "modprobe cpufreq_stats" always (i can reproduce) gaves
following;
...
Lukewarm IQ detected in hotplug locking
BUG: warning at kernel/cpu.c:38/lock_cpu_hotplug()
[<b0134a42>] lock_cpu_hotplug+0x42/0x65
[<b02f8af1>] cpufreq_update_policy+0x25/0xad
[<b0358756>] kprobe_flush_task+0x18/0x40
[<b0355aab>] schedule+0x63f/0x68b
[<b01377c2>] __link_module+0x0/0x1f
[<b0119e7d>] __cond_resched+0x16/0x34
[<b03560bf>] cond_resched+0x26/0x31
[<b0355b0e>] wait_for_completion+0x17/0xb1
[<f965c547>] cpufreq_stat_cpu_callback+0x13/0x20 [cpufreq_stats]
[<f9670074>] cpufreq_stats_init+0x74/0x8b [cpufreq_stats]
[<b0137872>] sys_init_module+0x91/0x174
[<b0102c81>] sysenter_past_esp+0x56/0x79
on
zangetsu ~ # cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : Intel(R) Pentium(R) M processor 1.73GHz
stepping : 8
cpu MHz : 1733.000
cache size : 2048 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up est tm2
bogomips : 3460.58
If needed i can gave more info/config etc.
Cheers
--
S.Çağlar Onur <[email protected]>
http://cekirdek.pardus.org.tr/~caglar/
Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
On Sat, Sep 23, 2006 at 01:45:16AM +0300, S.Çağlar Onur wrote:
> Hi;
>
> With kernel-2.6.18, "modprobe cpufreq_stats" always (i can reproduce) gaves
> following;
>
> ...
> Lukewarm IQ detected in hotplug locking
> BUG: warning at kernel/cpu.c:38/lock_cpu_hotplug()
> [<b0134a42>] lock_cpu_hotplug+0x42/0x65
> [<b02f8af1>] cpufreq_update_policy+0x25/0xad
> [<b0358756>] kprobe_flush_task+0x18/0x40
> [<b0355aab>] schedule+0x63f/0x68b
> [<b01377c2>] __link_module+0x0/0x1f
> [<b0119e7d>] __cond_resched+0x16/0x34
> [<b03560bf>] cond_resched+0x26/0x31
> [<b0355b0e>] wait_for_completion+0x17/0xb1
> [<f965c547>] cpufreq_stat_cpu_callback+0x13/0x20 [cpufreq_stats]
> [<f9670074>] cpufreq_stats_init+0x74/0x8b [cpufreq_stats]
> [<b0137872>] sys_init_module+0x91/0x174
> [<b0102c81>] sysenter_past_esp+0x56/0x79
Ah yes, cpufreq vs hotplug cpu locking. The eternal battle continues.
Andrew, did we arrive at concensus about how we should fix this?
I'm still of the opinion that it should be ripped out
completely, and started from scratch.
Dave
On Sat, Sep 23, 2006 at 01:45:16AM +0300, S.Çağlar Onur wrote:
> Hi;
>
> With kernel-2.6.18, "modprobe cpufreq_stats" always (i can reproduce) gaves
> following;
>
> ...
> Lukewarm IQ detected in hotplug locking
> BUG: warning at kernel/cpu.c:38/lock_cpu_hotplug()
> [<b0134a42>] lock_cpu_hotplug+0x42/0x65
> [<b02f8af1>] cpufreq_update_policy+0x25/0xad
> [<b0358756>] kprobe_flush_task+0x18/0x40
> [<b0355aab>] schedule+0x63f/0x68b
> [<b01377c2>] __link_module+0x0/0x1f
> [<b0119e7d>] __cond_resched+0x16/0x34
> [<b03560bf>] cond_resched+0x26/0x31
> [<b0355b0e>] wait_for_completion+0x17/0xb1
> [<f965c547>] cpufreq_stat_cpu_callback+0x13/0x20 [cpufreq_stats]
> [<f9670074>] cpufreq_stats_init+0x74/0x8b [cpufreq_stats]
> [<b0137872>] sys_init_module+0x91/0x174
> [<b0102c81>] sysenter_past_esp+0x56/0x79
This should do the trick.
I'll merge the same patch into cpufreq.git
Dave
--- linux-2.6.18.noarch/drivers/cpufreq/cpufreq_stats.c~ 2006-09-22 19:12:57.000000000 -0400
+++ linux-2.6.18.noarch/drivers/cpufreq/cpufreq_stats.c 2006-09-22 19:13:03.000000000 -0400
@@ -350,12 +350,10 @@ __init cpufreq_stats_init(void)
}
register_hotcpu_notifier(&cpufreq_stat_cpu_notifier);
- lock_cpu_hotplug();
for_each_online_cpu(cpu) {
cpufreq_stat_cpu_callback(&cpufreq_stat_cpu_notifier, CPU_ONLINE,
(void *)(long)cpu);
}
- unlock_cpu_hotplug();
return 0;
}
static void
--
http://www.codemonkey.org.uk
23 Eyl 2006 Cts 02:13 tarihinde, Dave Jones şunları yazmıştı:
> On Sat, Sep 23, 2006 at 01:45:16AM +0300, S.Çağlar Onur wrote:
> > Hi;
> >
> > With kernel-2.6.18, "modprobe cpufreq_stats" always (i can reproduce)
> > gaves following;
> >
> > ...
> > Lukewarm IQ detected in hotplug locking
> > BUG: warning at kernel/cpu.c:38/lock_cpu_hotplug()
> > [<b0134a42>] lock_cpu_hotplug+0x42/0x65
> > [<b02f8af1>] cpufreq_update_policy+0x25/0xad
> > [<b0358756>] kprobe_flush_task+0x18/0x40
> > [<b0355aab>] schedule+0x63f/0x68b
> > [<b01377c2>] __link_module+0x0/0x1f
> > [<b0119e7d>] __cond_resched+0x16/0x34
> > [<b03560bf>] cond_resched+0x26/0x31
> > [<b0355b0e>] wait_for_completion+0x17/0xb1
> > [<f965c547>] cpufreq_stat_cpu_callback+0x13/0x20 [cpufreq_stats]
> > [<f9670074>] cpufreq_stats_init+0x74/0x8b [cpufreq_stats]
> > [<b0137872>] sys_init_module+0x91/0x174
> > [<b0102c81>] sysenter_past_esp+0x56/0x79
>
> This should do the trick.
> I'll merge the same patch into cpufreq.git
>
> Dave
Ill try
> --- linux-2.6.18.noarch/drivers/cpufreq/cpufreq_stats.c~ 2006-09-22
> 19:12:57.000000000 -0400 +++
> linux-2.6.18.noarch/drivers/cpufreq/cpufreq_stats.c 2006-09-22
> 19:13:03.000000000 -0400 @@ -350,12 +350,10 @@ __init
> cpufreq_stats_init(void)
> }
>
> register_hotcpu_notifier(&cpufreq_stat_cpu_notifier);
> - lock_cpu_hotplug();
> for_each_online_cpu(cpu) {
> cpufreq_stat_cpu_callback(&cpufreq_stat_cpu_notifier, CPU_ONLINE,
> (void *)(long)cpu);
> }
> - unlock_cpu_hotplug();
> return 0;
> }
> static void
What about cpufreq_stats_exit, it has same locking? Seems like rmmod may cause
same problem or im totaly wrong?
Cheer
--
S.Çağlar Onur <[email protected]>
http://cekirdek.pardus.org.tr/~caglar/
Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
23 Eyl 2006 Cts 02:13 tarihinde, Dave Jones şunları yazmıştı:
> This should do the trick.
> I'll merge the same patch into cpufreq.git
Yep, it solved the problem
Cheers
--
S.Çağlar Onur <[email protected]>
http://cekirdek.pardus.org.tr/~caglar/
Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
On Sat, Sep 23, 2006 at 12:36:34PM +0300, S.Çağlar Onur wrote:
> 23 Eyl 2006 Cts 02:13 tarihinde, Dave Jones şunları yazmıştı:
> > On Sat, Sep 23, 2006 at 01:45:16AM +0300, S.Çağlar Onur wrote:
> > > Hi;
> > >
> > > With kernel-2.6.18, "modprobe cpufreq_stats" always (i can reproduce)
> > > gaves following;
> > >
> > > ...
> > > Lukewarm IQ detected in hotplug locking
> > > BUG: warning at kernel/cpu.c:38/lock_cpu_hotplug()
> > > [<b0134a42>] lock_cpu_hotplug+0x42/0x65
> > > [<b02f8af1>] cpufreq_update_policy+0x25/0xad
> > > [<b0358756>] kprobe_flush_task+0x18/0x40
> > > [<b0355aab>] schedule+0x63f/0x68b
> > > [<b01377c2>] __link_module+0x0/0x1f
> > > [<b0119e7d>] __cond_resched+0x16/0x34
> > > [<b03560bf>] cond_resched+0x26/0x31
> > > [<b0355b0e>] wait_for_completion+0x17/0xb1
> > > [<f965c547>] cpufreq_stat_cpu_callback+0x13/0x20 [cpufreq_stats]
> > > [<f9670074>] cpufreq_stats_init+0x74/0x8b [cpufreq_stats]
> > > [<b0137872>] sys_init_module+0x91/0x174
> > > [<b0102c81>] sysenter_past_esp+0x56/0x79
> >
> > This should do the trick.
> > I'll merge the same patch into cpufreq.git
>
> What about cpufreq_stats_exit, it has same locking? Seems like rmmod may cause
> same problem or im totaly wrong?
The CPU_DEAD notifier doesn't take the lock, so it's safe.
Dave