On Monday, July 07, 2014 4:39:02 am Harald Schmalzbauer wrote:
> Bez=FCglich John Baldwin's Nachricht vom 04.09.2013 15:58 (localtime):
> > On Thursday, August 08, 2013 10:41:12 am Eric van Gyzen wrote:
> >> On 08/08/2013 09:19, Eric van Gyzen wrote:
> >>> On 08/06/2013 14:23, J David wrote:
> >>>> On Tue, Aug 6, 2013 at 1:59 PM, Eric van Gyzen <eric@vangyzen.net> =
wrote:
> >>>>>> on an otherwise idle amd64 system with 4 CPUs. The first command =
in =
> > the
> >>>>>> build.log file:
> >>>>>>
> >>>>>> rm -rf /usr/obj/home/freebsd/tmp
> >>>>>>
> >>>>>> took over three minutes. It should have taken about three /second=
s/.
> >>>>>>
> >>>>>> "uptime" reported a load average of around 1.00.
> >>>>>> "top" showed no threads (user or kernel) using CPU.
> >>>>>> "iostat" showed an average of less than 20 tps on ada0.
> >>>>>> "rm" was usually in the RUN state.
> >>>> We are looking at something similar. Would you be able to try to
> >>>> reproduce it using a kernel with:
> >>>>
> >>>> nooptions SCHED_ULE
> >>>> options SCHED_4BSD
> >>>>
> >>>> to see if it makes a difference? It seems to, but the problem is
> >>>> inconsistent enough that I can't be sure.
> >>> The 4BSD scheduler does //not// exhibit this problem. I tested with =
the
> >>> latest releng/9.2 (r254054) and an otherwise GENERIC config.
> >>
> >> To be thorough, I built a GENERIC kernel at the same rev, and it still
> >> exhibits the problem.
> > =
> > Please try this change:
> > =
> > Index: sched_ule.c
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > --- sched_ule.c (revision 255020)
> > +++ sched_ule.c (working copy)
> > @@ -243,7 +243,7 @@ struct tdq {
> > int tdq_transferable; /* Transferable thread count. */
> > short tdq_switchcnt; /* Switches this tick. */
> > short tdq_oldswitchcnt; /* Switches last tick. */
> > - u_char tdq_lowpri; /* Lowest priority thread. */
> > + u_short tdq_lowpri; /* Lowest priority thread. */
> > u_char tdq_ipipending; /* IPI pending. */
> > u_char tdq_idx; /* Current insert index. */
> > u_char tdq_ridx; /* Current removal index. */
> > @@ -2323,7 +2323,7 @@ sched_choose(void)
> > tdq->tdq_lowpri =3D td->td_priority;
> > return (td);
> > }
> > - tdq->tdq_lowpri =3D PRI_MAX_IDLE;
> > + tdq->tdq_lowpri =3D PRI_MAX_IDLE + 1;
> > return (PCPU_GET(idlethread));
> > }
> =
> Hello,
> =
> the fix above still applies cleanly to 9.3-RC3.
> Was ist solved differently? Or just slipped through?
No one ever told me that they tested it and that it worked. If it works I =
will happily commit it, but it is too late for 9.3.
-- =
John Baldwin
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"