lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 1 Jun 2012 12:12:05 -0400
From:	Dave Jones <davej@...hat.com>
To:	Hugh Dickins <hughd@...gle.com>
Cc:	Linus Torvalds <torvalds@...ux-foundation.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Cong Wang <amwang@...hat.com>, linux-kernel@...r.kernel.org,
	linux-mm@...ck.org
Subject: Re: WARNING: at mm/page-writeback.c:1990
 __set_page_dirty_nobuffers+0x13a/0x170()

On Fri, Jun 01, 2012 at 01:44:44AM -0700, Hugh Dickins wrote:

 > Please give this patch a try (preferably on current git), and let us know.
 > 
 > Thanks,
 > Hugh
 > 
 > --- 3.4.0+/mm/migrate.c	2012-05-27 10:01:43.104049010 -0700
 > +++ linux/mm/migrate.c	2012-06-01 00:10:58.080098749 -0700
 > @@ -436,7 +436,10 @@ void migrate_page_copy(struct page *newp
 >  		 * is actually a signal that all of the page has become dirty.
 >  		 * Whereas only part of our page may be dirty.
 >  		 */
 > -		__set_page_dirty_nobuffers(newpage);
 > +		if (PageSwapBacked(page))
 > +			SetPageDirty(newpage);
 > +		else
 > +			__set_page_dirty_nobuffers(newpage);
 >   	}
 >  
 >  	mlock_migrate_page(newpage, page);
 > --- 3.4.0+/mm/page-writeback.c	2012-05-29 08:09:58.304806782 -0700
 > +++ linux/mm/page-writeback.c	2012-06-01 00:23:43.984116973 -0700
 > @@ -1987,7 +1987,10 @@ int __set_page_dirty_nobuffers(struct pa
 >  		mapping2 = page_mapping(page);
 >  		if (mapping2) { /* Race with truncate? */
 >  			BUG_ON(mapping2 != mapping);
 > -			WARN_ON_ONCE(!PagePrivate(page) && !PageUptodate(page));
 > +			if (WARN_ON(!PagePrivate(page) && !PageUptodate(page)))
 > +				print_symbol(KERN_WARNING
 > +				    "mapping->a_ops->writepage: %s\n",
 > +				    (unsigned long)mapping->a_ops->writepage);
 >  			account_page_dirtied(page, mapping);
 >  			radix_tree_tag_set(&mapping->page_tree,
 >  				page_index(page), PAGECACHE_TAG_DIRTY);

So with this applied, I don't seem to be able to trigger it. It's been running two hours
so far. I'll leave it running, but right now I don't know what to make of this.

	Dave
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ