On Wed, Mar 30, 2011 at 12:50:53PM +0200, Avi Kivity wrote:
> On 03/30/2011 12:47 PM, Gleb Natapov wrote:
> >On Wed, Mar 30, 2011 at 12:38:53PM +0200, Avi Kivity wrote:
> >>  On 03/29/2011 02:08 PM, Gleb Natapov wrote:
> >>  >Currently we sync registers back and forth before/after exiting
> >>  >to userspace for IO, but during IO device model shouldn't need to
> >>  >read/write the registers, so we can as well skip those sync points. The
> >>  >only exaception is broken vmware backdor interface. The new code sync
> >>  >registers content during IO only if registers are read from/written to
> >>  >by userspace in the middle of the IO operation and this almost never
> >>  >happens in practise.
> >>
> >>  While this is a nice idea, how much does it save in practice?  It
> >>  does introduce more complexity.
> >>
> >
> >I haven't measured, but can try to do so. It eliminates two copies of
> >all registers on each MMIO/PIO read. I expect this to be measurable in
> >workloads that do many such reads.
> >
> 
> I don't, especially if these are mmios to userspace.  Perhaps it's
> better to remove the copy on kernel mmio, since it's much faster, if
> the result is simpler (there can be no KVM_SET_REGS in that
> context).
> 

The patch saves copying of 256 bytes on each MMIO/PIO read. It may not
save a lot comparing to time it takes to do one MMIO to userspace, but
do 1 million of those and you saved a lot of CPU cycles. I do not think
we should abandon the optimization so easily. Unfortunately I can't run
perf on 2.6.38 kernel right now. It gives me strange errors and when it
doesn't it makes kernel OOPS.

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

Reply via email to