Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 118384
b: refs/heads/master
c: 8d5c660
h: refs/heads/master
v: v3
  • Loading branch information
Keith Packard authored and Ingo Molnar committed Nov 3, 2008
1 parent 1758958 commit 1a44da1
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0839ccb8ac6a9e2d5e175a4ae9c82b5c574d510d
refs/heads/master: 8d5c6603c408d91ecf543f244f10ccb8b500ad95
12 changes: 9 additions & 3 deletions trunk/Documentation/io-mapping.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@ range, creating a permanent kernel-visible mapping to the resource. The
map_atomic and map functions add the requested offset to the base of the
virtual address returned by ioremap_wc.

On 32-bit processors, io_mapping_map_atomic_wc uses io_map_atomic_prot_pfn,
which uses the fixmaps to get us a mapping to a page using an atomic fashion.
For io_mapping_map_wc, ioremap_wc() is used to get a mapping of the region.
On 32-bit processors with HIGHMEM defined, io_mapping_map_atomic_wc uses
kmap_atomic_pfn to map the specified page in an atomic fashion;
kmap_atomic_pfn isn't really supposed to be used with device pages, but it
provides an efficient mapping for this usage.

On 32-bit processors without HIGHMEM defined, io_mapping_map_atomic_wc and
io_mapping_map_wc both use ioremap_wc, a terribly inefficient function which
performs an IPI to inform all processors about the new mapping. This results
in a significant performance penalty.

0 comments on commit 1a44da1

Please sign in to comment.