From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC] async CRTC enable/disable hack Date: Fri, 13 Dec 2013 21:52:20 +0100 Message-ID: References: <1386962813-2058-1-git-send-email-jbarnes@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-ie0-f178.google.com (mail-ie0-f178.google.com [209.85.223.178]) by gabe.freedesktop.org (Postfix) with ESMTP id DCE67FA4B4 for ; Fri, 13 Dec 2013 12:52:20 -0800 (PST) Received: by mail-ie0-f178.google.com with SMTP id lx4so3478912iec.23 for ; Fri, 13 Dec 2013 12:52:20 -0800 (PST) In-Reply-To: <1386962813-2058-1-git-send-email-jbarnes@virtuousgeek.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Jesse Barnes Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org On Fri, Dec 13, 2013 at 8:26 PM, Jesse Barnes wrote: > Obviously still need a lot of work (and I didn't quite get the patch > split correctly, I meant commit the first bits earlier). > > I think the approach may be sound though, and is actually not too hard > to get right with all the cross checking we have in place. Things to > fix: > - modeset cross check - we don't want to sync after a mode set just to > check, maybe we could put this off until the actual enable happens > - split flushing of disable and enable to actually make full mode sets > fast When I've last pondered this async_domains looked like a suitable thing. We can create as many of them as we want or reuse them, and they have a nice primitive for syncing up with all previously launched async work items. I haven't checked how well they take being called from different processes (since we still want to do the very last sync from a work item to fully asynchronously launch the the state checker). But my impression was that they fit the bill or are at least fairly close. We could also try to abuse them in the driver load/suspend/resume code and e.g. run the gem restore in parallel with early modeset stuff. I'm not sure whether the syncing would be flexible enough though. But worth a shot imo. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch