Attached script as an example on how to make kmem_alloc to fail (using
/var/lib/ceph as filesystem, it can be changed).

** Description changed:

+ === SRU Justification ===
+ 
+ Impact: xfs can hang on lack of contiguous memory page to be allocated.
+ Fix: upstream patch (b3f03bac8132207a20286d5602eda64500c19724).
+ Testcase:
+  - buddyinfo showing lack of contiguous blocks to be allocated (fragmented 
memory)
+  - to create 1 million files in 1 directory (attached script as an example)
+  - to observe message: XFS: possible memory allocation deadlock in kmem_alloc 
(mode:0x250)
+ 
+ === Original Description ===
+ 
  It was brought to my attention the following situation:
  
  http://tracker.ceph.com/issues/6301
  
  Precise kernel does not have XFS fix for kmem_alloc deadlock and users
  are facing this problem.
  
  Output example:
  
  """
  NFO: task ceph-osd:17047 blocked for more than 120 seconds.
  [153972.073476] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables 
this message.
  [153972.076322] ceph-osd        D ffff880869a28a60     0 17047   5423 
0x00000000
  [153972.076324]  ffff880869a28750 0000000000000002 ffff880867788ee8 
ffff8807e4e47500
  [153972.079259]  ffff880517addfd8 ffff880517addfd8 ffff880517addfd8 
ffff880869a28750
  [153972.082244]  0000000000000004 ffff880517addd48 ffff880517addd50 
7fffffffffffffff
  [153972.085278] Call Trace:
  [153972.088310]  [<ffffffff81410f4a>] ? schedule_timeout+0x1ca/0x270
  [153972.091371]  [<ffffffff8100abf1>] ? native_sched_clock+0x11/0x70
  [153972.094386]  [<ffffffff81070cda>] ? try_to_wake_up+0x1ea/0x270
  [153972.097358]  [<ffffffff81412623>] ? wait_for_completion+0xa3/0x120
  [153972.100322]  [<ffffffff81070d60>] ? try_to_wake_up+0x270/0x270
  [153972.103292]  [<ffffffff811a3702>] ? do_coredump+0x1b2/0xee0
  [153972.106212]  [<ffffffff811a3899>] ? do_coredump+0x349/0xee0
  [153972.109085]  [<ffffffff8134e0c4>] ? skb_queue_tail+0x24/0x60
  [153972.111954]  [<ffffffff813eb73a>] ? unix_dgram_sendmsg+0x5aa/0x640
  [153972.114839]  [<ffffffff81053049>] ? get_signal_to_deliver+0x199/0x5a0
  [153972.117743]  [<ffffffff81002353>] ? do_signal+0x63/0x8c0
  [153972.120632]  [<ffffffff81052030>] ? do_send_sig_info+0x60/0x90
  [153972.123521]  [<ffffffff81002c38>] ? do_notify_resume+0x88/0xa0
  [153972.126400]  [<ffffffff81414d6a>] ? int_signal+0x12/0x17
  [153972.299643] XFS: possible memory allocation deadlock in kmem_alloc 
(mode:0x250)
  [153972.868782] XFS: possible memory allocation deadlock in kmem_alloc 
(mode:0x250)
  [153973.038189] XFS: possible memory allocation deadlock in kmem_alloc 
(mode:0x250)
  [153974.309978] XFS: possible memory allocation deadlock in kmem_alloc 
(mode:0x250)
  """
  
  Fix, already included in Utopic, is upstream commit:
  b3f03bac8132207a20286d5602eda64500c19724
  
  Author: Dave Chinner <[email protected]>
  Date:   Tue Dec 3 23:50:57 2013 +1100
  
-     xfs: xfs_dir2_block_to_sf temp buffer allocation fails
-     
-     If we are using a large directory block size, and memory becomes
-     fragmented, we can get memory allocation failures trying to
-     kmem_alloc(64k) for a temporary buffer. However, there is not need
-     for a directory buffer sized allocation, as the end result ends up
-     in the inode literal area. This is, at most, slightly less than 2k
-     of space, and hence we don't need an allocation larger than that
-     fora temporary buffer.
-     
-     Signed-off-by: Dave Chinner <[email protected]>
-     Reviewed-by: Ben Myers <[email protected]>
-     Signed-off-by: Ben Myers <[email protected]>
+     xfs: xfs_dir2_block_to_sf temp buffer allocation fails
+ 
+     If we are using a large directory block size, and memory becomes
+     fragmented, we can get memory allocation failures trying to
+     kmem_alloc(64k) for a temporary buffer. However, there is not need
+     for a directory buffer sized allocation, as the end result ends up
+     in the inode literal area. This is, at most, slightly less than 2k
+     of space, and hence we don't need an allocation larger than that
+     fora temporary buffer.
+ 
+     Signed-off-by: Dave Chinner <[email protected]>
+     Reviewed-by: Ben Myers <[email protected]>
+     Signed-off-by: Ben Myers <[email protected]>

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1382333

Title:
  XFS: memory allocation deadlock in kmem_alloc (mode:0x8250)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1382333/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to