On 29.06.19 г. 9:27 ч., Greg Thelen wrote:
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()
Thanks! Reviewed-by: Yordan Karadzhov (VMware) <y.karadz@xxxxxxxxx>
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;
![]() |