Changes between Version 4 and Version 5 of TipAndDoc/storage/filesystem/XFS


Ignore:
Timestamp:
Sep 23, 2012 10:43:49 AM (12 years ago)
Author:
mitty
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TipAndDoc/storage/filesystem/XFS

    v4 v5  
    55 > XFSって1ページ書き出すだけでもスタック3.5Kも使うのよね。カーネルスタックはページサイズx2なので8Kしかない。 
    66 * [http://developer.cybozu.co.jp/kazuho/2010/04/mysql-and-the-x.html Kazuho@Cybozu Labs: MySQL and the XFS stack overflow problem] 
     7 * [https://lkml.org/lkml/2012/6/18/646 LKML: Dave Chinner: Re: XFS status update for May 2012] 
     8 > IOWs,the only solution that would fix the problem was to split 
     9 > allocations into a different stack so that we have the approximately 
     10 > 4k of stack space needed for the worst case XFS stack usage (double 
     11 > btree split requiring metadata IO) and still have enough space left 
     12 > for the DM/MD/SCSI stack underneath it... 
    713 
    814 * [https://lkml.org/lkml/2010/4/7/110 LKML: John Berthels: PROBLEM + POSS FIX: kernel stack overflow, xfs, many disks, heavy write load, 8k stack, x86-64] 
     
    1218 * [https://lkml.org/lkml/2012/7/20/246 LKML: Eric Sandeen: Re: Stack overrun in 3.5.0-rc7 w/ cfq] 別の例 
    1319 
     20 == CONFIG_4KSTACKS == 
     21 * [http://mkosaki.blog46.fc2.com/blog-entry-1110.html 革命の日々! さよなら CONFIG_4KSTACKS] 
     22 > XFSスタックオーバーフロー問題の余波でCONFIG_4KSTACKSが消えました。といっても従来の 
     23 > 8Kスタックとは異なりプロセス8K + IRQ 4K のハイブリッドスタックに以降することになった。 
     24 >  
     25 > ただし、元々4Kスタックがなかった非x86アーキではスタックサイズが変わってないので 
     26 > 全然本質的な解決じゃない 
     27 
     28 * [https://lkml.org/lkml/2010/6/16/128 LKML: Christoph Hellwig: (PATCH) x86-32: remove CONFIG_4KSTACKS] 
     29  * http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=commitdiff;h=dcfa726280116dd31adad37da940f542663567d0 
     30 
     31 *  [http://d.hatena.ne.jp/naoya/20071008/1191824562 x86 Linux のメモリモデル、プロセス空間切り替え、カーネルスタック - naoyaのはてなダイアリー] 
     32 > Linux カーネルは割り込みスタックを用意していないという実装上の特徴がある。 
     33  *  これが変更になった? 
     34 
     35 == disable dirty page writeback == 
     36 
     37 * twitter:kosaki55tea/status/183995247800500225 
     38 > > @kosaki55tea Linux 的には何がトレンドなの?> FileSystem 
     39 > @osada XFSのスタックの問題は解決ずみなので自分の好みで決めていい。と言いたかったのです 
     40 * https://twitter.com/kosaki55tea/status/167843479936970753 
     41 > > @kosaki55tea @m_bird @rkmathi http://mkosaki.blog46.fc2.com/blog-entry-1097.html … これですかね? 
     42 > @naota344 @m_bird @rkmathi ああ、それなら解決した。今はメモリ回収の延長でwritebackしない 
     43 
     44 * [http://oss.sgi.com/archives/xfs/2011-07/msg00332.html (RFC PATCH 0/5) Reduce filesystem writeback from page reclaim (again)] 
     45 > {{{ 
     46 > Patch 1 disables writeback of filesystem pages from direct reclaim 
     47 >         entirely. Anonymous pages are still written 
     48 > Patch 2 disables writeback of filesystem pages from kswapd unless 
     49 >         the priority is raised to the point where kswapd is considered 
     50 >         to be in trouble. 
     51 > Patch 3 throttles reclaimers if too many dirty pages are being 
     52 >         encountered and the zones or backing devices are congested. 
     53 > Patch 4 invalidates dirty pages found at the end of the LRU so they 
     54 >         are reclaimed quickly after being written back rather than 
     55 >         waiting for a reclaimer to find them 
     56 > Patch 5 tries to prioritise inodes backing dirty pages found at the end 
     57 >         of the LRU. 
     58 > }}} 
     59 
     60 * [http://mkosaki.blog46.fc2.com/blog-entry-1110.html 革命の日々! さよなら CONFIG_4KSTACKS] 
     61 > いまのXFSは別の問題があって、David Chinnerがあんまり考えずにメモリ回収時のwrite pageをdisableしちゃったからダーティーページが多いときに負荷を書けると回収可能キャッシュ残っててもOOM Killerで死ぬよ  
     62  * 上のpatchでこの副作用が起きているのでは? 
     63 
     64 * [http://www.takatan.net/hiki/hiki.cgi?kswapd takatan hiki - kswapd] 
     65 
     66 === disable dirty page writebackで回避できていないように見える例 === 
     67 * [https://lkml.org/lkml/2012/7/20/246 LKML: Eric Sandeen: Re: Stack overrun in 3.5.0-rc7 w/ cfq] 
     68  * 3.5で普通に突き破っているように見えるが、これは結局何が起きたのか 
     69  * パッチで回避できたはずなのではないのか 
     70 
     71 == その他 == 
     72 * [https://lkml.org/lkml/2011/3/14/407 LKML: Ted Ts'o: Re: ext4 deep stack with mark_page_dirty reclaim] 
     73  * ext4でstack overflowした例? 
     74  * この例だと、symbolにext4と入っているスタックで2440byte消費しているように見える 
     75  * XFSだけでなく、他のFSでもstackを突き破る可能性があるのでは…? 
    1476 = misc = 
    1577