On 9/21/2016 5:25 PM, Jan Beulich wrote:
On 21.09.16 at 03:54, <tianyu....@intel.com> wrote:
On 2016年09月20日 23:36, Jan Beulich wrote:
The precondition of process_pending_softirq() working in the debug key
handler is that timer interrupt arrives on time and nmi_timer_fn() can
run to update nmi_timer_ticks before watchdog timeout.
Process_pending_softirq() in debug key handler is mainly to deal with
timer softirq to update nmi_timer_ticks in order to avoid NMI watchdog.
If there is no timer interrupt arriving for long time,
process_pending_softirq() here is meaningless and NMI watchdog still
will be timeout.
Oh, right. Still I continue to be unconvinced that disabling the
watchdog is the right answer (not running timers for a long time
has other undesirable consequence), or if it is, then it being
needed in only this one key handler. So perhaps you should
really consider submitting your generic key handler adjustment
as an alternative.
Disable watchdog is common solution for such kind of issues in current
codes and so I chose it. I also proposed another solution in previous
mail that run keyhandler always in a tasklet and insert
process_pending_softirq() in the keyhandler.
But please also answer the earlier question, which you did strip
from your reply:
Which btw raises another question: Why are you in polling mode in
the first place? Do you have a UART without working interrupt?
I found there was no interrupt with Xen ns16550 dirver while
linux kernel's serial driver can receive interrupt.
Xen-devel mailing list