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>
