From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Chinner Subject: Re: [PATCH] sync: wait_sb_inodes() calls iput() with spinlock held (was Re: [PATCH 0/7] super block scalabilit patches V3) Date: Wed, 24 Jun 2015 10:35:07 +1000 Message-ID: <20150624003507.GH22807@dastard> References: <1434051673-13838-1-git-send-email-jbacik@fb.com> <20150615213429.GB10224@dastard> <20150622022648.GO10224@dastard> <5589E862.6020300@fb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org, kernel-team@fb.com, viro@ZenIV.linux.org.uk, hch@infradead.org, jack@suse.cz To: Josef Bacik Return-path: Received: from ipmail06.adl6.internode.on.net ([150.101.137.145]:49975 "EHLO ipmail06.adl6.internode.on.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754891AbbFXAg1 (ORCPT ); Tue, 23 Jun 2015 20:36:27 -0400 Content-Disposition: inline In-Reply-To: <5589E862.6020300@fb.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Tue, Jun 23, 2015 at 04:14:42PM -0700, Josef Bacik wrote: > On 06/21/2015 07:26 PM, Dave Chinner wrote: > >On Tue, Jun 16, 2015 at 07:34:29AM +1000, Dave Chinner wrote: > >>On Thu, Jun 11, 2015 at 03:41:05PM -0400, Josef Bacik wrote: > >>>Here are the cleaned up versions of Dave Chinners super block scalability > >>>patches. I've been testing them locally for a while and they are pretty solid. > >>>They fix a few big issues, such as the global inode list and soft lockups on > >>>boxes on unmount that have lots of inodes in cache. Al if you would consider > >>>pulling these in that would be great, you can pull from here > >>> > >>>git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next.git superblock-scaling > >> > >>Passes all my smoke tests. > >> > >>Tested-by: Dave Chinner > > > >FWIW, I just updated my trees to whatever is in the above branch and > >v4.1-rc8, and now I'm seeing problems with wb.list_lock recursion > >and "sleeping in atomic" scehduling issues. generic/269 produced > >this: .... > >It looks to me like iput() is being called with the wb.list_lock > >held in wait_sb_inodes(), and everything is going downhill from > >there. Patch below fixes the problem for me. > > > > I folded this into "bdi: add a new writeback list for sync" since it > was there before and to be more bisect friendly. Let me know if > this isn't ok with you and I'll undo it. Thanks, That's fine - I was expecting you would fold it back in... ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com