Linux Symposium

July 13th-16th, 2010
Ottawa Westin
Ottawa, Canada

Register / Login / Submit Proposal

Presentations Keynotes Summits
Presentations
Tutorials
Lightning Talks
BOFS

Event Details Schedule
Venue
Travel & Hotel
Costs

FAQ

Media
Archives
Contact

Home



The Virtual Contiguous Memory Manager

Zach Pfeffer (zpfeffer@quicinc.com)

An input/output memory management unit (IOMMU) maps device addresses to physical addresses. It also insulates the system from spurious or malicious device addresses and allows fine-grained mapping attribute control. The Linux kernel core does not contain a generic API to handle IOMMU mapped memory; device driver writers must implement device specific code to interoperate with the Linux kernel core. As the number of IOMMUs increases, coordinating the many address spaces mapped by all discrete IOMMUs becomes difficult without in-kernel support. To address this complexity the Qualcomm Innovation Center (QuIC) created the Virtual Contiguous Memory Manager (VCMM) API. The VCMM API enables device independent IOMMU control, VMM interoperation and non-IOMMU enabled device interoperation by treating devices with or without IOMMUs and all CPUs with or without MMUs, their mapping contexts and their mappings using common abstractions. Physical hardware is given a generic device type and mapping contexts are abstracted into Virtual Contiguous Memory (VCM) regions. Users "reserve" memory from VCMs and "back" their reservations with physical memory. We have implemented the VCMM to manage the IOMMUs of an upcoming ARM based SoC. The implementation will be posted to the Code Aurora Forum's site.



Gold Sponsors
Silver Sponsors
Bronze Sponsors
Wireless Networking

register | call for papers

Copyright © 2010 Linux Symposium Inc. All rights reserved.
Linux is a registered trademark of Linus Torvalds.