Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Aug 2013 12:02:21 +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:  <521C792D.1030704@semihalf.com>
In-Reply-To: <3635F96E-6C83-4310-AE6B-DE2F2EA09C4C@gmail.com>
References:  <521BA6F6.3010308@semihalf.com> <0093E5B7-EC77-40AB-8AD4-0778E42993A6@gmail.com> <521C74A3.4050207@semihalf.com> <3635F96E-6C83-4310-AE6B-DE2F2EA09C4C@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 27.08.2013 11:45, fabiodive wrote:
> OK, that's fine, should be fine also having some configuration
> "option" into the kernel configuration file…
> thank you again
> f.
Hello again.

Well, in general on i386/amd64 this feature is enabled by default.
It would be reasonable to enable SP by default on ARM too
after longer tests and evaluation on various ARM-based chips.

But you are right, it would be convenient to enable this in kernel
configuration especially on ARM. I will discuss this with Developers.

Best regards

> 
> 
> On Aug 27, 2013, at 10:42 AM, Zbyszek Bodek <zbb@semihalf.com> wrote:
> 
>> 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?521C792D.1030704>