Re: [PATCH] KVM: fix async page fault working for readonly mapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/22/2012 10:27 PM, Avi Kivity wrote:

> On 05/22/2012 08:31 AM, Gleb Natapov wrote:
>> On Mon, May 21, 2012 at 04:30:41PM -0300, Marcelo Tosatti wrote:
>>> On Mon, May 21, 2012 at 04:15:50PM +0800, Xiao Guangrong wrote:
>>>> On 05/21/2012 04:08 PM, Gleb Natapov wrote:
>>>>
>>>>> On Mon, May 21, 2012 at 02:45:45PM +0800, Xiao Guangrong wrote:
>>>>>> If we map a readonly memory space from host to guest and the page is
>>>>>> not currently mapped in the host, we will get a fault-pfn and async
>>>>>> is not allowed, then the vm will crash
>>>>>>
>>>>> Why would we want to map a readonly memory space from host to guest?
>>>>> We may want to do it to support memory semantics on read and mmio on
>>>>> write, but do not right now unless something changed while I was not
>>>>> looking.
>>>>
>>>>
>>>> Some test cases in kvm-unit-tests and the benchmark i am writing for KVM
>>>> need map the function on host to guest.
>>>
>>> Or ROM. Or read-only mappings of IVSHMEM (which don't exist yet).
>> True. KVM should ignore writes to such areas, not kill a guest. Is this
>> how the code works today?
>>
> 
> Right now qemu maps ROM as RAM.  There is no way to tell kvm that
> something is ROM (or ROMD).
> 
> There are two options for that:
> - mprotect() the ROM, and teach kvm about read-only areas (this patch);
> but that doesn't work if we have a read-only and a writable alias of the
> same area
> - add a flag indicating that an area is ROM or ROMD
> 
> I prefer the latter, because of the alias issue.
> 


I agree.

Will post a new patch to do it if other guys do not object it. :)

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux