Re: scheduler panic

From: John Baldwin <jhb_at_freebsd.org>
Date: Thu, 29 Dec 2011 11:17:49 -0500
On Sunday, December 25, 2011 10:48:32 am Larry Rosenman wrote:
> On Fri, 23 Dec 2011, Larry Rosenman wrote:
> > On 12/23/2011 8:54 AM, John Baldwin wrote:
> >> The sloppiest fix might be to do this:
> >>
> >> Index: sched_ule.c
> >> ===================================================================
> >>
> >>
> > - --- sched_ule.c	(revision 228777)
> >> +++ sched_ule.c	(working copy) _at__at_ -1434,7 +1434,8 _at__at_
> >> sched_priority(struct thread *td) } else { pri = SCHED_PRI_MIN; if
> >> (td->td_sched->ts_ticks) -			pri += SCHED_PRI_TICKS(td->td_sched);
> >> +			pri += min(SCHED_PRI_TICKS(td->td_sched), +
> >> SCHED_PRI_RANGE); pri += SCHED_PRI_NICE(td->td_proc->p_nice);
> >> KASSERT(pri >= PRI_MIN_BATCH && pri <= PRI_MAX_BATCH,
> >> ("sched_priority: invalid priority %d: nice %d, "
> >>
> >
> > I've applied this to both the host and the guest, and am recompiling
> > the guest kernel (hopefully it'll stay up long enough...).
> >
> > I'll report back.
> >
> > Do y'all (FreeBSD Devs) want a PR?
> >
> >
> I've run 2 complete buildworld/buildkernel cycles with the patch applied
> in the guest, and it's made it all the way through.  It wouldn't
> do that without it.
> 
> Can we get this (or something else like it) applied?
> 
> Do I need to file a PR?

I've committed this.  I do think the root problem is an issue with the clock
interrupts, but this seems to be a common enough problem I think a workaround
is warranted.

-- 
John Baldwin
Received on Thu Dec 29 2011 - 15:24:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:22 UTC