unexpected idprio 31 behavior on 9.2-BETA2 and 9.2-RC1
Harald Schmalzbauer
h.schmalzbauer at omnilan.de
Mon Jul 7 08:39:13 UTC 2014
Bezüglich 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 at 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 /seconds/.
>>>>>>
>>>>>> "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
> ===================================================================
> --- 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 = td->td_priority;
> return (td);
> }
> - tdq->tdq_lowpri = PRI_MAX_IDLE;
> + tdq->tdq_lowpri = 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?
Thanks,
-Harry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20140707/75177773/attachment.sig>
More information about the freebsd-stable
mailing list