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

next in thread | previous in thread | raw e-mail | index | archive | help
OK, that's fine, should be fine also having some configuration
"option" into the kernel configuration file=85
thank you again
f.


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.
>>=20
>=20
> Hello.
>=20
> If you are not using loader then open:
> sys/arm/arm/pmap-v6.c
> and set "sp_enabled =3D 0;" -> "sp_enabled =3D 1;"
> recompile.
>=20
> OR if using loader then set:
> vm.pmap.sp_enabled=3D1 in loader.conf
>=20
> Both methods are sufficient.
>=20
> Best regards
> Zbigniew Bodek
>=20
>=20
>> On Aug 26, 2013, at 8:05 PM, Zbyszek Bodek <zbb@semihalf.com> wrote:
>>=20
>>> Hello Everyone.
>>>=20
>>> 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
>>>=20
>>> 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.
>>>=20
>>> The code was tested on a quad-core, ARMv7, Marvell Armada XP SoC in =
SMP
>>> environment.
>>>=20
>>> 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.
>>>=20
>>> 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
>>>=20
>>> 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.
>>>=20
>>> 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
>>>=20
>>> 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
>>>=20
>>> # ./gups
>>> Main table size   =3D 2^27 =3D 134217728 words
>>> Number of updates =3D 536870912
>>> CPU time used  =3D 97.085938 seconds
>>> Real time used =3D 97.082504 seconds
>>> 0.005530048 Billion(10^9) Updates    per second [GUP/s]
>>>=20
>>> vm.pmap.section.promotions: 2048
>>> vm.pmap.section.p_failures: 58
>>> vm.pmap.section.mappings: 0
>>> vm.pmap.section.demotions: 0
>>>=20
>>> * superpages disabled *
>>> Main table size   =3D 2^27 =3D 134217728 words
>>> Number of updates =3D 536870912
>>> CPU time used  =3D 145.679688 seconds
>>> Real time used =3D 145.680798 seconds
>>> 0.003685255 Billion(10^9) Updates    per second [GUP/s]
>>> --------------------------------------------------------------------
>>>=20
>>> *Self host buildworld*
>>> World build time on Armada XP has shortened from 6h 36min to
>>> 5h 14min with superpages enabled.
>>>=20
>>> *Stress tests*
>>> stress --cpu 4 --io 4 --vm 2 --vm-bytes 800M
>>> Survived long time runs, large superpages creation ratio has been =
observed.
>>>=20
>>> *Swapping*
>>> No problems with swapping or system running under heavy load with
>>> shortage of memory have been observed.
>>>=20
>>>=20
>>> Please feel free to send your results.
>>>=20
>>> 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"
>>=20
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3635F96E-6C83-4310-AE6B-DE2F2EA09C4C>