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

[Xen-devel] [Patch] Fix IDLE issue with sedf scheduler on IA64



Hi, Dan,
        This patch fixes strange behavior on IA64, that IDLE is
scheduled more than Dom0 with default sEDF scheduler. 

        The key point is reprogram_ac_timer at the end of ac_timer
dispatcher, which programs local apic timer with expire of next ac_timer
on x86. Higher precision lapic timer can trigger ac_timer more precisely
than simply done in PIT interrupt handler. That works perfectly on x86
because PIT is already dedicated to update system time and wall time,
etc.

        However on IA64, there's only one timer source (local sapic
timer), to cover both updating time related statistics and triggering
ac_timer softirq. In this case, the delta between adjacent timer
interrupts can't be changed dynamically, or else system time (especially
NOW()) is inaccurate. So reprogram_ac_timer should always return 1 on
IA64.

        To make ac_timer softirq triggered more precisely, another
parameter tuned in the patch is the HZ, changed from 100(10ms) to
1024(1ms). Then the cpu_time of IDLE is decreased to about 0.09% from
previous %1.

Signed-off-by Kevin Tian <Kevin.Tian@xxxxxxxxx>

Thanks,
Kevin

Attachment: patch_idle_ia64
Description: patch_idle_ia64

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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