#linux-kernel #dma #vmalloc
#linux-ядро #dma #vmalloc
Вопрос:
vmalloc_to_page
Возвращает ли непрерывную физическую память?
Я спрашиваю, потому что вижу, что его возвращаемое значение используется для DMA, а DMA использует непрерывную память.
Смотрите использование vmalloc_to_page для DMA здесь: https://elixir.bootlin.com/linux/v5.4.70/source/drivers/mtd/nand/onenand/samsung.c#L644
Тем не менее, в vmalloc_to_page
реализации не похоже, что это создает непрерывное распределение : https://elixir.bootlin.com/linux/v4.5/source/mm/vmalloc.c#L234
Комментарии:
1.
vmalloc
не выделяет непрерывную физическую память.vmalloc_to_page
возвращает страницу, содержащую адрес вvmalloc
буфере редактирования.2. Спасибо, итак, как это можно использовать для использования dma (см. Мой вопрос), как это сделано в samsung.c ?
3. Потому что оно использует это только для передачи одной страницы. Одна страница является непрерывной.
4. Теперь я понимаю. спасибо