[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] PV timer issues in FreeBSD



Hello,

While trying to get PV timers on FreeBSD to work, we found that when the
system is under stress sometimes FreeBSD would stop receiving timer
interrupts on certain vCPUs. I've added some trace points to Xen in
order to see what was happening with this timers and got the following
trace. I'm also attaching the crappy changes I've did to Xen in order to
add the trace points, maybe I didn't put the trace points in the right
position and that's why I'm seeing this:

 169.097952305 |..x.... d32768v3 d32768 fire timer vCPU3: 1204944804808
 169.097966813 |..x.... d32768v3 d32768 set timer vCPU3: 1204946614221
 169.097977454 |..x.... d32768v3 d32768 set timer vCPU3: 1204963746273
 169.103410517 |..x.... d32768v3 d32768 set timer vCPU3: 1204952682637
 169.103429902 |..x.... d32768v3 d32768 set timer vCPU3: 1205000356797
 169.124982369 |..x.... d32768v3 d32768 set timer vCPU3: 1204976302984
 169.124988972 |..x.... d32768v3 d32768 set timer vCPU3: 1205000356855
 169.128470252 |..x.... d32768v3 d32768 set timer vCPU3: 1204976300693
 169.128639545 |..x.... d32768v3 d32768 set timer vCPU3: 1205000356796
 169.136240633 |..x.... d32768v3 d32768 set timer vCPU3: 1204984176928
 169.136246955 |..x.... d32768v3 d32768 set timer vCPU3: 1205000357030
 169.139729248 |..x.... d32768v3 d32768 set timer vCPU3: 1204992115770
 169.139892831 |..x.... d32768v3 d32768 set timer vCPU3: 1205032863201
 169.151133497 |..x.... d32768v3 d32768 set timer vCPU3: 1204999923870
 169.151137341 |..x.... d32768v3 d32768 set timer vCPU3: 1205032863121
 169.352765068 |..x.... d32768v3 d32768 set timer vCPU3: 1205204647080
 169.352769008 |..x.... d32768v3 d32768 set timer vCPU3: 1205633794418
 176.818699597 |..x.... d32768v3 d32768 set timer vCPU3: 1212676613211
 176.818702670 |..x.... d32768v3 d32768 set timer vCPU3: 1213055669298
 318.489693649 |..x.... d32768v3 d32768 set timer vCPU3: 1354464489030 <
 318.489698326 |..x.... d32768v3 d32768 set timer vCPU3: 1354766606923
 318.491853105 |..x.... d32768v3 d32768 set timer vCPU3: 1354464489183
 318.491857363 |..x.... d32768v3 d32768 set timer vCPU3: 1354766606862
 318.494243541 |..x.... d32768v3 d32768 set timer vCPU3: 1354466611397
 318.494253173 |..x.... d32768v3 d32768 set timer vCPU3: 1354766607167
 318.497005208 |..x.... d32768v3 d32768 set timer vCPU3: 1354472363654
 318.497009517 |..x.... d32768v3 d32768 set timer vCPU3: 1354766606858

As it can be seen above, the vCPU was expecting a timer to fire at
1213055669298, but as far as I can tell the timer never reached the
guest, neither Xen called execute_timer to fire the timer.

Then in order to reset the timer I've started some other task that
probably sends an IPI to the stuck processor and it tries to set the
timer again (this time successfully).

Is there any reason that could prevent the timer from being fired?

Thanks, Roger.

Attachment: trace_timer.patch
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.