Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 May 2017 22:20:48 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>
Cc:        Andriy Gapon <avg@FreeBSD.org>, "cem@freebsd.org" <cem@freebsd.org>, "jeff@freebsd.org" <jeff@freebsd.org>, Ryan Stone <rstone@FreeBSD.org>
Subject:   Re: NFS client perf. degradation when SCHED_ULE is used (was when SMP enabled)
Message-ID:  <YTXPR01MB0189FAF118B27C0E6F9B169EDDFD0@YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM>
In-Reply-To: <YTXPR01MB01894DA2879C95E634C792D9DDFC0@YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM>
References:  <YTXPR01MB01894DA2879C95E634C792D9DDFC0@YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM>

next in thread | previous in thread | raw e-mail | index | archive | help
I wrote:
>To briefly summarize the previous post related to perf. degradation when r=
unning a
>recent kernel...
>- kernel build running 1yr old kernel took     100minutes
>- same kernel build running recent kernel     148minutes
>(ie. Almost a 50% degradation.)
>As noted in the last post, I got rid of most of the degradation by disabli=
ng SMP.
>
>- same kernel build running recent kernel with SCHED_4BSD   104minutes
>
After poking at this some more, it appears that r312426 is the main cause o=
f
this degradation.
Doing SMP enabled test runs using SCHED_ULE running the recent kernel, I go=
t:
- recent kernel  (as above)            148minutes
- with r312426 reverted                122minutes
- with the "obvious change" mentioned in r312426's commit message, using
   (flags & SW_TYPE_MASK) =3D=3D SWT_RELINQUISH instead of (flag & SWT_RELI=
NQUISH)
                                                           121minutes

So, I'd say either reverting the patch or replacing it with the "obvious ch=
ange" mentioned
in the commit message will at least mostly fix the problem.

I actually suspect that setting "preempt" for SWT_IDLE and/or SWT_IWAIT is =
what
is needed to be the pre-r312426 performance, since those are the ones that
SWT_RELINQUISH doesn't match. (There is also SWT_PREEMPT, but that was
handled by the r312426 patch.)
I also tested:
    ((flags & SW_PREEMPT) !=3D 0 || (flags & SW_TYPE_MASK) =3D=3D SWT_IDLE =
||
      (flags & SW_TYPE_MASK) =3D=3D SWT_IWAIT)
and it also resulted in                121minutes

I still get better perf. from SCHED_4BSD of 104minutes, but I usually see b=
etter
performance for SCHED_4BSD, so I think this is expected.

I know nothing about SCHED_ULE, so I don't think I can do more, unless some=
one
wants me to try a different patch?

rick=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YTXPR01MB0189FAF118B27C0E6F9B169EDDFD0>