[PATCH] xf86VGAarbiter,vgaHW: Only wrap co-operating VGA drivers

Chris Wilson chris at chris-wilson.co.uk
Thu Sep 12 05:12:26 PDT 2013


On Thu, Sep 12, 2013 at 02:09:20PM +0200, Mark Kettenis wrote:
> > From: Chris Wilson <chris at chris-wilson.co.uk>
> > Date: Thu, 12 Sep 2013 12:37:44 +0100
> > 
> > Presently, we wrap every single operation on every driver if the kernel
> > reports that there is more than one VGA capable device in the system.
> > This is irrespective of whether VGA is being used by any driver, and
> > causes a significant performance impact (4-5x) for CPU bound operations.
> > 
> > The approach taken in this patch is to first only enable VGA arbitration
> > for drivers that require VGA resources. This is detected by moving the
> > initialisation from the common xf86 code to the vgaHW module. This is
> > strictly an ABI break as any driver that directly uses VGA (i.e. without
> > using the vgaHW module) will need to make its own declaration of intent.
> > Secondly, we then only wrap the operations with vgaarb get/put for the
> > drivers that require VGA access. If we only have a single driver
> > requring VGA access, we just wrap Enter/LeaveVT and lock the VGA
> > arbiter for the entire duration that the Xserver is active.
> 
> Won't this break running two X servers on the same machine, where both
> of them require VGA access?

It still respects VT switching. I'm not entirely clear how you would run
two *VGA* xservers simultaneously otherwise.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the xorg-devel mailing list