@koie 80386の時代にはそれくらいが手ごろだったってだけでしょう。同じくらいの時期でも8KBのCPUとかありました。
2018-11-06 14:51:40@n_soda 64bitにするときにページサイズを大きくしなかったのはなんででしょう? メモリ空間がひろがるけどトランジスタも増えるし微細化で速度も上がるし4Kのままでバランスとれるって判断だったんだろうか?
2018-11-06 15:07:52@n_soda @koie 逆に VAX の頃は 512byte/page だったし、本当に「手頃」で決めてたんだと思う。 大雑把に言えるのは、その時の主力メモリ容量の sqrt ぐらいが1ページサイズとして都合が良い事が多い、と言う辺りでしょうか(それぐらいを想定するアプリ・周辺HWが多い、と言う意味で)
2018-11-06 15:09:45@koie System/370は最初2KiBでしたが、その後4KiBに。この伝統が今も生きてます。8KiBにしたSparkとか、複数選択可能な中で16KiBを標準にしたIA-64はフェードアウト…
2018-11-06 15:31:34@koie よく分かりませんが、32bit時代のバイナリを動かそうと思うと仮想記憶システムは最低ページサイズ4Kで動かさなければいけないし、だったら、まいっかみたいな判断ですかねえ?
2018-11-06 17:39:00@koie ページング方式 ja.wikipedia.org/wiki/%E3%83%9A… >ページサイズは512バイトから8192バイトが一般的であり、特に4096バイトが最もよく使われるが、特殊用途として4Mバイトやそれ以上のサイズのページも使われることがある。 過去のシステムを引きついでいるからですね
2018-11-06 18:13:56@n_soda @koie 昔の整列制限のままmmapできないとつらいから、でしょうね。しがらみ少な目のiOSは16KBとか聞いた気がします
2018-11-06 19:04:38@takehiro_t @koie なるほど。32bitから64bitへの移行で問題が生じるのは避けたいですもんね。
2018-11-06 19:11:51@a_saitoh @koie x86を含め今のCPUでは、ハードウェア的には複数の異なるページサイズをサポートしているものの方が多いしLinuxもhugepagesなどでサポートしてますよね。@koie さんの疑問はハードウェア的にはサポートしているのに、なぜソフトウェアの側でデフォルトのページサイズを変更しなかったか?ではないかと。
2018-11-06 19:14:31@n_soda @takehiro_t @koie Linuxでも、もう32bit互換重要じゃないから16KBに変えようという議論、何回か出てるんですが、進みませんねえ、ほとんどのひとが出来るものならやってみろてきな冷笑的な態度で議論に参加するので
2018-11-06 19:48:07@kosaki55tea @takehiro_t @koie 基盤となるソフトウェアでは、互換性に関して懸念のある変更って嫌われますからねえ… 世の中にあるソフトウェアが、すべてきっちり書いてあるのであれば互換性の問題も出ないんでしょうけど…
2018-11-06 19:51:38@n_soda @takehiro_t @koie POWERはLinusの趣味により、CPUのページサイズが4KBでも、16KB単位でカーネルが管理するようになっており、そのため、/procなどでページサイズをみると、ハードウェアのページサイズと、カーネルページサイズの2つが表示されるが、なにが違うのか普通の人には意味不明である
2018-11-06 19:53:01@kosaki55tea @takehiro_t @koie VAX BSDも昔からハードウェアのページサイズ(512バイト)よりも大きなサイズで管理してますが、こっちは512バイトだとページングが遅すぎるせいだったような気がします。NetBSD/vaxだと4KBで昔からこうだった気がしてたんですが、4.2BSDのソース確認したらCLBYTES=2KBっぽいので記憶違いみたいorz
2018-11-06 20:19:2564bit Linux では 16KBページが候補なのね。 x64は、4KBの次は2MBしか使えないのかと思い込んでいた… nminoru.jp/~nminoru/progr… twitter.com/kosaki55tea/st…
2018-11-06 20:26:49@shirouzu あー。 16KBってのはハードウェア的には4KBのままで、ソフトウェア的に16KBにするって話なんでしょうか。その場合、ページテーブルが消費するメモリは節約できませんが…
2018-11-06 20:57:08@n_soda ページサイズが小さすぎるとdisk IOの速度が出ないというのはありそうですね。今だったらまとめ読み・先読みで克服できてそうだけど。
2018-11-07 10:10:22SPARCはページサイズ4K固定だけど、線形マッピングという機能があってPTEにマッピングサイズを指定して4K,256K,16M,4Gを指定して大きなページをつくれるようだ。
2018-11-07 12:06:42