>>> On 13.10.16 at 12:06, <tianyu....@intel.com> wrote:
> Keyhandler may run for a long time in serial port driver's
> timer handler on the large machine with a lot of physical
> cpus(e,g dump_timerq()) when serial port driver works in
> the poll mode(via the exception mechanism).
> If a timer handler runs a long time, it will block nmi_timer_fn()
> to feed NMI watchdog and cause Xen hypervisor panic. Inserting
> process_pending_softirqs() in timer handler will not help. when timer
> interrupt arrives, timer subsystem calls all expired timer handlers
> before programming next timer interrupt. There is no timer interrupt
> arriving to trigger timer softirq during run a timer handler.
> This patch is to fix the issue to make nonirq keyhandler run in
> tasklet when receive debug key from serial port.
> Signed-off-by: Lan Tianyu <tianyu....@intel.com>
Reviewed-by: Jan Beulich <jbeul...@suse.com>
> --- a/xen/include/xen/keyhandler.h
> +++ b/xen/include/xen/keyhandler.h
> @@ -46,7 +46,9 @@ void register_irq_keyhandler(unsigned char key,
> bool_t diagnostic);
> /* Inject a keypress into the key-handling subsystem. */
> -extern void handle_keypress(unsigned char key, struct cpu_user_regs *regs);
> +extern void handle_keypress(unsigned char key,
> + struct cpu_user_regs *regs,
> + bool async);
... this also changed to force_tasklet. I guess the committer could,
easily do that, but otoh I'm not sure we want/need this for 4.8 - Wei?
Xen-devel mailing list