|
|
|
|
|
|
|
|
|
|
xen-devel
Wouldn't it be more reasonable to have /dev/mem represent machine addresses
only outside of the range of physical memory
assigned to a VM, and physical addresses inside this range? That way, more
consistent behavior should be achieved to
native systems.
What I'm seeing is that accesses to /dev/mem offset 0x100000 get a failure in
__direct_remap_pfn_range() (including, if
debugging is turned on, two log messages from the hypervisor). If these
accesses went to kernel memory instead,
consumers of this interface would get exactly what they get on a native OS.
Further I would think that such map attempts shouldn't even make it to the
hypervisor, thus avoiding the log messages
(which I started looking into only because I thought they might indicate a
latent bug of some sort). This would,
however, require knowledge in the kernel which addresses (or address ranges)
represent physical memory (rather than
potential I/O memory regions).
Finally, while following the involved code paths, I noted a check that is made
in __ioremap, by calling
is_local_lowmem(). It would seem to me that calling this function just for the
first address is insufficient - the range
specified may begin in non-lowmem but end in lowmem. Or it may begin in lowmem
and end in non-lowmem, in which case I
would think that virt_to_page() wouldn't work correctly anymore (permitting,
say, an erroneous dd command issued by root
to result in an oops or maybe worse things).
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] /dev/mem,
Jan Beulich <=
|
|
|
|
|