Возвращает ли vmalloc_to_page непрерывную физическую память?

#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. Теперь я понимаю. спасибо