From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756602Ab2AXOFL (ORCPT ); Tue, 24 Jan 2012 09:05:11 -0500 Received: from cantor2.suse.de ([195.135.220.15]:53027 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751809Ab2AXOFJ (ORCPT ); Tue, 24 Jan 2012 09:05:09 -0500 Date: Tue, 24 Jan 2012 15:05:03 +0100 From: Jan Kara To: Kelbel Junior Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com Subject: Re: XFS problem Message-ID: <20120124140503.GC18136@quack.suse.cz> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Just adding XFS list to catch more attention... On Fri 20-01-12 15:55:18, Kelbel Junior wrote: > Hello again ... > > So ... after changing the memory allocator SLUB to SLAB in the Linux > kernel and apply the patch mentioned below, the system was stable for > 3 days and today it happened again delay to deliver content on the > disc. > > When I went to see if there was something wrong in /var/log/messages > appear several times this block: > > server012 kernel: XFS: possible memory allocation deadlock in > kmem_alloc (mode:0x250) > server012 kernel: Pid: 24885, comm: kworker/0:3 Tainted: G W 2.6.38.8-cve #2 > server012 kernel: Call Trace: > server012 kernel: [] ? kmem_alloc+0xa6/0xb4 > server012 kernel: [] ? kmem_realloc+0x1e/0x51 > server012 kernel: [] ? > xfs_iext_realloc_indirect+0x3e/0x46 > server012 kernel: [] ? xfs_iext_irec_new+0x36/0xcf > server012 kernel: [] ? kmem_alloc+0x67/0xb4 > server012 kernel: [] ? > xfs_iext_add_indirect_multi+0x195/0x1de > server012 kernel: [] ? xfs_iext_add+0x1a6/0x1e2 > server012 kernel: [] ? xfs_btree_update+0x68/0xb5 > server012 kernel: [] ? xfs_iext_insert+0x34/0x5f > server012 kernel: [] ? > xfs_bmap_add_extent_unwritten_real+0xace/0xc47 > server012 kernel: [] ? xfs_iext_bno_to_irec+0x85/0xae > server012 kernel: [] ? xfs_bmap_add_extent+0x1fd/0x326 > server012 kernel: [] ? kmem_zone_alloc+0x67/0xb4 > server012 kernel: [] ? xfs_bmbt_init_cursor+0x3a/0x110 > server012 kernel: [] ? xfs_bmapi+0x9ff/0xd3e > server012 kernel: [] ? > xfs_iomap_write_unwritten+0x1d8/0x27d > server012 kernel: [] ? kobject_put+0x47/0x4c > server012 kernel: [] ? put_device+0x12/0x14 > server012 kernel: [] ? xfs_end_io+0x42/0x91 > server012 kernel: [] ? process_one_work+0x189/0x25e > server012 kernel: [] ? xfs_end_io+0x0/0x91 > server012 kernel: [] ? worker_thread+0x132/0x24f > server012 kernel: [] ? worker_thread+0x0/0x24f > server012 kernel: [] ? kthread+0x81/0x89 > server012 kernel: [] ? kernel_thread_helper+0x4/0x10 > server012 kernel: [] ? kthread+0x0/0x89 > server012 kernel: [] ? kernel_thread_helper+0x0/0x10 > > Has anyone seen or had this problem? > > below "uname" on host: > Linux server012 2.6.38.8 #2 SMP Tue Jan 17 10:17:05 BRST 2012 x86_64 > Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz GenuineIntel GNU/Linux > > > > Thanks. > Kelbel Junior > > > > > 2012/1/16 Kelbel Junior : > > Hello, everybody. > > It appeared that same error message when using kernel version 2.6.38.8 ... > > > > Several lines in /var/log/messages with: > > kernel: XFS: possible memory allocation deadlock in kmem_alloc (mode: 0x250) > > > > Does anyone know know if this bug has been fixed in newer versions of Linux > > kernel? 3.x maybe? > > > > > > 2011/5/11 Christoph Hellwig <> > >> > >> And here's the actual patch, sorry: > >> > >> > >> Index: linux-2.6/fs/xfs/linux-2.6/kmem.c > >> =================================================================== > >> --- linux-2.6.orig/fs/xfs/linux-2.6/kmem.c 2011-05-11 17:29:51.729191621 > >> +0200 > >> > >> +++ linux-2.6/fs/xfs/linux-2.6/kmem.c 2011-05-11 17:30:22.915689382 +0200 > >> @@ -56,10 +56,12 @@ kmem_alloc(size_t size, unsigned int __n > >> ptr = kmalloc(size, lflags); > >> if (ptr || (flags & (KM_MAYFAIL|KM_NOSLEEP))) > >> > >> return ptr; > >> - if (!(++retries % 100)) > >> + if (!(++retries % 100)) { > >> xfs_err(NULL, > >> "possible memory allocation deadlock in %s (mode:0x%x)", > >> __func__, lflags); > >> + dump_stack(); > >> > >> + } > >> congestion_wait(BLK_RW_ASYNC, HZ/50); > >> } while (1); > >> } > >> @@ -112,10 +114,12 @@ kmem_zone_alloc(kmem_zone_t *zone, unsig > >> ptr = kmem_cache_alloc(zone, lflags); > >> if (ptr || (flags & (KM_MAYFAIL|KM_NOSLEEP))) > >> > >> return ptr; > >> - if (!(++retries % 100)) > >> + if (!(++retries % 100)) { > >> xfs_err(NULL, > >> "possible memory allocation deadlock in %s (mode:0x%x)", > >> __func__, lflags); > >> + dump_stack(); > >> > >> + } > >> congestion_wait(BLK_RW_ASYNC, HZ/50); > >> } while (1); > >> } > >> > >> > >> 2011/5/11 Christoph Hellwig <> > >>> > >>> You're probably running into a different issue. Any chance you can try > >>> the attached patch to see where you're stuck exactly? > >>> > >>> Also in case you're using slub (CONFIG_SLUB) can you check if it still > >>> > >>> happens when using slab (CONFIG_SLAB) instead? > >>> > >>> > >>> 2011/5/10 Felipe Wilhelms Damasio - Taghos <> > >>>> > >>>> Hi Mr. Hellwig, > >>>> > >>>> I saw the XFS deadlock thread regarding 2.6.38: > >>>> > >>>> http://www.linux.sgi.com/archives/xfs/2011-03/msg00185.html > >>>> > >>>> > >>>> I'm seeing too in 2.6.38.4. A lot of > >>>> > >>>> XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250) > >>>> > >>>> I checked the changelog for 2.6.38.6 and can't be sure if the fix > >>>> got > >>>> in...could you tell me if it did? > >>>> > >>>> > >>>> Thanks, > >>>> > >>>> -- > >>>> > >>>> Felipe Wilhelms Damasio > >>>> > >>>> > >>>> TAGHOS - Tecnologia > >>>> Rua Prof. Alvaro Alvim, 211 > >>>> Porto Alegre - RS - (51) 3239-3180 > >>>> www.taghos.com.br > >>>> > >>> > >> > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Jan Kara SUSE Labs, CR