Opróżnij pamięć podręczną do pamięci DRAM
Używam platformy Xilinx Zynq z obszarem pamięci współdzielonym przez programowalny sprzęt HW i procesor ARM.
Zarezerwowałem tę pamięć za pomocą memmap w linii poleceń jądra, a następnie odsłoniłem ją w przestrzeni użytkownika za pomocą wywołań mmap / io_remap_pfn_range w moim sterowniku.
Problem, który mam, polega na tym, że napisy pojawiają się w pamięci DRAM po pewnym czasie i przypuszczam, że utknęły w dcache. Zdefiniowano kilka wywołań flush_cache_ *, ale żaden z nich nie jest eksportowany, co jest dla mnie wskazówką, że szczekam niewłaściwe drzewo ...
Jako próbę lokalnie wyeksportowałem flush_cache_mm i tylko po to, aby zobaczyć, co się stanie i bez radości.
W skrócie, w jaki sposób mogę być pewien, że wszelkie zapisy do tego regionu mmap zostały przypisane do DRAM?
Dzięki.