Builworld stalls on rpi2 [various processes stuck in pfault and vmwait with 1996M Free Swap listed by top]

Mark Millard markmi at dsl-only.net
Sat Jan 13 03:58:48 UTC 2018


On 2018-Jan-12, at 6:43 PM, bob prohaska <fbsd at www.zefox.net> wrote:

> On Fri, Jan 12, 2018 at 05:53:03PM -0800, Mark Millard wrote:
>> 
>> On 2018-Jan-12, at 4:54 PM, bob prohaska <fbsd at www.zefox.net> wrote:
>> 
>>> 
>>> The machine still answers ping. Typing escape control-b does not
>>> bring up a debugger, did the keysequence change? Power cycling seems
>>> to be the only way out.
>> 
>> With or without:
>> 
>> options         ALT_BREAK_TO_DEBUGGER
>> 
>> For with: <CR>~^B (with <CR> being <return>
>> and ^ being <control>) is an alternate with
>> this.
>> 
> 
> The line 
> options         ALT_BREAK_TO_DEBUGGER
> does not appear in the GENERIC kernel, but
> neither does the ue identifier for ethernet.
> I thought perhaps both were included from
> elsewhere. Maybe not. I'll add it.
> 
> 

I tend to include GENERIC in another file and
then specify things I want as well or instead:

# more /usr/src/sys/arm/conf/GENERIC-NODBG 
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         # Enable verbose sysinit messages
#options        BOOTVERBOSE=1
#options        BOOTHOWTO=RB_VERBOSE
options         KLD_DEBUG
#options        KTR
#options        KTR_MASK=KTR_TRAP
##options       KTR_CPUMASK=0xF
#options        KTR_VERBOSE

# Disable any extra checking for. . .
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       BUF_TRACKING
nooptions       FULL_BUF_TRACKING
nooptions       DEADLKRES               # Enable the deadlock resolver
nooptions       USB_DEBUG
nooptions       USB_REQ_DEBUG
nooptions       USB_VERBOSE

# more /usr/src/sys/arm/conf/GENERIC-DBG
include "GENERIC"

ident   GENERIC-DBG

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         # Enable verbose sysinit messages
#options        BOOTVERBOSE=1
#options        BOOTHOWTO=RB_VERBOSE
#options        KLD_DEBUG
#options        KTR
#options        KTR_MASK=KTR_TRAP|KTR_PROC
##options       KTR_CPUMASK=0xF
#options        KTR_VERBOSE

# Enable any extra checking for. . .
options         INVARIANTS              # Enable calls of extra sanity checking
options         INVARIANT_SUPPORT       # Extra sanity checks of internal structures, required by INVARIANTS
options         WITNESS                 # Enable checks to detect deadlocks and cycles
options         WITNESS_SKIPSPIN        # Don't run witness on spinlocks for speed
nooptions       DIAGNOSTIC
options         BUF_TRACKING
options         FULL_BUF_TRACKING
options         DEADLKRES               # Enable the deadlock resolver
options         USB_DEBUG
#options        USB_REQ_DEBUG
#options        USB_VERBOSE

This avoids changing the official GENERIC.
Of course I have to specify the non-default
file name for the build.

>> I've see the smsc0 messages before but I'm
>> not up to -r327664+ yet. This has been with
>> a non-debug kernel running.
>> 
>> I've had building large ports get into such states,
>> especially while at least one large link operation
>> was active with other fairly large processes,
>> as I remember.
>> 
>> Note all the pfault and vmwait lines. It looks like
>> -r327316 and -r327468 did not happen to avoid this.
>> It looks like the paging/swaping has gotten stuck
>> in some way. How tied that might be to smsc0
>> messages, I've no clue.
>> 
>> You might get through by using -j3 or -j2 or -j1 which
>> likely would use less process space at once (worst case)
>> than -j4 happened to.
>> 
>> Of course there are other time consequences as you
>> approach -j1 (or no explicit -j for the buildworld
>> at all).
>> 
>> 
> 
> I'd rather not slow things down, but slow is better than
> crashed....


===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-arm mailing list