From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751282AbbJDFYg (ORCPT ); Sun, 4 Oct 2015 01:24:36 -0400 Received: from mga02.intel.com ([134.134.136.20]:42380 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751171AbbJDFYf (ORCPT ); Sun, 4 Oct 2015 01:24:35 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,632,1437462000"; d="scan'208";a="657456367" Date: Sat, 3 Oct 2015 23:24:33 -0600 From: Ross Zwisler To: Ross Zwisler Cc: linux-kernel@vger.kernel.org, Alexander Viro , Matthew Wilcox , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Dan Williams , Dave Chinner , Jan Kara , "Kirill A. Shutemov" , linux-nvdimm@ml01.01.org Subject: Re: [PATCH v2 0/2] Revert locking changes in DAX for v4.3 Message-ID: <20151004052433.GA10753@linux.intel.com> Mail-Followup-To: Ross Zwisler , linux-kernel@vger.kernel.org, Alexander Viro , Matthew Wilcox , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Dan Williams , Dave Chinner , Jan Kara , "Kirill A. Shutemov" , linux-nvdimm@lists.01.org References: <1443830494-8748-2-git-send-email-ross.zwisler@linux.intel.com> <1443830494-8748-1-git-send-email-ross.zwisler@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1443830494-8748-1-git-send-email-ross.zwisler@linux.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 02, 2015 at 06:01:32PM -0600, Ross Zwisler wrote: > This series reverts some recent changes to the locking scheme in DAX introduced > by these two commits: > > commit 843172978bb9 ("dax: fix race between simultaneous faults") > commit 46c043ede471 ("mm: take i_mmap_lock in unmap_mapping_range() for DAX") > > Changes from v1: > - Squashed patches 1 and 2 from the first series into a single patch to avoid > adding another spot in the git history where we could end up referencing an > uninitialized pointer. > > Ross Zwisler (2): > Revert "mm: take i_mmap_lock in unmap_mapping_range() for DAX" > Revert "dax: fix race between simultaneous faults" > > fs/dax.c | 83 +++++++++++++++++++++++++------------------------------------ > mm/memory.c | 2 ++ > 2 files changed, 36 insertions(+), 49 deletions(-) > > -- > 2.1.0 *sigh* - even after these reverts we can deadlock on in the DAX PMD code with its original locking scheme. I can hit them 100% of the time with either generic/074 or generic/198 using either XFS or ext4. I'll debug exactly what's going on on Monday. The quick and easy workaround for this is to do a "return VM_FAULT_FALLBACK;" at the beginning of __dax_pmd_fault() to just turn off PMD faults while we rework the locking for v4.4. This saves us reverting and re-adding all the PMD code, and will let us ship v4.3 without known deadlocks. Other better ideas? - Ross