remap_file_pages()というマイナーなシステムコールがある。
VM屋さんはみんな大嫌いなノンリニアーマッピング(VM_NONLINER)を実現するためのシステムコールだ(*)

んで、このシステムコール

1.引数となったアドレスの vma->vm_flags が VM_CAN_NONLINEAR がONでなければEINVAL
2.mapping_cap_account_dirty() が真なら、内部的にmmapやりなおし相当にfallback

という仕様になっていて、1によりhugetlbfs はEINVAL、2によりディスク系のFSは全滅。
よって、効果があるのはramfsとtmpfsぐらい?という状況

・・・なんだけど、もともとの開発動機がラージデータベースサポートじゃなかったっけ?
DB向けでHugetlbfs未サポートで許してもらえるってのは要するに誰も使ってないってことじゃねーの?

とゆーわけで、VM_NONLINER関係のコードを全部消してしまえ。とかいう極論に考えが傾きつつあるこのごろ。


(*) ようするに Lee Schermerhorn の仕込んだバグを直すのに休日を一日つぶされたから逆恨みしてるだけなんですが。