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>