Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
armsuperpages [2013/07/16 20:53] – ZbigniewBodekarmsuperpages [2020/05/18 02:48] (current) – this is a historical page. MarkLinimon
Line 1: Line 1:
 ====== FreeBSD/arm Superpages for ARMv7 ====== ====== FreeBSD/arm Superpages for ARMv7 ======
 +
 +:!: this is a historical page.
  
 ==== Engineer ==== ==== Engineer ====
Line 37: Line 39:
  
 | M1 | Clean-ups of pmap-v6.c module | **100%** | | M1 | Clean-ups of pmap-v6.c module | **100%** |
-| M2 | Initial implementation of superpages on ARM | **70%** | +| M2 | Initial implementation of superpages on ARM | **100%** | 
-| M3 | Performance measurements, testing, documentation | **0%** | +| M3 | Performance measurements, testing, documentation | **100%** | 
-| M4 | Final integration with the %%FreeBSD%% source repo | **50%** |+| M4 | Final integration with the %%FreeBSD%% source repo | **100%** |
  
 === Clean-ups of pmap-v6.c module === === Clean-ups of pmap-v6.c module ===
Line 63: Line 65:
     * PV entry management for superpages     * PV entry management for superpages
   * Enable generic, reservation based allocation   * Enable generic, reservation based allocation
- 
-//Ongoing tasks:// 
   * Bring-up of the functionality   * Bring-up of the functionality
   * Adjust pmap-v6 infrastructure to utilize superpages' mechanisms   * Adjust pmap-v6 infrastructure to utilize superpages' mechanisms
-  * Fix bugs 
  
-----+===== Performance measurements and testing =====
  
-===== Repository =====+  * Currently pmap-v6 is suffering from the demotion problem caused by the continuous active queue scanning in VM.\\ Due to that all tests were performed with vm.pageout_update_period set to the number greater than available pages in the system. This effectively disables the actively queue scanning. 
  
-[[https://github.com/semihalf-bodek-zbigniew/freebsd-arm-superpages.git|GitHub Link]]+**GUPS benchmark**
  
-Currently there are two active branches in the repository.+GUPS (Giga Updates Per Second) measures how frequently system can issue updates to randomly generated memory locations.
  
-In order to view commits on the desired branch, one has to switch to it using **//branch//** drop-down list.+In particular GUPS measures both memory latency and bandwidth capabilities.
  
-**Branches:**+| Test | CPU Time used [s] | Real time used [s] | Updates per second [bn/s] | SP support | 
 +| 1 | 146,421875 | 146,420915 | 0,003666627 | **Disabled** | 
 +| 2 | 146,476562 | 146,476513 | 0,003665235 | **Disabled** | 
 +| 3 | 146,398438 | 146,396621 | 0,003667236 | **Disabled** | 
 +| 4 | 146,695312 | 146,699617 | 0,003659661 | **Disabled** | 
 +| 5 | 96,453125 | 96,450370 | 0,005566292 | **Enabled** | 
 +| 6 | 96,429688 | 96,426973 | 0,005567643 | **Enabled** | 
 +| 7 | 96,953125 | 96,948327 | 0,005537702 | **Enabled** | 
 +| 8 | 96,421875 | 96,423033 | 0,005567870 | **Enabled** | 
 +| Improvement | 34% | 34% | 52% |
  
-  * **armsp-dev** +**LMbench** 
-    * most recent changes that are being tested at the moment + 
-  * **armsp** +LMbench is a popular suite of system performance benchmarks. 
-    * main project's branch+ 
 +Memory bandwidth and latency tests can be used for the purpose of //superpages// verification. 
 + 
 +LMbench uses STREAM testing program to examine memory performance. 
 +Results are differentiated by type of operation. 
 + 
 +| Mmap reread [MB/s] | Bcopy (libc) [MB/s] | Bcopy (hand) [MB/s] | Mem read [MB/s] | Mem write [MB/s] | Mem latency [ns] | SP support | 
 +| 645,4 | 305,4 | 432,3 | 681 | 3043 | 238,8 | **Disabled** | 
 +| 660,0 | 312,4 | 446,9 | 696 | 3300 | 148,4 | **Enabled** | 
 +| Improvement |||||| 
 +| 2,26% | 2,29% | 3,37% | 2,2% | 8,44 % | 37,85% | 
 + 
 +**Self host world build** 
 + 
 +Reduction in the duration of self hosted world build can be observed when using GCC. 
 + 
 +No time reduction can be observed when using CLANG despite creation of ~570000 superpages in the process. 
 + 
 +| GCC | CLANG | SP support | 
 +| 6h 36min | 6h 16min | **Disabled** | 
 +| 5h 14min | 6h 15min | **Enabled** | 
 + 
 +---- 
 + 
 +===== Repository ===== 
 + 
 +The code has been integrated to the %%FreeBSD%% HEAD. 
 + 
 +[[http://svnweb.freebsd.org/base?view=revision&revision=254918|Superpages support SVN Revision]]
  
 ===== References/Links ===== ===== References/Links =====
Line 90: Line 126:
 Practical, transparent operating system support for superpages Practical, transparent operating system support for superpages
 [[http://static.usenix.org/events/osdi02/tech/full_papers/navarro/navarro.pdf|PAPER]] [[http://static.usenix.org/events/osdi02/tech/full_papers/navarro/navarro.pdf|PAPER]]
 +
 +----
 +
 +{{tag>Historical}}
  
  • armsuperpages.1374008017.txt.gz
  • Last modified: 2013/07/16 20:53
  • by ZbigniewBodek