Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Nov 2014 12:58:06 +0100
From:      Ulrich Grey <usenet@ulrich-grey.de>
To:        Svatopluk Kraus <onwahe@gmail.com>
Cc:        freebsd-arm@freebsd.org, Ian Lepore <ian@freebsd.org>
Subject:   Re: Another Test Run with Alternative pmap Implementation
Message-ID:  <20141126125806.78f2df97328e807d12746ae3@ulrich-grey.de>
In-Reply-To: <CAFHCsPXPEN3U%2B0=AtAJ4dL5g7jGuyW6=u%2B-tbHf3xH1QdJYyhQ@mail.gmail.com>
References:  <20141113125236.b16cd4e5f0e339eac0494cd4@ulrich-grey.de> <C6FED1A5-490C-47BE-B071-484271ED370E@me.com> <20141115143444.5ad037548e06f289d2532fb7@ulrich-grey.de> <CAFHCsPUJ1HhLqAjitPg6mPzhMYSui64Xmu4omO7Pkp%2B0kPZnAA@mail.gmail.com> <20141119225903.81fbbc7809093a0e6e0de9d5@ulrich-grey.de> <CAFHCsPXnSFY_X-O73M%2Bh0xO_XJ0cTmkRwtu-o4omPndnfbEhmg@mail.gmail.com> <20141120151900.a68c6d8316b96a62cb65d17a@ulrich-grey.de> <CAFHCsPWTnU7j0MC7YSHFFDE97%2B%2BBrnkJKGnK9zkxVGemaa6nAw@mail.gmail.com> <20141121115941.54d4e36b103341c3adf7eb36@ulrich-grey.de> <20141124132733.4e96b906f0d1ab69969dddd9@ulrich-grey.de> <1416840814.1147.380.camel@revolution.hippie.lan> <20141125225451.924a5df4bdb4753db273b8c5@ulrich-grey.de> <CAFHCsPXPEN3U%2B0=AtAJ4dL5g7jGuyW6=u%2B-tbHf3xH1QdJYyhQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello,

yesterday I have made two testruns with your updated source tree.

In the FIRST run no debug options were activated. Only ARM_NEW_PMAP was added to the
kernel configuration.

The _build_ (make -j20) hung after about 6 to 7 hours here (see my email from 2014-11-22,
the same situation, I think):

--- cpp_helpers ---

c++   -O -pipe -I/usr/local/DEVEL/STREJDA/freebsd/contrib/atf -Qunused-arguments  -Wno-c+
+11-extensions  -L/usr/obj/usr/local/DEVEL/STREJDA/freebsd/tmp/usr/lib/private
-rpath /usr/lib/private -o cpp_helpers
cpp_helpers.o /usr/obj/usr/local/DEVEL/STREJDA/freebsd/lib/atf/libatf-c++/libatf-c+
+.so /usr/obj/usr/local/DEVEL/STREJDA/freebsd/lib/atf/libatf-c/libatf-c.so

I tried a second run with make -DNO_CLEAN buildworld, but that hung here:

===> share/termcap (all)

TERM=dumb TERMCAP=dumb: ex - /usr/local/DEVEL/STREJDA/freebsd/share/termcap/termcap.src
< /usr/local/DEVEL/STREJDA/freebsd/share/termcap/reorder
##

To prepare the SECOND run, I build a new kernel with debug options and ARM_NEW_PMAP:

# Debugging support.  Always need this:
options         KDB                     # Enable kernel debugger support.
# For minimum debugger support use KDB_TRACE, for interactive use DDB.
options         KDB_TRACE               # Print a stack trace for a panic.
options         DDB                     # Support DDB.
# For full debugger support use this instead:
#options        GDB                     # Support remote GDB.
# Other debugging options...
makeoptions     DEBUG=-g                # Build kernel with gdb(1) debug symbols
options         ALT_BREAK_TO_DEBUGGER   # Use <CR><tilde><ctrl-b> to enter debugger.
options         DEBUG
options         DEADLKRES               # Enable the deadlock resolver
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         DIAGNOSTIC
#

I build a new kernel, checked all filesystems twice, deleted /usr/obj/* and cleaned the
source tree twice.

Then I did:
root@quad:/usr/src # make -j20 buildworld

the _build_ hung after ca. 8 - 9 hours. top -P on another terminal works, the system
works furthermore. I have waited some time, then breaked to debugger.

--- cpp_helpers ---

c++   -O -pipe -I/usr/local/DEVEL/STREJDA/freebsd/contrib/atf -Qunused-arguments  -Wno-c+
+11-extensions  -L/usr/obj/usr/local/DEVEL/STREJDA/freebsd/tmp/usr/lib/private
-rpath /usr/lib/private -o cpp_helpers
cpp_helpers.o /usr/obj/usr/local/DEVEL/STREJDA/freebsd/lib/atf/libatf-c++/libatf-c+
+.so /usr/obj/usr/local/DEVEL/STREJDA/freebsd/lib/atf/libatf-c/libatf-c.so

It is the same place, I think.
##

root@quad:/usr/src/sys/arm/include # 

from file vm.h:

#define VM_MEMATTR_UNCACHEABLE  VM_MEMATTR_NOCACHE /*name is misused by DMA */

regards
Ulrich
----------------------------------
On Wed, 26 Nov 2014 11:54:42 +0100
Svatopluk Kraus <onwahe@gmail.com> wrote:

> On Tue, Nov 25, 2014 at 10:54 PM, Ulrich Grey <usenet@ulrich-grey.de> wrote:
> 
> > Hello,
> >
> > I updated the source tree from Svatopluk Kraus and build an Image (crochet,
> > wandboard-quad). The kernel is compiled with ARM_NEW_PMAP:
> >
> > root@quad:/usr/home/gwgpi # uname -a
> > FreeBSD quad 11.0-CURRENT FreeBSD 11.0-CURRENT #0 428e9d2(master)-dirty:
> > Tue Nov 25
> > 09:45:07 UTC 2014
> > root@quad:/usr/local/DEVEL/obj/usr/local/DEVEL/STREJDA/freebsd/sys/WANDBOARD-QUAD
> > arm
> >
> > root@quad:/usr/home/gwgpi # sysctl vm.pmap.
> > vm.pmap.pv_entry_max: 1745184
> > vm.pmap.shpgperproc: 200
> > vm.pmap.nkpt2pg: 32
> > vm.pmap.sp_enabled: 1
> > vm.pmap.pte1.demotions: 22
> > vm.pmap.pte1.mappings: 0
> > vm.pmap.pte1.p_failures: 122
> > vm.pmap.pte1.promotions: 38
> > vm.pmap.pv_entry_count: 12369
> > vm.pmap.pc_chunk_count: 43
> > vm.pmap.pc_chunk_allocs: 1981
> > vm.pmap.pc_chunk_frees: 1938
> > vm.pmap.pc_chunk_tryfail: 0
> > vm.pmap.pv_entry_frees: 417470
> > vm.pmap.pv_entry_allocs: 429839
> > vm.pmap.pv_entry_spare: 2079
> >
> > #
> > Then I did:
> > root@quad:/usr/src # make -j20 buildworld
> >
> > #
> > The build hangs here (not for the first time):
> >
> > --- cpp_helpers ---
> >
> > c++   -O -pipe -I/usr/local/DEVEL/STREJDA/freebsd/contrib/atf
> > -Qunused-arguments  -Wno-c+
> > +11-extensions
> > -L/usr/obj/usr/local/DEVEL/STREJDA/freebsd/tmp/usr/lib/private
> > -rpath /usr/lib/private -o cpp_helpers
> > cpp_helpers.o
> > /usr/obj/usr/local/DEVEL/STREJDA/freebsd/lib/atf/libatf-c++/libatf-c+
> > +.so /usr/obj/usr/local/DEVEL/STREJDA/freebsd/lib/atf/libatf-c/libatf-c.so
> >
> > #
> > I did a break into the debugger and this is the output:
> > [...]
> >
> 
> Please tell me:
> (0) Does system hang or only the build? Can you terminate the build when it
> hangs by ctrl c?
> (1) Invariants was on or off?
> (2) Memory attributes for DMA buffers was VM_MEMATTR_NOCACHE or
> VM_MEMATTR_SO?
> (3) How long does the build run before it hangs?
> (4) Does it really hang on same place?
> 
> Can you run the test with invariants on if it was off and with memory
> attributes for DMA buffers VM_MEMATTR_SO if it was VM_MEMATTR_NOCACHE? If
> it helps, set invariants off and try again.
> 
> It's always worth to try it with vm.pmap.sp_enabled=0.
> 
> Considering debug terminal, after you type "show all pcpu", look at output
> and type "where #pid" for current threads on all cpus except idle ones. For
> example, in sent debug output, there is only one non idle current thread on
> cpu #3, so it would be "where 92540".
> 
> Svatopluk Kraus



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141126125806.78f2df97328e807d12746ae3>