On 12/24/2009 12:25 PM, Marcelo Tosatti wrote:
/* rearm timer, if not periodic */
if (t->expired) {
t->expired = 0;
qemu_rearm_alarm_timer(t);
}
-> host_alarm_handler fires, sets bh->scheduled = 1
-> qemu_mod_timer sees qemu_alarm_pending() == true and does
not rearm the alarm timer.
The bottom half will be reexecuted right away and the alarm will be
rearmed then. So if it happens once it is not a problem. If it happens
continuously, you have a sort of interrupt storm so this is the least of
your problems. :-)
Paolo