| 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を突き破る可能性があるのでは…? |