Re: [PATCH 2/5] softlockup: make detector be aware of task switch of processes hogging cpu

From: Don Zickus
Date: Mon Aug 18 2014 - 14:43:54 EST


On Mon, Aug 18, 2014 at 08:01:58PM +0200, Ingo Molnar wrote:
> > > > duration = is_softlockup(touch_ts);
> > > > if (unlikely(duration)) {
> > > > + pid_t pid = task_pid_nr(current);
> > > > +
> > > > /*
> > > > * If a virtual machine is stopped by the host it can look to
> > > > * the watchdog like a soft lockup, check to see if the host
> > > > @@ -326,8 +329,20 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
> > > > return HRTIMER_RESTART;
> > > >
> > > > /* only warn once */
> > > > - if (__this_cpu_read(soft_watchdog_warn) == true)
> > > > + if (__this_cpu_read(soft_watchdog_warn) == true) {
> > > > +
> > > > + /*
> > > > + * Handle the case where multiple processes are
> > > > + * causing softlockups but the duration is small
> > > > + * enough, the softlockup detector can not reset
> > > > + * itself in time. Use pids to detect this.
> > > > + */
> > > > + if (__this_cpu_read(softlockup_warn_pid_saved) != pid) {
> > >
> > > So I agree with the motivation of this improvement, but is this
> > > implementation namespace-safe?
> >
> > What namespace are you worried about colliding with? I thought
> > softlockup_ would provide the safety?? Maybe I am missing something
> > obvious. :-(
>
> I meant PID namespaces - a PID in itself isn't guaranteed to be
> unique across the system.

Ah, I don't think we thought about that. Is there a better way to do
this? Is there a domain id or something that can be OR'd with the pid?

Cheers,
Don
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/