From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753930AbcESHIM (ORCPT ); Thu, 19 May 2016 03:08:12 -0400 Received: from atrey.karlin.mff.cuni.cz ([195.113.26.193]:45254 "EHLO atrey.karlin.mff.cuni.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751513AbcESHIK (ORCPT ); Thu, 19 May 2016 03:08:10 -0400 Date: Thu, 19 May 2016 09:08:06 +0200 From: Pavel Machek To: Ming Lei Cc: Scot Doyle , David Daney , Dann Frazier , Greg Kroah-Hartman , Jiri Slaby , Peter Hurley , David Airlie , dri-devel@lists.freedesktop.org, "Chintakuntla, Radha" , David Daney , Linux Kernel Mailing List , stable Subject: Re: [PATCH] tty: vt: Fix soft lockup in fbcon cursor blink timer. Message-ID: <20160519070806.GA17077@amd> References: <1463510464-28124-1-git-send-email-ddaney.cavm@gmail.com> <20160517204912.GA29719@amd> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu 2016-05-19 08:27:37, Ming Lei wrote: > On Thu, May 19, 2016 at 4:24 AM, Scot Doyle wrote: > > On Wed, 18 May 2016, Ming Lei wrote: > >> On Wed, May 18, 2016 at 4:49 AM, Pavel Machek wrote: > >> > On Tue 2016-05-17 11:41:04, David Daney wrote: > >> >> From: David Daney > >> >> > >> >> We are getting somewhat random soft lockups with this signature: > >> >> > >> >> [ 86.992215] [] el1_irq+0xa0/0x10c > >> >> [ 86.997082] [] cursor_timer_handler+0x30/0x54 > >> >> [ 87.002991] [] call_timer_fn+0x54/0x1a8 > >> >> [ 87.008378] [] run_timer_softirq+0x1c4/0x2bc > >> >> [ 87.014200] [] __do_softirq+0x114/0x344 > >> >> [ 87.019590] [] irq_exit+0x74/0x98 > >> >> [ 87.024458] [] __handle_domain_irq+0x98/0xfc > >> >> [ 87.030278] [] gic_handle_irq+0x94/0x190 > >> >> > >> >> This is caused by the vt visual_init() function calling into > >> >> fbcon_init() with a vc_cur_blink_ms value of zero. This is a > >> >> transient condition, as it is later set to a non-zero value. But, if > >> >> the timer happens to expire while the blink rate is zero, it goes into > >> >> an endless loop, and we get soft lockup. > >> >> > >> >> The fix is to initialize vc_cur_blink_ms before calling the con_init() > >> >> function. > >> >> > >> >> Signed-off-by: David Daney > >> >> Cc: stable@vger.kernel.org > >> > > >> > Acked-by: Pavel Machek > >> > >> Tested-by: Ming Lei > >> > >> Thanks David and Pavel for making it work! > >> > >> > > >> > (And it is amazing how many problems configurable blink speed caused). > >> > > >> > Thanks! > >> > Pavel > >> > > > > > > > Dann, Ming and David, thank you so much for all of your effort. > > > > There were three other reports in the past year, each leading to their own > > patch, of boot lockups occuring when the cursor flash timer was set using > > an ops->cur_blink_jiffies value of 0. I plan to propose a patch within > > the next day that will prevent this for all code paths. > > Given this issue caues system unusable, I suggest to merge David's > oneline patch first, then you can think and try to figure out 'perfect' solution > for addressing all this kind of reports from last year. Actually, I'd merge [PATCH] fbcon: use default if cursor blink interval is not valid first. That one is obviously safe. Nice big overkill, but safe. Then nicer solution can be attempted... Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html