Re: NFS client perf. degradation when SCHED_ULE is used (was when SMP enabled)

From: Rick Macklem <rmacklem_at_uoguelph.ca>
Date: Sat, 27 May 2017 22:20:48 +0000
I wrote:
>To briefly summarize the previous post related to perf. degradation when running 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 disabling 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 of
this degradation.
Doing SMP enabled test runs using SCHED_ULE running the recent kernel, I got:
- recent kernel  (as above)            148minutes
- with r312426 reverted                122minutes
- with the "obvious change" mentioned in r312426's commit message, using
   (flags & SW_TYPE_MASK) == SWT_RELINQUISH instead of (flag & SWT_RELINQUISH)
                                                           121minutes

So, I'd say either reverting the patch or replacing it with the "obvious change" 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) != 0 || (flags & SW_TYPE_MASK) == SWT_IDLE ||
      (flags & SW_TYPE_MASK) == SWT_IWAIT)
and it also resulted in                121minutes

I still get better perf. from SCHED_4BSD of 104minutes, but I usually see better
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 someone
wants me to try a different patch?

rick
Received on Sat May 27 2017 - 20:20:51 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:11 UTC