Belated out of swap kill on rpi3 at r359216
bob prohaska
fbsd at www.zefox.net
Sat Mar 28 16:17:42 UTC 2020
On Fri, Mar 27, 2020 at 07:25:45PM -0700, Mark Millard wrote:
>
>
> On 2020-Mar-26, at 16:24, Mark Millard <marklmi at yahoo.com> wrote:
>
> >
> > Anyway, I may, for a time, have one context that is
> > more like yours than is normal for me. As stands, the
> > RPi3 is doing a from-scratch buildworld buildkernel .
> > (Reconstructing the head -r358966 that it is already
> > running.) It is not splitting the I/O load but is
> > using a USB SSD (via a powered hub), not the microsd
> > card. No extra logging. vm.pfault_oom_attempts=-1
> > and vm.pageout_oom_seq=120 for this attempt. 3072
> > MiBytes of page/swap space. It is a -j4 build attempt.
> >
>
> ("No extra logging" meant: beyond my normal typescript
> recording of the build output. That file ended up at
> 7741518 Bytes for size.)
Does the process capture all the output from make buildworld?
On my machines (pi2 and pi3) that's usually ~30 MB.
>
>
> The build completed without any /var/log/message or
> console output during the build. My modified version
> of top reported (details copied from a ssh window) . . .
>
That seems to settle matters. My problems are with the old
microSD card. New, it was marginally ok. Old, it's not. That
crudely quantifies lifespan at around a year of active use,
with trouble appearing roughly when the card was 75% full,
at least a hint of required overprovisioning.
Out of curiosity, have you tried leaving vm.pfault_oom_attempts at
its default value? An OOM kill would be unexpected, but interesting
if observed.
> For Mem: 738512Ki MaxObsActive, 190608Ki MaxObsWired, 906372Ki MaxObs(Act+Wir)
> For Swap: 1927Mi MaxObsUsed
>
Thanks for posting!
bob prohaska
> (top was started before the build. "MaxObs" is short
> for "Maximum Observed".)
>
> The build took a few minutes under 31 hrs.
> (Ending: 2010-03-27:18:54:03
> Starting: 2020-03-26:12:02:47).
>
> Because it was rebuilding -r358966 that it was already
> running, no bootstrap compiler or linker was built,
> despite it being a from-scratch build: The system
> compiler and linker were sufficient.
>
>
>
> For reference: the details of what was specified for
> building (contributes to "how long it took"). . .
>
> # more ~/src.configs/src.conf.cortexA53-clang-bootstrap.aarch64-host
> TO_TYPE=aarch64
> #
> KERNCONF=GENERIC-NODBG
> TARGET=arm64
> .if ${.MAKE.LEVEL} == 0
> TARGET_ARCH=${TO_TYPE}
> .export TARGET_ARCH
> .endif
> #
> WITH_SYSTEM_COMPILER=
> WITH_SYSTEM_LINKER=
> #
> WITH_LIBCPLUSPLUS=
> WITHOUT_BINUTILS_BOOTSTRAP=
> WITH_ELFTOOLCHAIN_BOOTSTRAP=
> #Disables avoiding bootstrap: WITHOUT_LLVM_TARGET_ALL=
> WITH_LLVM_TARGET_AARCH64=
> WITH_LLVM_TARGET_ARM=
> WITHOUT_LLVM_TARGET_MIPS=
> WITHOUT_LLVM_TARGET_POWERPC=
> WITHOUT_LLVM_TARGET_RISCV=
> WITHOUT_LLVM_TARGET_X86=
> WITH_CLANG=
> WITH_CLANG_IS_CC=
> WITH_CLANG_FULL=
> WITH_CLANG_EXTRAS=
> WITH_LLD=
> WITH_LLD_IS_LD=
> WITHOUT_BINUTILS=
> WITH_LLDB=
> #
> WITH_BOOT=
> WITHOUT_LIB32=
> #
> #
> NO_WERROR=
> #WERROR=
> MALLOC_PRODUCTION=
> #
> # Avoid stripping but do not control host -g status as well:
> DEBUG_FLAGS+=
> #
> WITH_DEBUG_FILES=
> #
> # Use of the .clang 's here avoids
> # interfering with other C<?>FLAGS
> # usage, such as ?= usage.
> CFLAGS.clang+= -mcpu=cortex-a53
> CXXFLAGS.clang+= -mcpu=cortex-a53
> CPPFLAGS.clang+= -mcpu=cortex-a53
> ACFLAGS.arm64cpuid.S+= -mcpu=cortex-a53+crypto
> ACFLAGS.aesv8-armx.S+= -mcpu=cortex-a53+crypto
> ACFLAGS.ghashv8-armx.S+= -mcpu=cortex-a53+crypto
>
> # more /usr/src/sys/arm64/conf/GENERIC-NODBG
> #
> # GENERIC -- Custom configuration for the arm64/aarch64
> #
>
> include "GENERIC"
>
> ident GENERIC-NODBG
>
> makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
>
> options ALT_BREAK_TO_DEBUGGER
>
> options KDB # Enable kernel debugger support
>
> # For minimum debugger support (stable branch) use:
> #options KDB_TRACE # Print a stack trace for a panic
> options DDB # Enable the kernel debugger
>
> # Extra stuff:
> #options VERBOSE_SYSINIT=0 # Enable verbose sysinit messages
> #options BOOTVERBOSE=1
> #options BOOTHOWTO=RB_VERBOSE
> #options KTR
> #options KTR_MASK=KTR_TRAP
> ##options KTR_CPUMASK=0xF
> #options KTR_VERBOSE
>
> # Disable any extra checking for. . .
> nooptions DEADLKRES # Enable the deadlock resolver
> nooptions INVARIANTS # Enable calls of extra sanity checking
> nooptions INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
> nooptions WITNESS # Enable checks to detect deadlocks and cycles
> nooptions WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
> nooptions DIAGNOSTIC
> nooptions MALLOC_DEBUG_MAXZONES # Separate malloc(9) zones
> nooptions BUF_TRACKING
> nooptions FULL_BUF_TRACKING
>
>
> ===
> Mark Millard
> marklmi at yahoo.com
> ( dsl-only.net went
> away in early 2018-Mar)
>
>
More information about the freebsd-arm
mailing list