Re: [PATCH v6 12/12] KVM: indicate readonly access fault

From: Avi Kivity
Date: Tue Sep 11 2012 - 05:18:21 EST


On 09/11/2012 01:31 AM, Marcelo Tosatti wrote:
> On Fri, Sep 07, 2012 at 05:56:39PM +0800, Xiao Guangrong wrote:
>> On 09/06/2012 10:09 PM, Avi Kivity wrote:
>> > On 08/22/2012 03:47 PM, Xiao Guangrong wrote:
>> >> On 08/22/2012 08:06 PM, Avi Kivity wrote:
>> >>> On 08/21/2012 06:03 AM, Xiao Guangrong wrote:
>> >>>> Introduce write_readonly_mem in mmio-exit-info to indicate this exit is
>> >>>> caused by write access on readonly memslot
>> >>>
>> >>> Please document this in chapter 5 of apic.txt.
>> >>>
>> >>
>> >> Okay, please review this one.
>> >>
>> >> Subject: [PATCH v6 12/12] KVM: indicate readonly access fault
>> >>
>> >> Introduce write_readonly_mem in mmio-exit-info to indicate this exit is
>> >> caused by write access on readonly memslot
>> >>
>> >
>> > I'm not sure whether this indication can be trusted by userspace. By
>> > the time userspace gets to process this, the slot may no longer exist,
>> > or it may be writable.
>>
>> The case of deleting memslot is ok, because userspace just skips this fault
>> if no readonly mem or no fault handler can be found.
>>
>> Switching memslot from readonly to writable sounds strange, i agree with you
>> that this flag is untrusty under this case.
>>
>> Marcelo, any comments?
>
> The same can happen with slot deletion, for example.
>
> Userspace (which performed the modification which can result in faults
> to non-existant/read-only/.../new-tag memslot), must handle the faults
> properly or avoid the possibility for reference to memslot information
> from the past.
>
> I think its worthwhile to add a note about this in the API
> documentation: "The user of this interface is responsible for handling
> references to stale memslot information, either by handling
> exit notifications which reference stale memslot information or not
> allowing these notifications to exist by stopping all vcpus in userspace
> before performing modifications to the memslots map".

Or we can drop the new interface and rely on userspace to perform the
lookup under its own locking rules.

It's slow, but writes to ROM or ROM/device are rare anyway.


--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/