From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [Patch] avoid deadlock during console output Date: Mon, 09 Mar 2009 08:45:49 +0100 Message-ID: <49B4C92D.70004@fujitsu-siemens.com> References: <49B4B4B1.9060505@fujitsu-siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <49B4B4B1.9060505@fujitsu-siemens.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org Juergen Gross wrote: > Keir Fraser wrote: >> On 06/03/2009 08:46, "Juergen Gross" >> wrote: >> >>> to dump the schedulers run-queues. On my 4-core machine I need only about 5 >>> calls to stop the machine. >>> >>> The attached patch solves the problem by avoiding sending the event in >>> critical paths. >> Ugly. Instead we can defer the dom0 notification to a tasklet. I'll make a >> patch for that myself. > > Hmm, do you think your patch is okay? > tasklet_schedule is taking another lock and uses BUG_ON then... > I would suggest to modify tasklet_schedule: > > if ( !t->is_scheduled && !t->is_running ) > { > if (!list_empty(&t->list)) > { t->is_dead = 1; > spin_unlock_irqrestore(&tasklet_lock, flags); > BUG(); > } > list_add_tail(&t->list, &tasklet_list); > } recursion should be avoided, of course! Juergen -- Juergen Gross Principal Developer IP SW OS6 Telephone: +49 (0) 89 636 47950 Fujitsu Siemens Computers e-mail: juergen.gross@fujitsu-siemens.com Otto-Hahn-Ring 6 Internet: www.fujitsu-siemens.com D-81739 Muenchen Company details: www.fujitsu-siemens.com/imprint.html