From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753112AbbBRKsF (ORCPT ); Wed, 18 Feb 2015 05:48:05 -0500 Received: from mail-wg0-f41.google.com ([74.125.82.41]:53337 "EHLO mail-wg0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752379AbbBRKsD (ORCPT ); Wed, 18 Feb 2015 05:48:03 -0500 Message-ID: <1424256477.3819.13.camel@gmail.com> Subject: Re: 3.14.23-rt20 - fs,btrfs: fix rt deadlock on extent_buffer->lock From: Mike Galbraith To: Sebastian Andrzej Siewior Cc: Steven Rostedt , LKML , linux-rt-users , Thomas Gleixner , Carsten Emde , John Kacur , Clark Williams Date: Wed, 18 Feb 2015 11:47:57 +0100 In-Reply-To: <20150217115641.GI26177@linutronix.de> References: <20141031170326.1491a63f@gandalf.local.home> <1414910967.5380.81.camel@marge.simpson.net> <1414913478.5380.114.camel@marge.simpson.net> <20150217115641.GI26177@linutronix.de> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.9 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2015-02-17 at 12:56 +0100, Sebastian Andrzej Siewior wrote: > * Mike Galbraith | 2014-11-02 08:31:18 [+0100]: > > >--- a/fs/btrfs/ctree.c > >+++ b/fs/btrfs/ctree.c > >@@ -80,7 +80,7 @@ noinline void btrfs_clear_path_blocking( > > { > > int i; > > > >-#ifdef CONFIG_DEBUG_LOCK_ALLOC > >+#if (defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_PREEMPT_RT_BASE)) > > /* lockdep really cares that we take all of these spinlocks > > * in the right order. If any of the locks in the path are not > > * currently blocking, it is going to complain. So, make really > > This is gone since commit f82c458 ("btrfs: fix lockups from > btrfs_clear_path_blocking") Goody, BTRFS took a modest workout without a whimper. When that patch was born, you didn't have to try, deadlock was immediate gratification. > >@@ -107,7 +107,7 @@ noinline void btrfs_clear_path_blocking( > > } > > } > > > >-#ifdef CONFIG_DEBUG_LOCK_ALLOC > >+#if (defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_PREEMPT_RT_BASE)) > > if (held) > > btrfs_clear_lock_blocking_rw(held, held_rw); > > #endif > >--- a/fs/btrfs/extent-tree.c > >+++ b/fs/btrfs/extent-tree.c > >@@ -6938,14 +6938,6 @@ use_block_rsv(struct btrfs_trans_handle > > goto again; > > } > > > >- if (btrfs_test_opt(root, ENOSPC_DEBUG)) { > >- static DEFINE_RATELIMIT_STATE(_rs, > >- DEFAULT_RATELIMIT_INTERVAL * 10, > >- /*DEFAULT_RATELIMIT_BURST*/ 1); > >- if (__ratelimit(&_rs)) > >- WARN(1, KERN_DEBUG > >- "BTRFS: block rsv returned %d\n", ret); > >- } > > try_reserve: > > ret = reserve_metadata_bytes(root, block_rsv, blocksize, > > BTRFS_RESERVE_NO_FLUSH); > > > and this look like just a warning with enabled debug that is supressed. > May I drop this patch? Yup, that was a cosmetic thing, also suggested by Chris Mason. BTRFS seems to now just work. Hopefully it'll keep on just working, I don't want to ever go back there :) -Mike