Luca Tettamanti wrote: > Il Mon, Jun 11, 2007 at 10:44:45AM +0300, Avi Kivity ha scritto: > >> Luca wrote: >> >>>> I've managed to reproduce this on kvm-21 (it takes many boots for this >>>> to happen, but it does eventually). >>>> >>> Hum, any clue on the cause? >>> >> From what I've seen, it's the new Linux clocksource code. >> >> >>> Should I test older versions? >>> >> They're unlikely to be better. Instead, it would be best to see what >> the guest is doing. >> > > RCU is not working. Network initialization hangs because it happens to > be the first RCU user. > The guest is stuck waiting for RCU syncronization: > > [ 4.992207] [<c04321c5>] synchronize_rcu+0x4e/0x80 > [ 4.994379] [<c0431db5>] wakeme_after_rcu+0x0/0x8 > [ 4.996521] [<c0599ad1>] synchronize_net+0x64/0x8c > [ 4.998678] [<c05d70e0>] inet_register_protosw+0xef/0x151 > [ 5.000984] [<c072d79e>] inet_init+0x1cd/0x498 > > wait_for_completion() in synchronize_rcu() calls schedule() and the > completion is never signaled (wakeme_after_rcu is never called). > The completion AFAICS would be signaled via rcu_process_callbacks(), > which is called in tasklet context. > Scheduler and completion are working fine since they're used in other > part of the kernel without problems. > > To recap: > > i686 F7 kernel: always works. > > i586 F7 kernel: sometime hangs due to RCU problems. When it does work > it's because the LAPIC is disabled on boot: > > Using local APIC timer interrupts. > calibrating APIC timer ... > ... lapic delta = 25745109 > ... PM timer delta = 0 > ..... delta 25745109 > ..... mult: 1105912110 > ..... calibration result: 4119217 > ..... CPU clock speed is 8794.0417 MHz. > ..... host bus clock speed is 4119.0217 MHz. > ... verify APIC timer > ... jiffies delta = 103 > APIC timer disabled due to verification failure. > > When it doesn't work LAPIC passes the test: > > [ 1.304717] Using local APIC timer interrupts. > [ 1.304719] calibrating APIC timer ... > [ 1.718823] ... lapic delta = 25251444 > [ 1.720582] ... PM timer delta = 0 > [ 1.722219] ..... delta 25251444 > [ 1.723827] ..... mult: 1084706136 > [ 1.725470] ..... calibration result: 4040231 > [ 1.727374] ..... CPU clock speed is 8625.0780 MHz. > [ 1.729396] ..... host bus clock speed is 4040.0231 MHz. > [ 1.731540] ... verify APIC timer > [ 2.158342] ... jiffies delta = 102 > [ 2.160035] ... jiffies result ok > > i586 F7 kernel, with 'nolapic': always works. >
Can you check which .config option causes it (a special type of bisecting...)? This looks likely based on your findings: -CONFIG_X86_ALIGNMENT_16=y +CONFIG_X86_GOOD_APIC=y CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_USE_PPRO_CHECKSUM=y +CONFIG_X86_TSC=y I expect it's not directly related to i586 vs i686. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel