|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH] [HVM] Patches to make HVM capable of running OS/
On 3/16/07, Keir Fraser <keir@xxxxxxxxxxxxx> wrote:
On 16/3/07 12:07, "Trolle Selander" <
trolle.selander@xxxxxxxxx> wrote:
This is a "minimally intrusive" way to fix an issue that I think should really be fixed in a different way.
Currently, the shared info, ioreq and buffered_io pages are mapped into the guest's memory space as the three highest page frames. They are "protected" from use by being marked as reserved in the e820 ram map. However, legacy software won't know about the e820 call, and since the older e801 call reports all ram, including the shared pages, the guest OS will end up using them as regular ram with disastrous results.
This patch makes the older e801 bios call report one 64kb block less memory, thus "protecting" the shared pages from older OS's in a similar manner to the e820 call, at the expense of 52kb of wasted ram (the e801 call reports memory in 64kb blocks, so no way around this).
I think we should reserve a 64kB block just below 0xF0000000 (by marking E820_RESERVED) and put these 'special pages' in there. The fact they're not currently mentioned by the e820 map at all is pretty bad — an OS might decide to remap PCI devices on top of them, for example!
-- Keir
I thought they were marked as reserved in the e820 map right now, but now that I checked, you're right that they're not mentioned, which means they're actually nearly as "unprotected" from a modern OS as from a pre-e820-aware one like OS/2. Nasty.
In any case, I still don't see why the ioreq and buffered io pages should be inside the guest's memory space at all. What's the issue with keeping them completely outside the guest's visible RAM and only shared between HV & Dom0?
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|