On 22/07/2019 09:49, Jan Beulich wrote: > On 19.07.2019 19:55, Andrew Cooper wrote: >> On 16/07/2019 17:41, Jan Beulich wrote: >> As an observation, I wonder whether continually sprinkling >> process_pending_softirqs() is the best thing to do for keyhandlers. >> We've got a number of other which incur the wrath of the watchdog (grant >> table in particular), which in practice means they are typically broken >> when they are actually used for debugging production. >> >> As these are for debugging only, might it be a better idea to stop the >> watchdog while keyhandlers are running? The only useful thing we >> actually manage here is to stop the watchdog killing us. > Hmm, I would agree going this route if the watchdog could be disabled > on a per-CPU basis, but right now watchdog_disable() is a system wide > action.
It needs to be disabled system-wide. Disabling only the local CPU will still cause a watchdog timeout on other CPUs which are waiting on the current CPU to complete some action. Most keyhandlers run with interrupts enabled so we will be fine WRT TLB flushes, etc, but things like vcpu_pause() will block until softirqs are processed again, and we need to prevent those CPUs from taking a timeout. For other CPUs which really are having problems, the timeout will still trip 5 seconds after the keyhandler completes, and we'll still get a backtrace out of it. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel