Caching in the "Java Box" There is some question about the cache rules for the Java box. There are rumors that some SPARC caches are virtual. See . We turned off the cache and some mysteries disappeared. Our only control over the cache is via page table entries. The known hazard that the virtual cache presents is where two virtual addressses, either in the same or different address spaces, map to the same real address. This is called aliasing. The virtual addresses via which the kernel access its own instructions and data are never aliased, nor are any other addresses aliased to them. The micro_loader builds these maps and thereafrer they are constant. The kernel builds pages in its own space that are windows onto domain address spaces. These are aliases of domain virtual addresses. This is done primarily to read the strings from key invocations messages and place string in the spaces of domains that receive messages. The kernel builds memory maps for domains and these maps may involve aliases between spaces and within spaces. --- When the kernel builds a window in its address space to access data from some domain's space, it must store into the kernel's memory map. This store must reach real RAM inorder to take effct. The kernel's virtual address for page table entries is stored in location "WindowPageTable". The address proper is computed by the micro_loader command with the comment "A pte to map the kernel's variable pte's". That virtual address is not cached.