Chris,<div><br></div><div>Thanks for the reply.  You have been a great help.</div><div><br></div><div>Do you know if these changes were implemented any farther back than 3.2?  I wouldn&#39;t feel comfortable running a release candidate kernel in a production environment.</div>
<div><br></div><div>Thanks again<br><br><div class="gmail_quote">On Fri, Dec 9, 2011 at 6:55 AM, Christoph Hellwig <span dir="ltr">&lt;<a href="mailto:hch@infradead.org">hch@infradead.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Thu, Dec 08, 2011 at 01:03:51PM -0500, Ryan C. England wrote:<br>
&gt; I am looking for assistance on XFS which is why I have joined this mailing<br>
&gt; list.  I&#39;m receiving a stack overflow on our file server.  The server is<br>
&gt; running Scientific Linux 6.1 with the following kernel,<br>
&gt; 2.6.32-131.21.1.el6.x86_64.<br>
&gt;<br>
&gt; This is causing random reboots which is more annoying than anything.  I<br>
&gt; found a couple of links in the archives but wasn&#39;t quite sure how to apply<br>
&gt; this patch.  I can provide whatever information necessary in order for<br>
&gt; assistance in troubleshooting.<br>
<br>
</div>It&#39;s really mostly an issue with the VM page reclaim and writeback<br>
code.  The kernel still has the old balance dirty pages code which calls<br>
into writeback code from the stack of the write system call, which<br>
already comes from NFSD with massive amounts of stack used.  Then<br>
the writeback code calls into XFS to write data out, then you get the<br>
full XFS btree code, which then ends up in kmalloc and memory reclaim.<br>
<br>
You probably have only a third of the stack actually used by XFS, the<br>
rest is from NFSD/writeback code and page reclaim.  I don&#39;t think any<br>
of this is easily fixable in a 2.6.32 codebase.  Current mainline 3.2-rc<br>
now has the I/O-less balance dirty pages which will basically split the<br>
stack footprint in half, but it&#39;s an invasive change to the writeback<br>
code that isn&#39;t easily backportable.<br>
<div><div class="h5"><br>
&gt; Dec  6 20:27:55 localhost kernel: ------------[ cut here ]------------<br>
&gt; Dec  6 20:27:55 localhost kernel: WARNING: at arch/x86/kernel/irq_64.c:47<br>
&gt; handle_irq+0x8f/0xa0() (Not tainted)<br>
&gt; Dec  6 20:27:55 localhost kernel: Hardware name: X8DTH-i/6/iF/6F<br>
&gt; Dec  6 20:27:55 localhost kernel: do_IRQ: nfsd near stack overflow<br>
&gt; (cur:ffff880622208000,sp:ffff880622208160)<br>
&gt; Dec  6 20:27:55 localhost kernel: Modules linked in: mpt2sas<br>
&gt; scsi_transport_sas raid_class mptctl mptbase nfsd lockd nfs_acl auth_rpcgss<br>
&gt; autofs4 sunrpc cpufreq_ondemand acpi_cpufreq freq_table ip6t_REJECT<br>
&gt; nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter<br>
&gt; ip6_tables ipv6 xfs exportfs dm_mirror dm_region_hash dm_log ses enclosure<br>
&gt; ixgbe mdio microcode igb serio_raw ghes hed i2c_i801 i2c_core sg iTCO_wdt<br>
&gt; iTCO_vendor_support ioatdma dca i7core_edac edac_core shpchp ext4 mbcache<br>
&gt; jbd2 megaraid_sas(U) sd_mod crc_t10dif ahci dm_mod [last unloaded:<br>
&gt; scsi_wait_scan]<br>
&gt; Dec  6 20:27:55 localhost kernel: Pid: 2898, comm: nfsd Not tainted<br>
&gt; 2.6.32-131.21.1.el6.x86_64 #1<br>
&gt; Dec  6 20:27:55 localhost kernel: Call Trace:<br>
&gt; Dec  6 20:27:55 localhost kernel: &lt;IRQ&gt;  [&lt;ffffffff81067097&gt;] ?<br>
&gt; warn_slowpath_common+0x87/0xc0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8106f6da&gt;] ?<br>
&gt; __do_softirq+0x11a/0x1d0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81067186&gt;] ?<br>
&gt; warn_slowpath_fmt+0x46/0x50<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8100c2cc&gt;] ?<br>
&gt; call_softirq+0x1c/0x30<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8100dfcf&gt;] ?<br>
&gt; handle_irq+0x8f/0xa0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff814e310c&gt;] ? do_IRQ+0x6c/0xf0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8100bad3&gt;] ?<br>
&gt; ret_from_intr+0x0/0x11<br>
&gt; Dec  6 20:27:55 localhost kernel: &lt;EOI&gt;  [&lt;ffffffff8115b80f&gt;] ?<br>
&gt; kmem_cache_free+0xbf/0x2b0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811a2542&gt;] ?<br>
&gt; free_buffer_head+0x22/0x50<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811a2919&gt;] ?<br>
&gt; try_to_free_buffers+0x79/0xc0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa0259a9c&gt;] ?<br>
&gt; xfs_vm_releasepage+0xbc/0x130 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8110c6c0&gt;] ?<br>
&gt; try_to_release_page+0x30/0x60<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811262c1&gt;] ?<br>
&gt; shrink_page_list.clone.0+0x4f1/0x5c0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81126688&gt;] ?<br>
&gt; shrink_inactive_list+0x2f8/0x740<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8111f7f6&gt;] ?<br>
&gt; free_pcppages_bulk+0x2b6/0x390<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811278df&gt;] ?<br>
&gt; shrink_zone+0x38f/0x520<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811646f8&gt;] ?<br>
&gt; __mem_cgroup_uncharge_common+0x198/0x270<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81128684&gt;] ?<br>
&gt; zone_reclaim+0x354/0x410<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811292c0&gt;] ?<br>
&gt; isolate_pages_global+0x0/0x380<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8111ebf4&gt;] ?<br>
&gt; get_page_from_freelist+0x694/0x820<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81126882&gt;] ?<br>
&gt; shrink_inactive_list+0x4f2/0x740<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8111fb01&gt;] ?<br>
&gt; __alloc_pages_nodemask+0x111/0x8b0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8110d17e&gt;] ?<br>
&gt; find_get_page+0x1e/0xa0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8110e307&gt;] ?<br>
&gt; find_lock_page+0x37/0x80<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811546da&gt;] ?<br>
&gt; alloc_pages_current+0xaa/0x110<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8110d6b7&gt;] ?<br>
&gt; __page_cache_alloc+0x87/0x90<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8110e45f&gt;] ?<br>
&gt; find_or_create_page+0x4f/0xb0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa025b945&gt;] ?<br>
&gt; _xfs_buf_lookup_pages+0x145/0x360 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa025b2ab&gt;] ?<br>
&gt; _xfs_buf_initialize+0xcb/0x140 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa025cb57&gt;] ?<br>
&gt; xfs_buf_get+0x77/0x1b0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa025ccbc&gt;] ?<br>
&gt; xfs_buf_read+0x2c/0x100 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa0250e39&gt;] ?<br>
&gt; xfs_trans_read_buf+0x219/0x440 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa021efde&gt;] ?<br>
&gt; xfs_btree_read_buf_block+0x5e/0xc0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa021f6d4&gt;] ?<br>
&gt; xfs_btree_lookup_get_block+0x84/0xf0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa021d64c&gt;] ?<br>
&gt; xfs_btree_ptr_offset+0x4c/0x90 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa021fd5f&gt;] ?<br>
&gt; xfs_btree_lookup+0xbf/0x470 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa0209cfa&gt;] ?<br>
&gt; xfs_alloc_ag_vextent_near+0x98a/0xb70 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa0250afd&gt;] ?<br>
&gt; xfs_trans_log_buf+0x9d/0xe0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa021348f&gt;] ?<br>
&gt; xfs_bmbt_lookup_eq+0x1f/0x30 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa021a2e4&gt;] ?<br>
&gt; xfs_bmap_add_extent_delay_real+0xe54/0x18d0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa025737a&gt;] ?<br>
&gt; kmem_zone_alloc+0x9a/0xe0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa01ff009&gt;] ?<br>
&gt; xfs_trans_mod_dquot_byino+0x79/0xd0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa021b15f&gt;] ?<br>
&gt; xfs_bmap_add_extent+0x3ff/0x420 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa021ce7a&gt;] ?<br>
&gt; xfs_bmbt_init_cursor+0x4a/0x150 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa021bc94&gt;] ?<br>
&gt; xfs_bmapi+0xb14/0x11a0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff814dc986&gt;] ?<br>
&gt; down_write+0x16/0x40<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa023ddd5&gt;] ?<br>
&gt; xfs_iomap_write_allocate+0x1c5/0x3b0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81248a9e&gt;] ?<br>
&gt; generic_make_request+0x21e/0x5b0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa023eb19&gt;] ?<br>
&gt; xfs_iomap+0x389/0x440 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8119b6ac&gt;] ?<br>
&gt; __mark_inode_dirty+0x6c/0x160<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa0257f4d&gt;] ?<br>
&gt; xfs_map_blocks+0x2d/0x40 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa0259588&gt;] ?<br>
&gt; xfs_page_state_convert+0x2f8/0x750 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81268505&gt;] ?<br>
&gt; radix_tree_gang_lookup_tag_slot+0x95/0xe0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa0259b96&gt;] ?<br>
&gt; xfs_vm_writepage+0x86/0x170 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81120d67&gt;] ?<br>
&gt; __writepage+0x17/0x40<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811220f9&gt;] ?<br>
&gt; write_cache_pages+0x1c9/0x4a0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81120d50&gt;] ?<br>
&gt; __writepage+0x0/0x40<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa023ab93&gt;] ?<br>
&gt; xfs_iflush+0x203/0x210 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa025af9f&gt;] ?<br>
&gt; xfs_bdwrite+0x5f/0xa0 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa024fe99&gt;] ?<br>
&gt; xfs_trans_unlocked_item+0x39/0x60 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811223f4&gt;] ?<br>
&gt; generic_writepages+0x24/0x30<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa025898e&gt;] ?<br>
&gt; xfs_vm_writepages+0x5e/0x80 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81122421&gt;] ?<br>
&gt; do_writepages+0x21/0x40<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8119bc8d&gt;] ?<br>
&gt; writeback_single_inode+0xdd/0x2c0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8119c08e&gt;] ?<br>
&gt; writeback_sb_inodes+0xce/0x180<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8119c1eb&gt;] ?<br>
&gt; writeback_inodes_wb+0xab/0x1b0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8112181e&gt;] ?<br>
&gt; balance_dirty_pages+0x21e/0x4d0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811a3851&gt;] ?<br>
&gt; mark_buffer_dirty+0x61/0xa0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81121b34&gt;] ?<br>
&gt; balance_dirty_pages_ratelimited_nr+0x64/0x70<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8110dd23&gt;] ?<br>
&gt; generic_file_buffered_write+0x1c3/0x2a0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8106dcb7&gt;] ?<br>
&gt; current_fs_time+0x27/0x30<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa0261e4f&gt;] ?<br>
&gt; xfs_write+0x76f/0xb70 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff814174b5&gt;] ?<br>
&gt; memcpy_toiovec+0x55/0x80<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa025d800&gt;] ?<br>
&gt; xfs_file_aio_write+0x0/0x70 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa025d861&gt;] ?<br>
&gt; xfs_file_aio_write+0x61/0x70 [xfs]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811723bb&gt;] ?<br>
&gt; do_sync_readv_writev+0xfb/0x140<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8118ae9d&gt;] ?<br>
&gt; d_obtain_alias+0x4d/0x160<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8108e120&gt;] ?<br>
&gt; autoremove_wake_function+0x0/0x40<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff812056b6&gt;] ?<br>
&gt; security_task_setgroups+0x16/0x20<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff81205356&gt;] ?<br>
&gt; security_file_permission+0x16/0x20<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8117347f&gt;] ?<br>
&gt; do_readv_writev+0xcf/0x1f0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa047f852&gt;] ?<br>
&gt; nfsd_setuser_and_check_port+0x62/0xb0 [nfsd]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff811735e6&gt;] ?<br>
&gt; vfs_writev+0x46/0x60<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa04813d7&gt;] ?<br>
&gt; nfsd_vfs_write+0x107/0x430 [nfsd]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8116fe22&gt;] ?<br>
&gt; dentry_open+0x52/0xc0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa04839fe&gt;] ?<br>
&gt; nfsd_open+0x13e/0x210 [nfsd]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa0483e87&gt;] ?<br>
&gt; nfsd_write+0xe7/0x100 [nfsd]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa048b7df&gt;] ?<br>
&gt; nfsd3_proc_write+0xaf/0x140 [nfsd]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa047c43e&gt;] ?<br>
&gt; nfsd_dispatch+0xfe/0x240 [nfsd]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa03f24d4&gt;] ?<br>
&gt; svc_process_common+0x344/0x640 [sunrpc]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8105dbc0&gt;] ?<br>
&gt; default_wake_function+0x0/0x20<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa03f2b10&gt;] ?<br>
&gt; svc_process+0x110/0x160 [sunrpc]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa047cb62&gt;] ? nfsd+0xc2/0x160<br>
&gt; [nfsd]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffffa047caa0&gt;] ? nfsd+0x0/0x160<br>
&gt; [nfsd]<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8108ddb6&gt;] ? kthread+0x96/0xa0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8100c1ca&gt;] ? child_rip+0xa/0x20<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8108dd20&gt;] ? kthread+0x0/0xa0<br>
&gt; Dec  6 20:27:55 localhost kernel: [&lt;ffffffff8100c1c0&gt;] ? child_rip+0x0/0x20<br>
&gt; Dec  6 20:27:55 localhost kernel: ---[ end trace e8b62253d4084e2b ]---<br>
&gt;<br>
&gt; --<br>
&gt; Ryan C. England<br>
</div></div>&gt; Corvid Technologies &lt;<a href="http://www.corvidtec.com/" target="_blank">http://www.corvidtec.com/</a>&gt;<br>
<div class="im">&gt; office: <a href="tel:704-799-6944%20x158" value="+17047996944">704-799-6944 x158</a><br>
&gt; cell:    <a href="tel:980-521-2297" value="+19805212297">980-521-2297</a><br>
<br>
</div>&gt; _______________________________________________<br>
&gt; xfs mailing list<br>
&gt; <a href="mailto:xfs@oss.sgi.com">xfs@oss.sgi.com</a><br>
&gt; <a href="http://oss.sgi.com/mailman/listinfo/xfs" target="_blank">http://oss.sgi.com/mailman/listinfo/xfs</a><br>
<br>
---end quoted text---<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Ryan C. England</div><div><a href="http://www.corvidtec.com/" target="_blank">Corvid Technologies</a></div>office: 704-799-6944 x158<br>cell:    980-521-2297<br>

</div>