From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Hansen Subject: Re: Dirty/Access bits vs. page content Date: Tue, 22 Apr 2014 14:46:39 -0700 Message-ID: <5356E33F.3000908@intel.com> References: <1398032742.19682.11.camel@pasglop> <1398054064.19682.32.camel@pasglop> <1398057630.19682.38.camel@pasglop> <53558507.9050703@zytor.com> <53559F48.8040808@intel.com> <20140422075459.GD11182@twins.programming.kicks-ass.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Return-path: Received: from mga02.intel.com ([134.134.136.20]:39985 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752658AbaDVVqk (ORCPT ); Tue, 22 Apr 2014 17:46:40 -0400 In-Reply-To: Sender: linux-arch-owner@vger.kernel.org List-ID: To: Linus Torvalds , Peter Zijlstra , Hugh Dickins Cc: "H. Peter Anvin" , Benjamin Herrenschmidt , "linux-arch@vger.kernel.org" , linux-mm , Russell King - ARM Linux , Tony Luck On 04/22/2014 02:36 PM, Linus Torvalds wrote: > That said, Dave Hansen did report a BUG_ON() in > mpage_prepare_extent_to_map(). His line number was odd, but I assume > it's this one: > > BUG_ON(PageWriteback(page)); > > which may be indicative of some oddity here wrt the dirty bit. I just triggered it a second time. It only happens with my debugging config[1] *and* those two fix patches. It doesn't happen on the vanilla kernel with lost dirty bit. The line numbers point to the head = page_buffers(page); which is: #define page_buffers(page) \ ({ \ BUG_ON(!PagePrivate(page)); \ ((struct buffer_head *)page_private(page)); \ }) 1. http://sr71.net/~dave/intel/20140422-lostdirtybit/config-ext4-bugon.20140422 Config that doesn't trigger it: http://sr71.net/~dave/intel/20140422-lostdirtybit/config-ext4-nobug.20140422