Commit 20079ebe73c16b34621abd2993f3d48e2f9336b7
Committed by
Steven Rostedt
1 parent
ed6f1c996b
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
ftrace: Get rid of ftrace_profile_bits
It seems that function profiler's hash size is fixed at 1024. Add and use FTRACE_PROFILE_HASH_BITS instead and update hash size macro. Link: http://lkml.kernel.org/r/1365551750-4504-1-git-send-email-namhyung@kernel.org Signed-off-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Showing 1 changed file with 4 additions and 11 deletions Side-by-side Diff
kernel/trace/ftrace.c
... | ... | @@ -486,7 +486,6 @@ |
486 | 486 | #define PROFILES_PER_PAGE \ |
487 | 487 | (PROFILE_RECORDS_SIZE / sizeof(struct ftrace_profile)) |
488 | 488 | |
489 | -static int ftrace_profile_bits __read_mostly; | |
490 | 489 | static int ftrace_profile_enabled __read_mostly; |
491 | 490 | |
492 | 491 | /* ftrace_profile_lock - synchronize the enable and disable of the profiler */ |
... | ... | @@ -494,7 +493,8 @@ |
494 | 493 | |
495 | 494 | static DEFINE_PER_CPU(struct ftrace_profile_stat, ftrace_profile_stats); |
496 | 495 | |
497 | -#define FTRACE_PROFILE_HASH_SIZE 1024 /* must be power of 2 */ | |
496 | +#define FTRACE_PROFILE_HASH_BITS 10 | |
497 | +#define FTRACE_PROFILE_HASH_SIZE (1 << FTRACE_PROFILE_HASH_BITS) | |
498 | 498 | |
499 | 499 | static void * |
500 | 500 | function_stat_next(void *v, int idx) |
... | ... | @@ -725,13 +725,6 @@ |
725 | 725 | if (!stat->hash) |
726 | 726 | return -ENOMEM; |
727 | 727 | |
728 | - if (!ftrace_profile_bits) { | |
729 | - size--; | |
730 | - | |
731 | - for (; size; size >>= 1) | |
732 | - ftrace_profile_bits++; | |
733 | - } | |
734 | - | |
735 | 728 | /* Preallocate the function profiling pages */ |
736 | 729 | if (ftrace_profile_pages_init(stat) < 0) { |
737 | 730 | kfree(stat->hash); |
... | ... | @@ -765,7 +758,7 @@ |
765 | 758 | struct hlist_node *n; |
766 | 759 | unsigned long key; |
767 | 760 | |
768 | - key = hash_long(ip, ftrace_profile_bits); | |
761 | + key = hash_long(ip, FTRACE_PROFILE_HASH_BITS); | |
769 | 762 | hhd = &stat->hash[key]; |
770 | 763 | |
771 | 764 | if (hlist_empty(hhd)) |
... | ... | @@ -784,7 +777,7 @@ |
784 | 777 | { |
785 | 778 | unsigned long key; |
786 | 779 | |
787 | - key = hash_long(rec->ip, ftrace_profile_bits); | |
780 | + key = hash_long(rec->ip, FTRACE_PROFILE_HASH_BITS); | |
788 | 781 | hlist_add_head_rcu(&rec->node, &stat->hash[key]); |
789 | 782 | } |
790 | 783 |