> Date: Mon, 10 Jan 2022 15:40:34 +0100 (CET)
> From: Mark Kettenis <mark.kette...@xs4all.nl>
> 
> > Date: Mon, 10 Jan 2022 14:40:50 +0100
> > From: Alexander Bluhm <alexander.bl...@gmx.net>
> > 
> > On Thu, Jan 06, 2022 at 03:59:55PM +0100, Alexander Bluhm wrote:
> > > My armv7 regress machine hangs every day in regress/sys/kern/fork-exit.
> > 
> > Maybe a show uvm provides some information.
> 
> Not really.  I can reproduce the issue here.  But I didn't have
> ddb.console enabled :(.
> 
> > Stopped at      db_enter:       ldrb    r15, [r15, r15, ror r15]!
> > ddb> trace 
> > db_enter
> >         rlv=0xc06bd178 rfp=0xcea1cdd0
> > ampintc_irq_handler+0x13c
> >         rlv=0xc05b79c8 rfp=0xcea1ce48
> > irq_entry+0x78
> >         rlv=0xc03ba3f8 rfp=0xcea1ce60
> > uaddr_bestfit_insert+0x24
> >         rlv=0xc0654994 rfp=0xcea1ce78
> > uvm_mapent_free_insert+0xa8
> >         rlv=0xc0657e7c rfp=0xcea1cea0
> > uvm_map_fix_space+0x208
> >         rlv=0xc06577b4 rfp=0xcea1cec8
> > uvm_map_kmem_grow+0x154
> >         rlv=0xc0657044 rfp=0xcea1cf48
> > uvm_map+0x3a8
> >         rlv=0xc071e4d4 rfp=0xcea1cfa8
> > uvm_km_thread+0x10c
> >         rlv=0xc064a060 rfp=0xc0a49f50
> > Bad frame pointer: 0xc0a49f50

So as far as I can determine, we simply run out of KVA when running
this test.  I'm not sure why though.  It could be fragmentation,
although AFAICT the km thread only does page-sized allocations.  And
we don't have guard pages turned on is it?  So maybe there is a leak
somewhere...

That said, we have a really low amount of KVA on armv7.  It's
basically 256MB plus what's left of the 64MB block we've loaded the
kernel in.  Doubling this to 512MB (plus what's left of the 64MB
block) makes the test pass, and brings us more in line with the other
32-bit platforms (i386 has 760MB of KVA).

ok?


Index: arch/armv7/include/vmparam.h
===================================================================
RCS file: /cvs/src/sys/arch/armv7/include/vmparam.h,v
retrieving revision 1.6
diff -u -p -r1.6 vmparam.h
--- arch/armv7/include/vmparam.h        10 Mar 2017 08:42:08 -0000      1.6
+++ arch/armv7/include/vmparam.h        11 Jan 2022 11:53:00 -0000
@@ -62,7 +62,7 @@
  */
 #define        KERNEL_BASE             ARM_KERNEL_BASE
 
-#define VM_KERNEL_SPACE_SIZE   0x10000000
+#define VM_KERNEL_SPACE_SIZE   0x20000000
 
 /*
  * Override the default pager_map size, there's not enough KVA.

Reply via email to