Re: [PATCH 1/2] KVM: X86: remove read buffer for mmio read

From: Gleb Natapov
Date: Tue Jul 10 2012 - 06:49:06 EST


On Tue, Jul 10, 2012 at 01:45:15PM +0300, Avi Kivity wrote:
> On 07/10/2012 01:36 PM, Gleb Natapov wrote:
> > On Mon, Jul 09, 2012 at 04:34:50PM +0300, Avi Kivity wrote:
> > > On 07/09/2012 04:23 PM, Xiao Guangrong wrote:
> > > > On 07/09/2012 08:49 PM, Avi Kivity wrote:
> > > >> On 07/09/2012 02:23 PM, Gleb Natapov wrote:
> > > >>>
> > > >>>> kvm-unit-tests.git has a test for xchg to mmio. Does it still work?
> > > >>>>
> > > >>>> I agree this code has to go, but it needs to be replaced by something.
> > > >>>> Maybe a .valid flag in struct operand.
> > > >>>>
> > > >>> Valid will not enough for that.
> > > >>
> > > >> If we make everything go through operands, any reason why not?
> > > >>
> > > >
> > > > I noticed some instructions need to read ESP for many times (e.g, iret_real),
> > > > maybe .valid flag is not enough for this case if the stack is in MMIO, yes?
> > >
> > > Good catch. We either have to fix it or to restrict stack operations to
> > > regular memory (->read_std).
> > >
> > > > IIUC, I also noticed ESP is not reset back if it is emulated fail (mmio is needed).
> > > > If the stack located in mmio region, this kind of instruct will be broken, i know no
> > > > guest will use mmio as stack but SDM does not limit it, is it valid?
> > >
> > > Stack in mmio (or task switch in mmio) is architecturally valid. We
> > > don't have to support it if no guests do it.
> > >
> > But the code is already here, why drop it?
>
> The read cache is not effective for multiple disjunct reads.
What do you mean?

> The
> splitting into 8-byte groups is unneeded.
>
Agree. Easy to fix.

--
Gleb.
--
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/