2019-04-01から1ヶ月間の記事一覧

initcallとは

はじめに linux kernel1を読んでいると、**_initcall(core_initcallとか__initcallとかが色々なところで定義されている。例えば、sysenterの初期設定(IA32_SYSENTER_(CS|EIP|ESP))をしているarch/i386/kernel/sysenter.cでは、 extern const char vsyscall_i…

ABCIシステムの使い方

ABCIシステムについて GPUの環境を整えるのに、オンプレorクラウドかを状況に応じて選択する場合、双方メリット、デメリットがある。オンプレの場合は伝聞だと、運用がとても大変らしい。対して大手クラウドサービス(AWS, GCPなどでGPUインスタンス)を用いる…

linux kernelでのFPU, MMX, SSEについて

linux kernelでのFPU, MMX, SSEについて 本記事では、linux kernel 2.6.11でのFPU(Float Point Unit)やMMX, SSEがどう設定、使用されているのかを確認する。FPU, MMX SSE命令を使用する際は、使用する際に意図的に#NM(Interrupt7: Device not available exce…

slab allocatorの内部実装

slab allocatorの内部実装 page frameは4K単位の管理なので、比較的小さいメモリ領域を確保するときに効率が悪い。そこで、linux2.6では、slab allocatorという仕組みを用いて小さな領域を効率的にreserved/freeするようになっている。cacheという概念自体は…

e820について

linux kernelのsetupの部分を読んでいて、E820という謎の数字?が気になったのと、ここで得られたデータをboot時に後々利用しているので、少し重点的に調べてみる。 reference http://www.uruk.org/orig-grub/mem64mb.html あるいは、BIOSのdocument: https:/…