How does dma_alloc_coherent ensure that memory allocated is not cached by processor?

Viewed 2233

As per Linux Documentation/DMA-API.txt dma_alloc_coherent allocates a region of <size> bytes of consistent memory.

I tried to go to the implementation of dma_alloc_coherent for x86. This function will call ops->alloc, which for intel platforms is intel_alloc_coherent.

intel_alloc_coherent uses alloc_pages to allocate virtual addresses:

page = alloc_pages(flags, order);

Then how in this implementation it is made sure that the memory allocated is not cached by processor in its L1 or higher level cache?

0 Answers
Related