Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752068AbdF3DRF (ORCPT ); Thu, 29 Jun 2017 23:17:05 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:59338 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751899AbdF3DRE (ORCPT ); Thu, 29 Jun 2017 23:17:04 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 795346099A Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=stummala@codeaurora.org Subject: Re: [PATCH v4 2/2] fs/dcache.c: fix spin lockup issue on nlru->lock To: Andrew Morton Cc: Alexander Polakov , Vladimir Davydov , Jan Kara , viro@zeniv.linux.org.uk, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org References: <20170628171854.t4sjyjv55j673qzv@esperanza> <1498707575-2472-1-git-send-email-stummala@codeaurora.org> <20170629154828.5b4877348470c42352620f41@linux-foundation.org> From: Sahitya Tummala Message-ID: Date: Fri, 30 Jun 2017 08:46:57 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: <20170629154828.5b4877348470c42352620f41@linux-foundation.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1250 Lines: 35 On 6/30/2017 4:18 AM, Andrew Morton wrote: > >> --- a/fs/dcache.c >> +++ b/fs/dcache.c >> @@ -1133,11 +1133,12 @@ void shrink_dcache_sb(struct super_block *sb) >> LIST_HEAD(dispose); >> >> freed = list_lru_walk(&sb->s_dentry_lru, >> - dentry_lru_isolate_shrink, &dispose, UINT_MAX); >> + dentry_lru_isolate_shrink, &dispose, 1024); >> >> this_cpu_sub(nr_dentry_unused, freed); >> shrink_dentry_list(&dispose); >> - } while (freed > 0); >> + cond_resched(); >> + } while (list_lru_count(&sb->s_dentry_lru) > 0); >> } >> EXPORT_SYMBOL(shrink_dcache_sb); > I'll add a cc:stable to this one - a large dentry list is a relatively > common thing. > > I'm assumng that [1/2] does not need to be backported, OK? I think we should include [1/2] as well along with this patch, as this patch is using list_lru_count(), which can return incorrect count if [1/2] is not included. Also, all the previous patches submitted for fixing this issue must be dropped i.e, mm/list_lru.c: use cond_resched_lock() for nlru->lock must be dropped. -- 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.