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>