У меня есть вопрос о проблеме с кэшем при доступе к физической памяти из пространства пользователя через заражение mmap в моем тестовом драйвере. Я:
- выделил некоторые страницы с помощью kmalloc.
- отобразить страницыв пространство пользователя, используя mmap (user) и remap_pfn_range (driver)
- dma_map_single те страницы, которые будут приняты устройством через DMA
- Выполнение записи DMA с устройства в память
- readиз пространства пользователя
Итак, мой вопрос: что нужно сделать, чтобы пользователь прочитал согласованные данные (данные из памяти, обновляемые через DMA), а не кэш-память ЦП .?