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

Re: [Xen-devel] [PATCH (for 4.6)] x86/hvm: Unconditionally buffer writes to VRAM



On Thu, 2015-07-16 at 11:20 +0100, Paul Durrant wrote:
> > -----Original Message-----
> > From: Ian Campbell [mailto:ian.campbell@xxxxxxxxxx]
> > Sent: 16 July 2015 11:13
> > To: Andrew Cooper
> > Cc: Paul Durrant; xen-devel@xxxxxxxxxxxxxxxxxxxx; Keir (Xen.org); Jan 
> > Beulich
> > Subject: Re: [Xen-devel] [PATCH (for 4.6)] x86/hvm: Unconditionally buffer
> > writes to VRAM
> > 
> > On Thu, 2015-07-16 at 10:34 +0100, Andrew Cooper wrote:
> > > On 16/07/15 10:24, Paul Durrant wrote:
> > > > When c/s 3bbaaec09 "unify stdvga mmio intercept with standard mmio
> > > > intercept" was added, a small semantic change was made. Prior to
> > > > this patch the hypervisor unconditionally sent all guest writes
> > > > to the VGA aperture as buffered ioreqs, whereas after the patch it
> > > > only does this when the VGA model is in 'stdvga' mode (sequencer
> > > > register #7 == 0).
> > > >
> > > > When installing Windows 7 (64-bit) using the default QEMU VGA model
> > > > (== cirrus), Windows leaves 'stdvga' mode early in boot and hence
> > > > all further writes to the VGA aperture are done using synchronous
> > > > ioreqs which slows down boot by several orders of magnitude (thanks
> > > > to the elaborate splash screen that Windows presents). This can be
> > > > viewed as a regression and so this patch re-instates previous
> > > > buffering behaviour.
> > > >
> > > > Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
> > > > Tested-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> > > > Cc: Keir Fraser <keir@xxxxxxx>
> > > > Cc: Jan Beulich <jbeulich@xxxxxxxx>
> > > > Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> > >
> > > This is unfortunate,
> > 
> > OOI why is it unfortunate? IOW why wouldn't we want buffer all accesses
> > to the VRAM (leaving aside that perhaps the original authors only
> > intended to do it for StdVGA).
> 
> Well, VRAM (mapped through a PCI BAR) can't be buffered in general.
> For instance, the Cirrus model in QEMU re-maps its I/O ports into the
> first 256 bytes. I think we are ok to always buffer writes to the VGA
> aperture though as I can't find any obvious side effects (in QEMU's
> common code).

Ah, so the aperture can contain things other than the framebuffer, makes
sense!

> 
>   Paul
> 
> > 
> 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.