|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [timer/ticks related] dom0 hang during boot on large 1TB
On 12/21/2009 02:47 PM, Mukesh Rathor wrote:
delta comes from:
timer_inetrrupt() in time-xen.c :
...
do {
get_time_values_from_xen(cpu);
/* Obtain a consistent snapshot of elapsed wallclock cycles. */
---> delta = delta_cpu =
shadow->system_timestamp + get_nsec_offset(shadow);
---> delta -= processed_system_time;
delta_cpu -= per_cpu(processed_system_time, cpu);
/*
* Obtain a consistent snapshot of stolen/blocked cycles. We
* can use state_entry_time to detect if we get preempted here.
*/
do {
sched_time = runstate->state_entry_time;
barrier();
stolen = runstate->time[RUNSTATE_runnable] +
runstate->time[RUNSTATE_offline] -
per_cpu(processed_stolen_time, cpu);
blocked = runstate->time[RUNSTATE_blocked] -
per_cpu(processed_blocked_time, cpu);
barrier();
} while (sched_time != runstate->state_entry_time);
} while (!time_values_up_to_date(cpu));
...
At first glance, i don't understand the above algorithm. Since you've
the same code, I assumed you could also compute delta to be a large
value when dom0 starts, in which case you may observe dom0 hang.
There's some code in the pvops kernel which looks vaguely like that, but
it has nothing to do with timer interrupts. Could you be more specific
about what you're referring to?
J
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|