On Thu, Oct 13, 2016 at 03:30:04AM -0600, Jan Beulich wrote:
> >>> 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>
> with ...
> > --- 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?
I'm fine with putting this into 4.8. The tree is stable at the moment,
we can feed to few nice-to-have things.
Xen-devel mailing list