>>>Subject: Re: [PATCH 1/3] sched: define a function to report the number of
>>>context switches on a CPU
>>>
>>>On Mon, Aug 19, 2019 at 11:14:27PM -0700, lon...@linuxonhyperv.com
>>>wrote:
>>>> From: Long Li <lon...@microsoft.com>
>>>>
>>>> The number of context switches on a CPU is useful to determine how
>>>> busy this CPU is on processing IRQs. Export this information so it can
>>>> be used by device drivers.
>>>
>>>Please do explain that; because I'm not seeing how number of switches
>>>relates to processing IRQs _at_all_!

Some kernel components rely on context switch to progress, for example watchdog 
and RCU. On a CPU with reasonable interrupt load, it continues to make context 
switches, normally a number of switches per seconds. 

While observing a CPU with heavy interrupt loads, I see that it spends all its 
time in IRQ and softIRQ, and not to get a chance to do a switch (calling 
__schedule()) for a long time. This will result in system unresponsive at 
times. The purpose is to find out if this CPU is in this state, and implement 
some throttling mechanism to help reduce the number of interrupts. I think the 
number of switches is not accurate for detecting this condition in the most 
precise way, but maybe it's good enough.

I agree this may not be the best way. If you have other idea on detecting a CPU 
is swamped by interrupts, please point me to where to look at.

Thanks

Long


Reply via email to