Re: nfsd becomes slow when machine CPU usage is at or over 100% on STABLE/13

From: Rick Macklem <rmacklem_at_uoguelph.ca>
Date: Sun, 27 Mar 2022 15:06:50 UTC
Yoshihiro Ota <ota@j.email.ne.jp> wrote:
> I've been building default kernel, that is GENERIC for releng and stable
> branches.
>
> I see GENERIC-NODEBUG on head but don't seem to find it on releng/
> nor stable/
> I grepped /usr/src/* for std.nodebug but don't seem have a match...
> I wonder how nodebug kicks in releng.
I do not know what magic is used so that the releng kernels build
without debugging.

However, if you see this line:
WARNING: WITNESS option enabled, expect reduced performance.
in the first screen when booting, you are running a kernel with debugging
built into it.

rick

I added "enable DDB" to i386 kernel but didn't touch amd64 kernel.
Both amd64 and i386 looks okay with releng/13.1.

Hiro

On Sun, 20 Mar 2022 20:45:30 +0000
Rick Macklem <rmacklem@uoguelph.ca> wrote:

> mike tancsa <mike@sentex.net> wrote:
> > On 3/20/2022 7:43 AM, mike tancsa wrote:
> >> On 3/18/2022 9:18 PM, Yoshihiro Ota wrote:
> >>> I had built several versions between releng/13.0 branch point to
> >>> stable/13 (before releng/13.1 was created) and all of them had such
> >> performance degrade.
> >>>
> >>> I started suspecting stable debug options and thus built releng/13.1
> >>> and tested.
> >>> I don't see NFS slowdown unlike stable/13.
> >>> releng/13.0 and releng/12.2 were also fine.
> >>
> >> Hi,
> >>
> >>     I would think there is very little difference (if any) between
> >> releng/13.1 and stable/13 right now.  Are you sure stable/13 suffers
> >> from this issue you are seeing ?
> The sources may be almost the same, but the build is not.
> See /usr/src/sys/conf/std.nodebug.
>
> I'm assuming his releng/13.1 build created a non-debug kernel.
> Debug kernels do spit out "expect reduced performance" if i recall
> correctly. It sounds like he found an example of this.
>
> rick
>
> >
> >
> These look to be the only files touched below.
>
> 0{cage}% git diff remotes/origin/releng/13.1..remotes/origin/stable/13 |
> grep '^\-\-'
> --- a/contrib/tzcode/stdtime/ctime.3
> --- a/lib/libc/gen/time.3
> --- a/lib/libcasper/services/cap_net/cap_net.c
> --- a/lib/libpfctl/libpfctl.c
> --- a/lib/libpfctl/libpfctl.h
> --- a/libexec/rc/rc.d/dumpon
> --- a/release/pkg_repos/release-dvd.conf
> --- a/sbin/devd/devd.conf
> --- a/sbin/ipf/common/ipf.h
> --- a/sbin/ipf/libipf/printactivenat.c
> --- a/sbin/ipf/libipf/printstate.c
> --- a/sbin/pfctl/pfctl.c
> --- a/sbin/pfctl/pfctl_optimize.c
> --- a/share/man/man4/Makefile
> --- a/share/man/man4/netmap.4
> --- /dev/null
> --- a/share/man/man4/vale.4
> --- a/share/man/man9/crypto_buffer.9
> --- a/stand/efi/libefi/efi_console.c
> --- a/stand/i386/libi386/vidconsole.c
> --- a/sys/arm64/include/pcpu.h
> --- a/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
> --- a/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
> --- a/sys/conf/newvers.sh
> --- a/sys/crypto/armv8/armv8_crypto.c
> --- a/sys/crypto/armv8/armv8_crypto.h
> --- a/sys/crypto/armv8/armv8_crypto_wrap.c
> --- a/sys/dev/netmap/netmap.c
> --- a/sys/dev/netmap/netmap_bdg.c
> --- a/sys/dev/netmap/netmap_kern.h
> --- a/sys/dev/netmap/netmap_vale.c
> --- a/sys/i386/i386/machdep.c
> --- a/sys/kern/kern_rmlock.c
> --- a/sys/kern/sys_process.c
> --- a/sys/kern/vfs_cache.c
> --- a/sys/kern/vfs_subr.c
> --- a/sys/modules/if_epair/Makefile
> --- a/sys/modules/linuxkpi/Makefile
> --- a/sys/net/if_epair.c
> --- a/sys/opencrypto/cryptodev.h
> --- a/sys/riscv/include/cpufunc.h
> --- a/sys/riscv/include/pmap.h
> --- a/sys/riscv/include/pte.h
> --- a/sys/riscv/include/riscvreg.h
> --- a/sys/riscv/include/vmparam.h
> --- a/sys/riscv/riscv/elf_machdep.c
> --- a/sys/riscv/riscv/locore.S
> --- a/sys/riscv/riscv/pmap.c
> --- a/sys/sys/param.h
> --- a/sys/x86/x86/mp_x86.c
> --- a/usr.bin/diff/pr.c
> --- a/usr.bin/touch/touch.c
> 0{cage}%
>
>
>