This is an old revision of the document!


FreeBSD/arm Superpages for ARMv7

The objective of this project is to provide FreeBSD/arm with the superpages support.

Indicated functionality is intended to work on all ARMv7 based processors, however the reference hardware platform for this development would be a Pandaboard - a popular system, widely available, based on Cortex-A9 ARMv7 CPU core.

ARM architecture is more and more prevailing, not only in the mobile and embedded space. Among the more interesting industry trends emerging in the recent months has been the “ARM server” concept. Some top tier companies started developing systems like this already (Dell, HP).

Key to FreeBSD success in these new areas are sophisticated features, among them are superpages, which allow for efficient use of TLB translations so they cover large physical regions, leading to improved performance in many applications and scalability.

Contemporary ARM architecture (ARMv7, the upcoming ARMv8) is already on on par with the traditional PC architecture in terms of advanced CPU features (MMU, multi level cache, TLB, multi core, hardware coherency and similar) and in particular can make use of transparent superpages support.

M1 Clean-ups of pmap-v6.c module done
M2 Initial implementation of superpages on ARM in progress
M3 Performance measurements, testing, documentation not yet
M4 Final integration with the FreeBSD source repo half way

Clean-ups of pmap-v6.c module

Completed tasks:

  • Port of the PV entry allocator
  • Switch to “AP[2:1]” access permissions model
  • PTE based, page referenced/modified emulation
  • Fixes regarding page replacement strategy
  • Code optimizations and bug fixes
  • Integration of the current work to the FreeBSD HEAD
  • Implementation of the pmap_copy()

Initial implementation of superpages on ARM

Ongoing tasks:

  • Support for multiple page sizes
  • Implement basic page promotion, demotion and eviction mechanisms

GitHub Link

Currently there are two active branches in the repository.

In order to view commits on the desired branch, one has to switch to it using branch drop-down list.

Branches:

  • armsp-dev
    • most recent changes that are being tested at the moment
  • armsp
    • main project's branch

Practical, transparent operating system support for superpages PAPER

  • armsuperpages.1369313692.txt.gz
  • Last modified: 2013/05/23 12:54
  • by ZbigniewBodek