|
|
@@ -1,5 +1,6 @@
|
|
|
- DMA attributes
|
|
|
- ==============
|
|
|
+==============
|
|
|
+DMA attributes
|
|
|
+==============
|
|
|
|
|
|
This document describes the semantics of the DMA attributes that are
|
|
|
defined in linux/dma-mapping.h.
|
|
|
@@ -108,6 +109,7 @@ This is a hint to the DMA-mapping subsystem that it's probably not worth
|
|
|
the time to try to allocate memory to in a way that gives better TLB
|
|
|
efficiency (AKA it's not worth trying to build the mapping out of larger
|
|
|
pages). You might want to specify this if:
|
|
|
+
|
|
|
- You know that the accesses to this memory won't thrash the TLB.
|
|
|
You might know that the accesses are likely to be sequential or
|
|
|
that they aren't sequential but it's unlikely you'll ping-pong
|
|
|
@@ -121,11 +123,12 @@ pages). You might want to specify this if:
|
|
|
the mapping to have a short lifetime then it may be worth it to
|
|
|
optimize allocation (avoid coming up with large pages) instead of
|
|
|
getting the slight performance win of larger pages.
|
|
|
+
|
|
|
Setting this hint doesn't guarantee that you won't get huge pages, but it
|
|
|
means that we won't try quite as hard to get them.
|
|
|
|
|
|
-NOTE: At the moment DMA_ATTR_ALLOC_SINGLE_PAGES is only implemented on ARM,
|
|
|
-though ARM64 patches will likely be posted soon.
|
|
|
+.. note:: At the moment DMA_ATTR_ALLOC_SINGLE_PAGES is only implemented on ARM,
|
|
|
+ though ARM64 patches will likely be posted soon.
|
|
|
|
|
|
DMA_ATTR_NO_WARN
|
|
|
----------------
|
|
|
@@ -142,10 +145,10 @@ problem at all, depending on the implementation of the retry mechanism.
|
|
|
So, this provides a way for drivers to avoid those error messages on calls
|
|
|
where allocation failures are not a problem, and shouldn't bother the logs.
|
|
|
|
|
|
-NOTE: At the moment DMA_ATTR_NO_WARN is only implemented on PowerPC.
|
|
|
+.. note:: At the moment DMA_ATTR_NO_WARN is only implemented on PowerPC.
|
|
|
|
|
|
DMA_ATTR_PRIVILEGED
|
|
|
-------------------------------
|
|
|
+-------------------
|
|
|
|
|
|
Some advanced peripherals such as remote processors and GPUs perform
|
|
|
accesses to DMA buffers in both privileged "supervisor" and unprivileged
|