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

Mark Kettenis mark.kettenis at xs4all.nl
Thu Sep 12 05:09:20 PDT 2013


> 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?


More information about the xorg-devel mailing list