Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Aug 2013 11:42:59 +0200
From:      Zbyszek Bodek <zbb@semihalf.com>
To:        fabiodive <fabiodive@gmail.com>
Cc:        freebsd-arm@FreeBSD.org
Subject:   Re: HEADS UP: Superpages support for ARMv6/v7
Message-ID:  <521C74A3.4050207@semihalf.com>
In-Reply-To: <0093E5B7-EC77-40AB-8AD4-0778E42993A6@gmail.com>
References:  <521BA6F6.3010308@semihalf.com> <0093E5B7-EC77-40AB-8AD4-0778E42993A6@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 27.08.2013 11:36, fabiodive wrote:
> Hello,
> I am going to do some tests on my beagle bone black here,
> please could you give me an hint about enabling the feature
> into the kernel? Which directive should I use?
> thank you
> f.
> 

Hello.

If you are not using loader then open:
sys/arm/arm/pmap-v6.c
and set "sp_enabled = 0;" -> "sp_enabled = 1;"
recompile.

OR if using loader then set:
vm.pmap.sp_enabled=1 in loader.conf

Both methods are sufficient.

Best regards
Zbigniew Bodek


> On Aug 26, 2013, at 8:05 PM, Zbyszek Bodek <zbb@semihalf.com> wrote:
> 
>> Hello Everyone.
>>
>> I'm happy to announce that Superpages support for ARM has just been
>> integrated to the FreeBSD HEAD:
>> http://svnweb.freebsd.org/changeset/base/254918
>>
>> This project was sponsored by The FreeBSD Foundation and Semihalf.
>> It was developed with great support of Alan Cox (alc) who was also the
>> technical reviewer of the code. Thank you very much Alan for all your help!
>> I would also like to thank Grzegorz Bernacki (gber) and Rafal Jaworowski
>> (raj) for mentoring and help with the code integration and all the
>> people involved in testing of the patches and review.
>>
>> The code was tested on a quad-core, ARMv7, Marvell Armada XP SoC in SMP
>> environment.
>>
>> Superpages is a feature that can increase TLB coverage and allow for
>> efficient use of page table entries. Current implementation for ARM
>> supports two page sizes: 4KB small pages (used as base pages) and 1MB
>> sections (used as superpages).
>> Superpages are created either directly by 1MB section insertion or as a
>> result of promotion of 256 4KB pages. In both cases superpages creation
>> and utilization depends on *sp_enabled* sysctl variable.
>>
>> By default, superpages support is disabled.
>> In order to use this functionality one needs to set
>> *vm.pmap.sp_enabled* tunable to non-zero value. This can be done either
>> in loader.conf or by modifying *sp_enabled* variable in
>> sys/arm/arm/pmap-v6.c . Statistics regarding superpages usage are
>> available through: sysctl vm.pmap.section
>>
>> All ARMv6/v7-based platforms can take advantage from superpages, so
>> please enable this feature on your ARM kernels.
>> We will appreciate all your feedback regarding performance impact and
>> general system behavior.
>>
>> Performance improvement should be visible in all tasks where intensive
>> memory utilization is involved. GUPS (Giga Updates Per Second) benchmark
>> can be used to show the difference in memory utilization efficiency with
>> superpages enabled and disabled. GUPS src can be downloaded from here:
>> http://people.freebsd.org/~raj/patches/arm/superpages/GUPS.tar.gz
>>
>> Exemplary GUPS results:
>> --------------------------------------------------------------------
>> *superpages enabled*
>> vm.pmap.section.promotions: 1024
>> vm.pmap.section.p_failures: 58
>> vm.pmap.section.mappings: 0
>> vm.pmap.section.demotions: 0
>>
>> # ./gups
>> Main table size   = 2^27 = 134217728 words
>> Number of updates = 536870912
>> CPU time used  = 97.085938 seconds
>> Real time used = 97.082504 seconds
>> 0.005530048 Billion(10^9) Updates    per second [GUP/s]
>>
>> vm.pmap.section.promotions: 2048
>> vm.pmap.section.p_failures: 58
>> vm.pmap.section.mappings: 0
>> vm.pmap.section.demotions: 0
>>
>> * superpages disabled *
>> Main table size   = 2^27 = 134217728 words
>> Number of updates = 536870912
>> CPU time used  = 145.679688 seconds
>> Real time used = 145.680798 seconds
>> 0.003685255 Billion(10^9) Updates    per second [GUP/s]
>> --------------------------------------------------------------------
>>
>> *Self host buildworld*
>> World build time on Armada XP has shortened from 6h 36min to
>> 5h 14min with superpages enabled.
>>
>> *Stress tests*
>> stress --cpu 4 --io 4 --vm 2 --vm-bytes 800M
>> Survived long time runs, large superpages creation ratio has been observed.
>>
>> *Swapping*
>> No problems with swapping or system running under heavy load with
>> shortage of memory have been observed.
>>
>>
>> Please feel free to send your results.
>>
>> Best regards
>> Zbigniew Bodek
>> _______________________________________________
>> freebsd-arm@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
>> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
> 




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