VmallocTotalが34359738367KBの理由は何ですか?

VmallocTotalが34359738367KBの理由は何ですか?

/proc/meminfoメモリ統計がありますVmallocTotal。それは次のように説明されています。

vmalloc メモリ領域の合計サイズ。

存在するproc マニュアルページ

そして他の場所では

カーネルで vmalloc を割り当てるために使用できる合計メモリ

それは非常に高い数であり、私が検索したところで偶然34359738367 kBだったので好奇心を呼び起こしました。これは任意の最大値のようです。しかし、34359738367kBのポイントは何ですか? 2の倍数でも素数でもありませんが、16進数では0x7FFFFFFFFです。また、pmapプロセスメモリマップアドレスが最大0x7FFFFFFFFであることを確認しました。それでは、0x7FFFFFFFFの実際の意味は何ですか?

答え1

32TiB、つまり空間の量です。vmallocLinuxカーネルのx86-64メモリマップに予約されています。

64ビットのアドレス空間が大きいため、大きなものです。私はレイアウトを設計するときに具体的なサイズがきれいに細分化される以外に意味がないと思います。

関連情報