[Intel-gfx] [PATCH v2 1/1] drm/i915: Fix VGA handling using stop_machine() or mmio

Ville Syrjälä ville.syrjala at linux.intel.com
Mon Sep 30 17:10:23 CEST 2013


On Mon, Sep 30, 2013 at 03:53:10PM +0100, Chris Wilson wrote:
> On Mon, Sep 30, 2013 at 05:41:44PM +0300, Ville Syrjälä wrote:
> > On Mon, Sep 30, 2013 at 03:24:37PM +0100, Chris Wilson wrote:
> > > On Mon, Sep 30, 2013 at 05:08:31PM +0300, ville.syrjala at linux.intel.com wrote:
> > > > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > > > 
> > > > We have several problems with out VGA handling:
> > > > - We try to use the GMCH control VGA disable bit even though it may
> > > >   be locked
> > > > - If we manage to disable VGA throuh GMCH control, we're no longer
> > > >   able to correctly disable the VGA plane
> > > > - Taking part in the VGA arbitration is too expensive for X [1]
> > > 
> > > I'd like to emphasize that X disables DRI if it detects 2 vga cards,
> > > effectively breaking all machines with a discrete GPU. Even if one of
> > > those is not being used.
> > >  
> > > > +/*
> > > > + * 21 devices with 8 functions per device max on the same bus.
> > > > + * We don't need locking for these due to stop_machine().
> > > > + */
> > > > +static u16 vga_cmd[21*8];
> > > > +static u16 vga_ctl[21*8];
> > > 
> > > Should we just allocate storage for when we need it? We are now adding
> > > several hundred bytes to our module, which is bound to cause us to use
> > > an extra page, and they can be passed around through the stop_machine
> > > closure rather than static.
> > 
> > I guess we could do that. Although I do wonder a bit if we'd race with
> > hotplug. Not sure there's a way to hotplug stuff onto the root bus...
> 
> Within stop-machine? I surely hope not!

Can we allocate there? I was thinking of allocating before stop_machine().

-- 
Ville Syrjälä
Intel OTC



More information about the Intel-gfx mailing list