Messages in this thread | | | Date | Thu, 08 May 2008 17:52:41 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [2.6.25-git18 => 2.6.26-rc1-git1] Xorg crash with xf86MapVidMem error |
| |
Venki Pallipadi wrote: > > One of the reason for heristic was to get proper type for /dev/mem maps for WB > region (ACPI and BIOS area). /dev/mem checks to see the mtrr type of the start > address and starts with that type for the request. As long as there are no > other conflict in PAT list, we can give WB to this /dev/mem request. Not > having this heuristic we will have to most probably default to UC. > > When there are overlapping PAT list entries, the mtrr_lookup does not matter > as we have to inherit things from those PAT entries or conflicting with them. >
Okay, now here is something...
I don't believe it is kosher for mmap() to behave differently if we called it once or called it twice.
Therefore, the proper behaviour in the case of a range that covers multiple types is to break it down into multiple requests each mapped with the appropriate type, as if mmap had been called separate on each subrange. In the limiting case, yes, this does mean the subranges can be individual pages, but such an outcome is vanishingly improbable in practice.
-hpa
| |