[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Some doubt about host_alarm_handler function and SIGALRM in qemu-xen-traditional
Hello everyone. When I use gdb to trace qemu-xen-traditional, I have a little doubt about host_alarm_handler. I already understand that it can implement a dynamic tick, through tickless to save CPU cost. However, I found that the following code has never run when I use qemu-xen-traditional with xen(See attachment master.cfg). if (env) { /* stop the currently executing cpu because a timer occured */ cpu_interrupt(env, CPU_INTERRUPT_EXIT); } So I wonder if this code is useful when I use xen? Moreover, I use this following function host_alarm_handler_empty instead of host_alarm_handler as SIGALRM signal handler. Then I change dynticks_timer from one-shot timer to period timer, and set ev.sigev_notify = SIGEV_NONE when I create dynticks_timer (See attachment period_timer.patch). I found that no problem except for usb mouse slowness. static void host_alarm_handler_empty(int host_signum) { return; } Finally, I use the following bash command to send the SIGALRM signal to qemu-dm at 1ms intervals, the usb mouse also recovers fluency. I can't understand how SIGALRM works, because SIGALRM just call host_alarm_handler_empty function? # QEMU_PID=`pgrep qemu-dm`; while true; do kill -s SIGALRM $QEMU_PID; sleep 0.001; done I would appreciate it if anyone could provide me some ideas. ------------------------------------------------------------- Thanks, Lu Attachment:
period_timer.patch Attachment:
master.cfg _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |