Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jan 2018 18:58:39 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        Freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Re: Builworld stalls on rpi2 [various processes stuck in pfault and vmwait with 1996M Free Swap listed by top]
Message-ID:  <866A14D4-2D81-4C2E-B902-0AD05514E709@dsl-only.net>
In-Reply-To: <20180113024346.GB48702@www.zefox.net>
References:  <20180113005426.GA48702@www.zefox.net> <19904500-5819-47AC-9666-7103ED87C1CA@dsl-only.net> <20180113024346.GB48702@www.zefox.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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:
>>=20
>> On 2018-Jan-12, at 4:54 PM, bob prohaska <fbsd at www.zefox.net> =
wrote:
>>=20
>>>=20
>>> 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.
>>=20
>> With or without:
>>=20
>> options         ALT_BREAK_TO_DEBUGGER
>>=20
>> For with: <CR>~^B (with <CR> being <return>
>> and ^ being <control>) is an alternate with
>> this.
>>=20
>=20
> The line=20
> 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.
>=20
>=20

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=20
include "GENERIC"

ident   GENERIC-NODBG

makeoptions     DEBUG=3D-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=3D1
#options        BOOTHOWTO=3DRB_VERBOSE
options         KLD_DEBUG
#options        KTR
#options        KTR_MASK=3DKTR_TRAP
##options       KTR_CPUMASK=3D0xF
#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=3D-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=3D1
#options        BOOTHOWTO=3DRB_VERBOSE
#options        KLD_DEBUG
#options        KTR
#options        KTR_MASK=3DKTR_TRAP|KTR_PROC
##options       KTR_CPUMASK=3D0xF
#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.
>>=20
>> 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.
>>=20
>> 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.
>>=20
>> 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.
>>=20
>> Of course there are other time consequences as you
>> approach -j1 (or no explicit -j for the buildworld
>> at all).
>>=20
>>=20
>=20
> I'd rather not slow things down, but slow is better than
> crashed....


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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?866A14D4-2D81-4C2E-B902-0AD05514E709>