XFS deadlock fixed?
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,
Signature · 10 lines
Felipe Wilhelms Damasio TAGHOS - Tecnologia Rua Prof. Alvaro Alvim, 211 Porto Alegre - RS - (51) 3239-3180 www.taghos.com.br <http://www.taghos.com.br/>
Quoted 9 lines · 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 ofXFS: possible memory allocation deadlock in
kmem_alloc(mode:0x250)
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?
And here's the actual patch, sorry:
fs/xfs/linux-2.6/kmem.c +6 -2
@@ -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 ); }