From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: i915 SNB: hotplug events when charging causing poor interactivity Date: Thu, 16 Feb 2012 14:07:37 +0100 Message-ID: <20120216130723.GA19158@phenom.ffwll.local> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by gabe.freedesktop.org (Postfix) with ESMTP id A67B89E73F for ; Thu, 16 Feb 2012 05:07:26 -0800 (PST) Received: by wico1 with SMTP id o1so1451239wic.36 for ; Thu, 16 Feb 2012 05:07:25 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Daniel J Blueman Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Thu, Feb 16, 2012 at 11:44:46AM +0000, Daniel J Blueman wrote: > When charging Dell E5420 laptops, I see the Sandy Bridge South Display > Engine port C hotplug interrupt fire consistently at around 20Hz. Each > scan on the connectors results in ~100ms hold time for the mode_config > mutex which blocks eg the cursor set ioctl (due to the I2C read > timeouts across the connectors), resulting in terrible GUI > interactivity. We know about this locking issue - it's much worse on platforms where we need to do load-detect hotplug detection or if for whatever reasons it takes ages to grab the edid from your screen. The Great Plan (tm) is to add a per-crtc mutex so that cursor updates and pageflips can continue while someone else is holding the config_mutex to do background stuff like hotplug handling. Unfortunately there's tons of other important stuff on my todo :( > Notably, when only using battery or only using AC, the port C > interrupts don't fire. It feels like the platform is using South > Display Port C for GPIO/I2C; setting the port C pulse duration from > 2ms to 100ms doesn't change the behaviour. I'll dump off the GPIO > settings, but what else is good to debug this? Yep, dumping the register state (intel_reg_dumper from intel-gpu-tools is handy for that) in the different situations sounds useful. > Also, have you come across this kind of pattern before, eg a platform > using these GPIO ports for the something (in this case, feels like the > EC/battery)? Judging by the lack of a quirks, I'd say not. Perhaps > also I should dump off the SDE port C IIR mask register before we > reset it, in case the BIOS intentionally masks out port C hotplug > events. If this is indeed the bios we need to quirk this away. But I think we should check first whether we don't butcher something else accidently. -Daniel -- Daniel Vetter Mail: daniel@ffwll.ch Mobile: +41 (0)79 365 57 48