読者です 読者をやめる 読者になる 読者になる

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

linux kernel

slabinfoとか/sys/kernel/slabを見た時にslab名が:で始まるものがあって、これらの意味は何なのか?というめも。

このprefixをつけているのはslub.cにあるcreate_unique_id()のこの部分。設定されているフラグの中で一部のものについてprefixが付く模様。

5047         *p++ = ':';
5048         /*
5049          * First flags affecting slabcache operations. We will only
5050          * get here for aliasable slabs so we do not need to support
5051          * too many flags. The flags here must cover all flags that
5052          * are matched during merging to guarantee that the id is
5053          * unique.
5054          */
5055         if (s->flags & SLAB_CACHE_DMA)
5056                 *p++ = 'd';
5057         if (s->flags & SLAB_RECLAIM_ACCOUNT)
5058                 *p++ = 'a';
5059         if (s->flags & SLAB_DEBUG_FREE)
5060                 *p++ = 'F';
5061         if (!(s->flags & SLAB_NOTRACK))
5062                 *p++ = 't';
5063         if (p != name + 1)
5064                 *p++ = '-';
5065         p += sprintf(p, "%07d", s->size);