svn commit: r269964 - head/sys/kern

John-Mark Gurney jmg at funkthat.com
Sat Sep 13 07:25:41 UTC 2014


Xin Li wrote this message on Sat, Sep 13, 2014 at 14:05 +0800:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
> 
> On 9/13/14 1:22 PM, John-Mark Gurney wrote:
> > Xin Li wrote this message on Sat, Sep 13, 2014 at 12:23 +0800:
> >> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512
> >> 
> >> On 9/13/14 3:41 AM, Adrian Chadd wrote:
> >>> Hi guys,
> >>> 
> >>> Both r269963 and r269964 have broken the MIPS platforms with 
> >>> smaller amounts of RAM (< 64MB.)
> >>> 
> >>> Sean noticed it and filed a bug:
> >>> 
> >>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193465
> >>> 
> >>> Can we please figure out what changed? Otherwise I'm going to 
> >>> revert these two changes until we figure out what happened.
> >> 
> >> Could you please try if this would mitigate the issue?
> >> 
> >> Index: sys/kern/kern_malloc.c 
> >> ===================================================================
> >>
> >> 
> - - --- sys/kern/kern_malloc.c      (revision 271494)
> >> +++ sys/kern/kern_malloc.c      (working copy) @@ -717,6 +717,8
> >> @@ kmeminit(void) * a given architecture. */ mem_size =
> >> vm_cnt.v_page_count; +       if (mem_size <= 32768) /* delphij
> >> XXX 128MB */ +               kmem_zmax = PAGE_SIZE;
> >> 
> >> if (vm_kmem_size_scale < 1) vm_kmem_size_scale =
> >> VM_KMEM_SIZE_SCALE;
> >> 
> > 
> > Has more research been done on this?  My 64MB AVILA board boots
> > fine, and ath attaches fine...
> 
> It's theoretically possible that my change brings a regression for
> small system, as the larger allocation units now "caches" the
> allocation instead of returning them immediately.  Sean also confirms
> that reverting the two changes only would fix the issue, so I think we
> should use some autotune here.

I agree that it could possibly bring a regression for small memory
systems, but I'm not seeing that w/ mine...  and it looks like we have
zone draining in the case of low memory, though it looks like we don't
have a "target" for how much memory to free, nor do we order which zones
we should free from (like remembering where we stopped, so we don't
flush all memory, or target zones/buckets)...

I'm also concerned that your patch prevents people from using a larger
max if they'd like by setting a tunable... Your patch just hard sets
it, preventing the tunable to doing anything useful on these smaller
systems, so if someone wants the additional zones, they'd need to
modify the source...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the svn-src-all mailing list