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

slub: [sg]et_freepointer()めも

slubのkmem_cache_alloc()、kmem_cache_free()時の[sg]et_freepointer()の動きを確かめるというめもですが、チラ裏ですm(__)m kmem_cache_alloc()を呼ぶとslubではslab_alloc_node()が呼ばれて、slabがすでにある場合はelseの方に入る。ここでget_freepointe…

slubで/sys/kernel/slab/<slab name>/以下にstruct kmem_cacheの変数をexportさせるメモ

slubでstruct kmem_cacheの各変数の値を見るのに/sys/kernel/slab//にexportさせる場合のメモ。俺得用。 見るだけなら 変数名 + _show という形で関数を作って、SLAB_ATTR_ROマクロに見たい変数名を渡す。それとslab_attrsに 変数名 + _attr.attr という形で…

slub: slabでslab名の:at-とか:t-なんかのprefixの意味

slabinfoとか/sys/kernel/slabを見た時にslab名が:で始まるものがあって、これらの意味は何なのか?というめも。 このprefixをつけているのはslub.cにあるcreate_unique_id()のこの部分。設定されているフラグの中で一部のものについてprefixが付く模様。 50…

slub: struct kmem_cache_nodeの使われ方

SLUBの場合のstruct kmem_cacheでstruct kmem_cache_node *node[MAX_NUMNODES];がどのように使われているのかというメモ。 kernelのバージョンは3.18。 struct kmem_cache_nodeはSLAB・SLUBの場合分けがifdefでされていて、debugオプション無しのSLUBの場合…