On Sun, May 22, 2016 at 6:26 PM, Yang Zhang <yang.zhang.wz@xxxxxxxxx> wrote:
On 2016/5/21 2:37, David Matlack wrote:
It's not obvious to me why polling for a timer interrupt would improve
context switch latency. Can you explain a bit more?
We have a workload which using high resolution timer(less than 1ms) inside
guest. It rely on the timer to wakeup itself. Sometimes the timer is
expected to fired just after the VCPU is blocked due to execute halt
instruction. But the thread who is running in the CPU will turn off the
hardware interrupt for long time due to disk access. This will cause the
timer interrupt been blocked until the interrupt is re-open.
Does this happen on the idle thread (swapper)? If not, halt-polling
may not help; it only polls if there are no other runnable threads.
For optimization, we let VCPU to poll for a while if the next timer will
arrive soon before schedule out. And the result shows good when running
several workloads inside guest.
Thanks for the explanation, I appreciate it.
--
best regards
yang