On Mon, Apr 26, 2004 at 12:25:03PM -0700, David Mosberger wrote: > >>>>> On Mon, 26 Apr 2004 14:00:40 -0500, Mario Smarduch <cms063@email.mot.com> said: > > Mario> Is there support in IA64 kernel to change a memory mapping > Mario> from cacheble to uncacheble attribute. By support I mean one > Mario> function which can accept an addr start/range, make sure > Mario> in-transit cache data/prefetch hits are synced and upon > Mario> return gurantee no CPU has any stale data in its caches and > Mario> after installing the new attribute memory is guranteed > Mario> synchronized. Or is a combonition of functions/macros > Mario> required? > > Volume 2 (System Architecture) of the ASDM outlines the steps needed > to do such a transition. All the necessary primitives should be there > in ia64 linux, but there is no single convenient-to-use function to do > this. > > In any case, just be careful about not introducing memory attribute > aliases. You need to be especially careful since the kernel accesses > memory with granule-sized mappings (normally 64MB page size, but on > some machines its 16MB). Be very careful when using uncached memory. On the SGI systems, we always allocate memory for uncached out of a seperate granule. We were experiencing memory corruption due to kernel speculative load which fetched the cache line dirty. This would result in cache lines that were occasionally out of date. The problem was resolved on our kernels by drivers/char/fetchop.c which provides a seperate device for mapping when you want uncached or write coalesced memory. Good Luck, Robin Holt - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Mon Apr 26 17:41:29 2004
This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:25 EST