On Thu, Feb 19, 2015 at 8:17 AM, Steven J. Hill <Steven.Hill@xxxxxxxxxx> wrote: > From: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx> > > Flush the D-cache before the page is given to a process > as an executable (I-cache) page when the backing store > is non-DMA I/O. > > Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx> > Signed-off-by: Steven J. Hill <Steven.Hill@xxxxxxxxxx> This patch seems to make several different changes to the cache maintenance code all at once: 1) Add logic to handle virtually tagged D$ and perform extra flushes on TLB updates 2) Add new write barriers betwen D$/I$ or D$/L2 flushes 3) Make __flush_anon_page() play nice with HIGHMEM on systems with cache aliases and maybe a few more that I missed. Would it be possible to split this out into individual commits, and include more comprehensive changelogs for each one describing the exact problem being solved? Also, it would be helpful to clarify how this relates to the use of swap (?) with a backing store that is non-DMA I/O. Do you have an example of a situation where the existing code broke? A play-by-play postmortem would make for interesting reading.