alloc_tag
static struct alloc_tag _alloc_tag __used __aligned(8) \
static struct alloc_tag _alloc_tag __used __aligned(8) \
static struct alloc_tag _alloc_tag __used __aligned(8) \
static inline struct alloc_tag_counters alloc_tag_read(struct alloc_tag *tag)
static inline void alloc_tag_add_check(union codetag_ref *ref, struct alloc_tag *tag)
static inline void alloc_tag_add_check(union codetag_ref *ref, struct alloc_tag *tag) {}
static inline bool __alloc_tag_ref_set(union codetag_ref *ref, struct alloc_tag *tag)
static inline bool alloc_tag_ref_set(union codetag_ref *ref, struct alloc_tag *tag)
static inline void alloc_tag_add(union codetag_ref *ref, struct alloc_tag *tag, size_t bytes)
struct alloc_tag *tag;
static inline void alloc_tag_set_inaccurate(struct alloc_tag *tag)
static inline bool alloc_tag_is_inaccurate(struct alloc_tag *tag)
#define alloc_tag_record(p) ((p) = current->alloc_tag)
static inline void alloc_tag_add(union codetag_ref *ref, struct alloc_tag *tag,
static inline void alloc_tag_set_inaccurate(struct alloc_tag *tag) {}
static inline bool alloc_tag_is_inaccurate(struct alloc_tag *tag) { return false; }
struct alloc_tag * __maybe_unused _old; \
struct alloc_tag *first_tag;
struct alloc_tag *first_tag;
static inline struct alloc_tag *ct_to_alloc_tag(struct codetag *ct)
return container_of(ct, struct alloc_tag, ct);
static inline struct alloc_tag *__pgalloc_tag_get(struct page *page)
struct alloc_tag *tag = NULL;
static inline struct alloc_tag *pgalloc_tag_get(struct page *page)
static inline struct alloc_tag *pgalloc_tag_get(struct page *page) { return NULL; }
static inline struct alloc_tag *module_idx_to_tag(pgalloc_tag_idx idx)
static inline pgalloc_tag_idx module_tag_to_idx(struct alloc_tag *tag)
static inline struct alloc_tag *module_idx_to_tag(pgalloc_tag_idx idx)
static inline pgalloc_tag_idx module_tag_to_idx(struct alloc_tag *tag)
struct alloc_tag *tag;
struct alloc_tag *alloc_tag;
static __always_inline struct alloc_tag *alloc_tag_save(struct alloc_tag *tag)
swap(current->alloc_tag, tag);
static __always_inline void alloc_tag_restore(struct alloc_tag *tag, struct alloc_tag *old)
WARN(current->alloc_tag != tag, "current->alloc_tag was changed:\n");
current->alloc_tag = old;
struct alloc_tag *alloc_tag;
#define MODULE_ALLOC_TAG_VMAP_SIZE (100000UL * sizeof(struct alloc_tag))
struct alloc_tag *tag;
struct alloc_tag *tag_old, *tag_new;
struct alloc_tag *last_codetag;
kernel_tags.first_tag = (struct alloc_tag *)kallsyms_lookup_name(
last_codetag = (struct alloc_tag *)kallsyms_lookup_name(
if (val % sizeof(struct alloc_tag) == 0)
return ((val / sizeof(struct alloc_tag)) + 1) * sizeof(struct alloc_tag);
if (!IS_ALIGNED(sizeof(struct alloc_tag), align))
module_tags.size / sizeof(struct alloc_tag);
return size >= sizeof(struct alloc_tag);
static bool clean_unused_counters(struct alloc_tag *start_tag,
struct alloc_tag *end_tag)
struct alloc_tag *tag;
struct alloc_tag *start_tag;
struct alloc_tag *end_tag;
start_tag = (struct alloc_tag *)(module_tags.start_addr + mas.index);
end_tag = (struct alloc_tag *)(module_tags.start_addr + mas.last);
if (size < sizeof(struct alloc_tag))
return (struct alloc_tag *)(module_tags.start_addr + offset);
struct alloc_tag *start_tag;
struct alloc_tag *end_tag;
start_tag = (struct alloc_tag *)(module_tags.start_addr + mas.index);
end_tag = (struct alloc_tag *)(module_tags.start_addr + mas.last);
struct alloc_tag *tag;
struct alloc_tag *start_tag;
struct alloc_tag *stop_tag;
struct alloc_tag *tag;
.tag_size = sizeof(struct alloc_tag),
struct alloc_tag *tag = ct_to_alloc_tag(ct);
alloc_tag_record(ht->alloc_tag);
ntbl = alloc_hooks_tag(ht->alloc_tag,
tbl = alloc_hooks_tag(ht->alloc_tag,
tbl = alloc_hooks_tag(ht->alloc_tag,
alloc_tag_add(&ref, task->alloc_tag, PAGE_SIZE * nr);
static inline void pgalloc_tag_sub_pages(struct alloc_tag *tag, unsigned int nr)
static inline void pgalloc_tag_sub_pages(struct alloc_tag *tag, unsigned int nr) {}
struct alloc_tag *tag = pgalloc_tag_get(page);
current->alloc_tag, size);
struct alloc_tag *tag = ct_to_alloc_tag(ct);
alloc_tag_add(&obj_ext->ref, current->alloc_tag, s->size);
alloc_tag_set_inaccurate(current->alloc_tag);