> > Also it is wrong to put TLB map of RAM that does not exist together > > with kernel text and data. > > Sorry, I don't understand that. Here's an example. Many systems have (for legacy reasons) mapped VGA memory at 0xA0000-0xC0000. This memory is typically uncacheable so that when you write to those addresses the bits show up on the screen (rather than sitting in the processor cache for some indeterminate amount of time). Now if Linux is using a 64MB entry to map the kernel, and the kernel has been loaded into the bottom 64M of memory, the mapping for the kernel (which has a WB attribute) will overlap the VGA memory (which doesn't support WB) ... and so you will most probably machine check when someone accesses the VGA (or worse if some speculative access or prefetch happens to pull from the VGA area). So the rule is that Linux must never create TLB mappings for things that don't exist, or for blocks of memory with incompatible attributes. -Tony - : send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |