CAMBRIA and more than one atheros card

Adrian Chadd adrian at freebsd.org
Mon Jul 7 19:43:19 UTC 2014


Sweet!

Can you run the same commands above on the Avila board?

Would you mind filing a PR to ensure we get that option into the
relevant kernel(s) ?

(I'm kinda tempted to suggest we auto-select the scaling factor at
startup depending upon physical RAM .. )


-a


On 7 July 2014 12:32, John Hay <jhay at meraka.org.za> wrote:
> On Mon, Jul 07, 2014 at 11:59:03AM -0700, hiren panchasara wrote:
>> On Mon, Jul 7, 2014 at 11:31 AM, Adrian Chadd <adrian at freebsd.org> wrote:
>> > On 7 July 2014 11:28, John Hay <jhay at meraka.org.za> wrote:
>> >> On Mon, Jul 07, 2014 at 11:22:46AM -0700, Adrian Chadd wrote:
>> >>> On 7 July 2014 10:12, Ian Lepore <ian at freebsd.org> wrote:
>> >>> > On Mon, 2014-07-07 at 09:25 -0700, Adrian Chadd wrote:
>> >>> >> hi,
>> >>> >>
>> >>> >> That call is returning ENOMEM. I'm not sure why. It allocated an mbuf
>> >>> >> fine, but it couldn't allocate the DMA map.
>> >>> >>
>> >>> >> What's the output of "vmstat -z" ? I wonder if it's failing an allocation.
>> >>> >>
>> >>> >>
>> >>> >>
>> >>> >> -a
>> >>> >
>> >>> > Lack of bounce buffers is a posibility that won't show up in vmstat
>> >>> > output.
>> >>>
>> >>> right, but there's a bunch of already failing vmstat entries.
>> >>>
>> >>>
>> >>> John - there's a vmscale parameter somewhere. Hiren had to drop it
>> >>> down for his APs to work in 64MB of RAM. I think it's
>> >>> vm.kmem_size_scale . What's it say for you?
>> >>>
>> >>
>> >> :~ # sysctl vm.kmem_size_scale
>> >> vm.kmem_size_scale: 3
>> >
>> > Ok. Search the archives for an email from Hiren titled "mbuf autotuning effect".
>> >
>> > TL;DR - set it to 1 and recompile. There's a kernel option somewhere
>> > to do exactly that.
>>
>> Yes. http://lists.freebsd.org/pipermail/freebsd-mips/2013-September/003081.html
>>
>> I went through this for my tplink.
>>
>> John, can you show o/p of:
>>
>> sysctl -a | grep hw | grep mem
>> and
>> sysctl -a | grep maxmbuf
>
> I already compiled a new kernel with "options VM_KMEM_SIZE_SCALE=1" and
> the problems went away. :-) On the new kernel the output is:
>
> ##########################
> :~ # sysctl -a | grep hw | grep mem
> hw.physmem: 128196608
> hw.usermem: 103845888
> hw.realmem: 134213632
> :~ # sysctl -a | grep maxmbuf
> kern.ipc.maxmbufmem: 62705664
> ##########################
>
> I rebooted with the old kernel and its output is:
>
> ##########################
> :~ # sysctl -a | grep hw | grep mem
> hw.physmem: 128196608
> hw.usermem: 104124416
> hw.realmem: 134213632
> :~ # sysctl -a | grep maxmbuf
> kern.ipc.maxmbufmem: 20901888
> ##########################
>
> So for the heck of it, I ran my script again and this time it successfully
> configured the 3 atheros interfaces. ? How can that be? One other thing I
> also do not understand. I have an Avila (with 64M RAM, half of the CAMBRIA),
> also with 3 atheros cards and there it always works.
>
> But if "options VM_KMEM_SIZE_SCALE=1" keeps the problem away, then I'll
> leave that in my kernel. :-)
>
> Thanks for everyone that helped.
>
> John
> --
> John Hay -- jhay at meraka.csir.co.za / jhay at meraka.org.za


More information about the freebsd-wireless mailing list