45f087eb03
Some systems use a native 64 KiB page size, which means that the bitmap
for the smallest size class can be 8192 bits, not just 512 bits as when
the page size is 4 KiB. Linear search in bitmap_{sfu,ffu}() is
unacceptably slow for such large bitmaps.
This reverts commit 7c00f04ff4
.
29 lines
759 B
C
29 lines
759 B
C
#ifndef JEMALLOC_INTERNAL_BITMAP_STRUCTS_H
|
|
#define JEMALLOC_INTERNAL_BITMAP_STRUCTS_H
|
|
|
|
struct bitmap_level_s {
|
|
/* Offset of this level's groups within the array of groups. */
|
|
size_t group_offset;
|
|
};
|
|
|
|
struct bitmap_info_s {
|
|
/* Logical number of bits in bitmap (stored at bottom level). */
|
|
size_t nbits;
|
|
|
|
#ifdef BITMAP_USE_TREE
|
|
/* Number of levels necessary for nbits. */
|
|
unsigned nlevels;
|
|
|
|
/*
|
|
* Only the first (nlevels+1) elements are used, and levels are ordered
|
|
* bottom to top (e.g. the bottom level is stored in levels[0]).
|
|
*/
|
|
bitmap_level_t levels[BITMAP_MAX_LEVELS+1];
|
|
#else /* BITMAP_USE_TREE */
|
|
/* Number of groups necessary for nbits. */
|
|
size_t ngroups;
|
|
#endif /* BITMAP_USE_TREE */
|
|
};
|
|
|
|
#endif /* JEMALLOC_INTERNAL_BITMAP_STRUCTS_H */
|