Lines Matching refs:pg

426 	struct ftrace_profile_page *pg;  in function_stat_next()  local
428 pg = (struct ftrace_profile_page *)((unsigned long)rec & PAGE_MASK); in function_stat_next()
434 if ((void *)rec >= (void *)&pg->records[pg->index]) { in function_stat_next()
435 pg = pg->next; in function_stat_next()
436 if (!pg) in function_stat_next()
438 rec = &pg->records[0]; in function_stat_next()
567 struct ftrace_profile_page *pg; in ftrace_profile_reset() local
569 pg = stat->pages = stat->start; in ftrace_profile_reset()
571 while (pg) { in ftrace_profile_reset()
572 memset(pg->records, 0, PROFILE_RECORDS_SIZE); in ftrace_profile_reset()
573 pg->index = 0; in ftrace_profile_reset()
574 pg = pg->next; in ftrace_profile_reset()
583 struct ftrace_profile_page *pg; in ftrace_profile_pages_init() local
609 pg = stat->start = stat->pages; in ftrace_profile_pages_init()
614 pg->next = (void *)get_zeroed_page(GFP_KERNEL); in ftrace_profile_pages_init()
615 if (!pg->next) in ftrace_profile_pages_init()
617 pg = pg->next; in ftrace_profile_pages_init()
623 pg = stat->start; in ftrace_profile_pages_init()
624 while (pg) { in ftrace_profile_pages_init()
625 unsigned long tmp = (unsigned long)pg; in ftrace_profile_pages_init()
627 pg = pg->next; in ftrace_profile_pages_init()
1502 #define do_for_each_ftrace_rec(pg, rec) \ argument
1503 for (pg = ftrace_pages_start; pg; pg = pg->next) { \
1505 for (_____i = 0; _____i < pg->index; _____i++) { \
1506 rec = &pg->records[_____i];
1527 struct ftrace_page *pg; in lookup_rec() local
1534 for (pg = ftrace_pages_start; pg; pg = pg->next) { in lookup_rec()
1535 if (end < pg->records[0].ip || in lookup_rec()
1536 start >= (pg->records[pg->index - 1].ip + MCOUNT_INSN_SIZE)) in lookup_rec()
1538 rec = bsearch(&key, pg->records, pg->index, in lookup_rec()
1666 struct ftrace_page *pg; in __ftrace_hash_rec_update() local
1704 do_for_each_ftrace_rec(pg, rec) { in __ftrace_hash_rec_update()
1897 struct ftrace_page *pg; in __ftrace_hash_update_ipmodify() local
1925 do_for_each_ftrace_rec(pg, rec) { in __ftrace_hash_update_ipmodify()
1971 do_for_each_ftrace_rec(pg, rec) { in __ftrace_hash_update_ipmodify()
2637 struct ftrace_page *pg; in ftrace_replace_code() local
2645 do_for_each_ftrace_rec(pg, rec) { in ftrace_replace_code()
2662 struct ftrace_page *pg; member
2684 iter->pg = ftrace_pages_start; in ftrace_rec_iter_start()
2688 while (iter->pg && !iter->pg->index) in ftrace_rec_iter_start()
2689 iter->pg = iter->pg->next; in ftrace_rec_iter_start()
2691 if (!iter->pg) in ftrace_rec_iter_start()
2707 if (iter->index >= iter->pg->index) { in ftrace_rec_iter_next()
2708 iter->pg = iter->pg->next; in ftrace_rec_iter_next()
2712 while (iter->pg && !iter->pg->index) in ftrace_rec_iter_next()
2713 iter->pg = iter->pg->next; in ftrace_rec_iter_next()
2716 if (!iter->pg) in ftrace_rec_iter_next()
2730 return &iter->pg->records[iter->index]; in ftrace_rec_iter_record()
3054 struct ftrace_page *pg; in ftrace_shutdown() local
3057 do_for_each_ftrace_rec(pg, rec) { in ftrace_shutdown()
3122 struct ftrace_page *pg; in ftrace_update_code() local
3145 for (pg = new_pgs; pg; pg = pg->next) { in ftrace_update_code()
3147 for (i = 0; i < pg->index; i++) { in ftrace_update_code()
3153 p = &pg->records[i]; in ftrace_update_code()
3174 static int ftrace_allocate_records(struct ftrace_page *pg, int count) in ftrace_allocate_records() argument
3188 pg->records = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, order); in ftrace_allocate_records()
3190 if (!pg->records) { in ftrace_allocate_records()
3202 pg->order = order; in ftrace_allocate_records()
3214 struct ftrace_page *pg; in ftrace_allocate_pages() local
3220 start_pg = pg = kzalloc(sizeof(*pg), GFP_KERNEL); in ftrace_allocate_pages()
3221 if (!pg) in ftrace_allocate_pages()
3230 cnt = ftrace_allocate_records(pg, num_to_init); in ftrace_allocate_pages()
3238 pg->next = kzalloc(sizeof(*pg), GFP_KERNEL); in ftrace_allocate_pages()
3239 if (!pg->next) in ftrace_allocate_pages()
3242 pg = pg->next; in ftrace_allocate_pages()
3248 pg = start_pg; in ftrace_allocate_pages()
3249 while (pg) { in ftrace_allocate_pages()
3250 if (pg->records) { in ftrace_allocate_pages()
3251 free_pages((unsigned long)pg->records, pg->order); in ftrace_allocate_pages()
3252 ftrace_number_of_pages -= 1 << pg->order; in ftrace_allocate_pages()
3254 start_pg = pg->next; in ftrace_allocate_pages()
3255 kfree(pg); in ftrace_allocate_pages()
3256 pg = start_pg; in ftrace_allocate_pages()
3269 struct ftrace_page *pg; member
3499 if (iter->idx >= iter->pg->index) { in t_func_next()
3500 if (iter->pg->next) { in t_func_next()
3501 iter->pg = iter->pg->next; in t_func_next()
3506 rec = &iter->pg->records[iter->idx++]; in t_func_next()
3605 iter->pg = ftrace_pages_start; in t_start()
3675 struct ftrace_page *pg; in ftrace_check_work_func() local
3679 do_for_each_ftrace_rec(pg, rec) { in ftrace_check_work_func()
3831 iter->pg = ftrace_pages_start; in ftrace_avail_open()
3855 iter->pg = ftrace_pages_start; in ftrace_enabled_open()
3939 iter->pg = ftrace_pages_start; in ftrace_regex_open()
4067 struct ftrace_page *pg; in add_rec_by_index() local
4074 do_for_each_ftrace_rec(pg, rec) { in add_rec_by_index()
4075 if (pg->index <= index) { in add_rec_by_index()
4076 index -= pg->index; in add_rec_by_index()
4080 rec = &pg->records[index]; in add_rec_by_index()
4151 struct ftrace_page *pg; in match_records() local
4183 do_for_each_ftrace_rec(pg, rec) { in match_records()
6451 struct ftrace_page *pg; in ftrace_graph_set_hash() local
6469 do_for_each_ftrace_rec(pg, rec) { in ftrace_graph_set_hash()
6645 struct ftrace_page *pg; in ftrace_process_locs() local
6699 pg = start_pg; in ftrace_process_locs()
6712 end_offset = (pg->index+1) * sizeof(pg->records[0]); in ftrace_process_locs()
6713 if (end_offset > PAGE_SIZE << pg->order) { in ftrace_process_locs()
6715 if (WARN_ON(!pg->next)) in ftrace_process_locs()
6717 pg = pg->next; in ftrace_process_locs()
6720 rec = &pg->records[pg->index++]; in ftrace_process_locs()
6725 WARN_ON(pg->next); in ftrace_process_locs()
6728 ftrace_pages = pg; in ftrace_process_locs()
6851 clear_mod_from_hash(struct ftrace_page *pg, struct ftrace_hash *hash) in clear_mod_from_hash() argument
6860 for (i = 0; i < pg->index; i++) { in clear_mod_from_hash()
6861 rec = &pg->records[i]; in clear_mod_from_hash()
6874 static void clear_mod_from_hashes(struct ftrace_page *pg) in clear_mod_from_hashes() argument
6883 clear_mod_from_hash(pg, tr->ops->func_hash->filter_hash); in clear_mod_from_hashes()
6884 clear_mod_from_hash(pg, tr->ops->func_hash->notrace_hash); in clear_mod_from_hashes()
6913 struct ftrace_page *pg; in ftrace_release_mod() local
6933 for (pg = ftrace_pages_start; pg; pg = *last_pg) { in ftrace_release_mod()
6934 rec = &pg->records[0]; in ftrace_release_mod()
6941 if (WARN_ON(pg == ftrace_pages_start)) in ftrace_release_mod()
6945 if (pg == ftrace_pages) in ftrace_release_mod()
6948 ftrace_update_tot_cnt -= pg->index; in ftrace_release_mod()
6949 *last_pg = pg->next; in ftrace_release_mod()
6951 pg->next = tmp_page; in ftrace_release_mod()
6952 tmp_page = pg; in ftrace_release_mod()
6954 last_pg = &pg->next; in ftrace_release_mod()
6959 for (pg = tmp_page; pg; pg = tmp_page) { in ftrace_release_mod()
6962 clear_mod_from_hashes(pg); in ftrace_release_mod()
6964 if (pg->records) { in ftrace_release_mod()
6965 free_pages((unsigned long)pg->records, pg->order); in ftrace_release_mod()
6966 ftrace_number_of_pages -= 1 << pg->order; in ftrace_release_mod()
6968 tmp_page = pg->next; in ftrace_release_mod()
6969 kfree(pg); in ftrace_release_mod()
6977 struct ftrace_page *pg; in ftrace_module_enable() local
7000 do_for_each_ftrace_rec(pg, rec) { in ftrace_module_enable()
7293 struct ftrace_page *pg; in ftrace_free_mem() local
7315 for (pg = ftrace_pages_start; pg; last_pg = &pg->next, pg = *last_pg) { in ftrace_free_mem()
7316 if (end < pg->records[0].ip || in ftrace_free_mem()
7317 start >= (pg->records[pg->index - 1].ip + MCOUNT_INSN_SIZE)) in ftrace_free_mem()
7320 rec = bsearch(&key, pg->records, pg->index, in ftrace_free_mem()
7332 pg->index--; in ftrace_free_mem()
7334 if (!pg->index) { in ftrace_free_mem()
7335 *last_pg = pg->next; in ftrace_free_mem()
7336 if (pg->records) { in ftrace_free_mem()
7337 free_pages((unsigned long)pg->records, pg->order); in ftrace_free_mem()
7338 ftrace_number_of_pages -= 1 << pg->order; in ftrace_free_mem()
7341 kfree(pg); in ftrace_free_mem()
7342 pg = container_of(last_pg, struct ftrace_page, next); in ftrace_free_mem()
7344 ftrace_pages = pg; in ftrace_free_mem()
7348 (pg->index - (rec - pg->records)) * sizeof(*rec)); in ftrace_free_mem()