Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752127AbdFLNLR (ORCPT ); Mon, 12 Jun 2017 09:11:17 -0400 Received: from mx2.suse.de ([195.135.220.15]:48001 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751796AbdFLNLQ (ORCPT ); Mon, 12 Jun 2017 09:11:16 -0400 Date: Mon, 12 Jun 2017 15:11:12 +0200 From: Jan Kara To: Sahitya Tummala Cc: Alexander Polakov , Andrew Morton , Vladimir Davydov , Jan Kara , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH] mm/list_lru.c: use cond_resched_lock() for nlru->lock Message-ID: <20170612131112.GF22728@quack2.suse.cz> References: <1497228440-10349-1-git-send-email-stummala@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1497228440-10349-1-git-send-email-stummala@codeaurora.org> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2165 Lines: 67 On Mon 12-06-17 06:17:20, Sahitya Tummala wrote: > __list_lru_walk_one() can hold the spin lock for longer duration > if there are more number of entries to be isolated. > > This results in "BUG: spinlock lockup suspected" in the below path - > > [] spin_bug+0x90 > [] do_raw_spin_lock+0xfc > [] _raw_spin_lock+0x28 > [] list_lru_add+0x28 > [] dput+0x1c8 > [] path_put+0x20 > [] terminate_walk+0x3c > [] path_lookupat+0x100 > [] filename_lookup+0x6c > [] user_path_at_empty+0x54 > [] SyS_faccessat+0xd0 > [] el0_svc_naked+0x24 > > This nlru->lock has been acquired by another CPU in this path - > > [] d_lru_shrink_move+0x34 > [] dentry_lru_isolate_shrink+0x48 > [] __list_lru_walk_one.isra.10+0x94 > [] list_lru_walk_node+0x40 > [] shrink_dcache_sb+0x60 > [] do_remount_sb+0xbc > [] do_emergency_remount+0xb0 > [] process_one_work+0x228 > [] worker_thread+0x2e0 > [] kthread+0xf4 > [] ret_from_fork+0x10 > > Link: http://marc.info/?t=149511514800002&r=1&w=2 > Fix-suggested-by: Jan kara > Signed-off-by: Sahitya Tummala Looks good to me. You can add: Reviewed-by: Jan Kara Honza > --- > mm/list_lru.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/list_lru.c b/mm/list_lru.c > index 5d8dffd..1af0709 100644 > --- a/mm/list_lru.c > +++ b/mm/list_lru.c > @@ -249,6 +249,8 @@ restart: > default: > BUG(); > } > + if (cond_resched_lock(&nlru->lock)) > + goto restart; > } > > spin_unlock(&nlru->lock); > -- > Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc. > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project. > -- Jan Kara SUSE Labs, CR