Neither 16-bit knuth_hash16() nor the 32-bit knuth_hash() are used. Delete them both. And rename the remaining function: knuth_hash8() => knuth_hash() Signed-off-by: Greg Thelen <gthelen@xxxxxxxxxx> --- kernel-shark/src/libkshark.c | 12 +++++----- lib/trace-cmd/trace-filter-hash.c | 40 +++++++------------------------ 2 files changed, 14 insertions(+), 38 deletions(-) diff --git a/kernel-shark/src/libkshark.c b/kernel-shark/src/libkshark.c index 0f0a1bab4d5c..d2764e813194 100644 --- a/kernel-shark/src/libkshark.c +++ b/kernel-shark/src/libkshark.c @@ -252,13 +252,13 @@ void kshark_free(struct kshark_context *kshark_ctx) free(kshark_ctx); } -static inline uint8_t knuth_hash8(uint32_t val) +static inline uint8_t knuth_hash(uint32_t val) { /* - * Hashing functions, based on Donald E. Knuth's Multiplicative - * hashing. See The Art of Computer Programming (TAOCP). - * Multiplication by the Prime number, closest to the golden - * ratio of 2^8. + * Small table hashing function adapted from Donald E. Knuth's 32 bit + * multiplicative hash. See The Art of Computer Programming (TAOCP). + * Multiplication by the Prime number, closest to the golden ratio of + * 2^8. */ return UINT8_C(val) * UINT8_C(157); } @@ -282,7 +282,7 @@ kshark_add_task(struct kshark_context *kshark_ctx, int pid) struct kshark_task_list *list; uint8_t key; - key = knuth_hash8(pid); + key = knuth_hash(pid); list = kshark_find_task(kshark_ctx, key, pid); if (list) return list; diff --git a/lib/trace-cmd/trace-filter-hash.c b/lib/trace-cmd/trace-filter-hash.c index 39b28790e0bc..45ca68c2959e 100644 --- a/lib/trace-cmd/trace-filter-hash.c +++ b/lib/trace-cmd/trace-filter-hash.c @@ -14,45 +14,21 @@ #define FILTER_HASH_SIZE 256 -/* - * Hashing functions, based on Donald E. Knuth's Multiplicative hashing. - * See The Art of Computer Programming (TAOCP). - */ - -static inline uint8_t knuth_hash8(uint32_t val) +static inline uint8_t knuth_hash(uint32_t val) { /* - * Multiplicative hashing function. - * Multiplication by the Prime number, closest to the golden - * ratio of 2^8. + * Small table hashing function adapted from Donald E. Knuth's 32 bit + * multiplicative hash. See The Art of Computer Programming (TAOCP). + * Multiplication by the Prime number, closest to the golden ratio of + * 2^8. */ return UINT8_C(val) * UINT8_C(157); } -static inline uint16_t knuth_hash16(uint32_t val) -{ - /* - * Multiplicative hashing function. - * Multiplication by the Prime number, closest to the golden - * ratio of 2^16. - */ - return UINT16_C(val) * UINT16_C(40507); -} - -static inline uint32_t knuth_hash(uint32_t val) -{ - /* - * Multiplicative hashing function. - * Multiplication by the Prime number, closest to the golden - * ratio of 2^32. - */ - return val * UINT32_C(2654435761); -} - struct tracecmd_filter_id_item * tracecmd_filter_id_find(struct tracecmd_filter_id *hash, int id) { - int key = knuth_hash8(id); + int key = knuth_hash(id); struct tracecmd_filter_id_item *item = hash->hash[key]; while (item) { @@ -66,7 +42,7 @@ tracecmd_filter_id_find(struct tracecmd_filter_id *hash, int id) void tracecmd_filter_id_add(struct tracecmd_filter_id *hash, int id) { - int key = knuth_hash8(id); + int key = knuth_hash(id); struct tracecmd_filter_id_item *item; item = calloc(1, sizeof(*item)); @@ -81,7 +57,7 @@ void tracecmd_filter_id_add(struct tracecmd_filter_id *hash, int id) void tracecmd_filter_id_remove(struct tracecmd_filter_id *hash, int id) { - int key = knuth_hash8(id); + int key = knuth_hash(id); struct tracecmd_filter_id_item **next = &hash->hash[key]; struct tracecmd_filter_id_item *item; -- 2.22.0.410.gd8fdbe21b5-goog
![]() |