![]() | |||||||||||
Messages in this thread |
From: Andrew Morton <akpm@osdl.org> Date: Thu, 19 Oct 2006 00:17:47 -0700 > On Thu, 19 Oct 2006 00:00:27 -0700 (PDT) > David Miller <davem@davemloft.net> wrote: > > > Unfortunately, the kernel has just touched the page and thus there are > > active cache lines for the kernel side mapping. When we map this into > > user space, userspace might see stale cachelines instead of the > > memset() stores. > > hm. Has it always been that way or did something change? Always. > > Architectures typically take care of this in copy_user_page() and > > clear_user_page(). The absolutely depend upon those two routines > > being used for anonymous pages, and handle the D-cache issues there. > > Only anonymous pages? There are zillions of places where we modify > pagecache without a flush, especially against the blockdev mapping (fs > metadata). It's cpu stores that matter, not device DMA and the like, and we have flush_dcache_page() calls in the correct spots. You can see that we take care of this even in places such as the loop driver :-) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||
| Last update: 2006-10-19 09:25 [from the cache] ©2003-2008 | |||||||||||