Hypothesis: _ebpf_hash_table_replace_bucket bloats epoch free list #434
-
Hypothesis: Under very high rates of hash bucket collision, _ebpf_hash_table_replace_bucket adds large numbers of entries to the eBPF epoch free list when they could be directly freed (because they have not been seen by anyone outside this thread context). This shows up as the eBPF epoch flush timer getting backlogged with a very long list of items to be freed. If the collisions continue, the system will eventually run out of memory. Option 1: Option 2: |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
I ran an experiment to test this hypothesis. Test parameters
Results
This shows that the hit rate for the proposed cache is around 5%, which would suggest that this is probably not worth implementing. |
Beta Was this translation helpful? Give feedback.
I ran an experiment to test this hypothesis.
Test parameters
a) Total number of buckets allocated - free_bucket_list_alloc
b) Number of buckets allocated from free_bucket_list - free_bucket_list_hit
c) Number of buckets that are larger than cache size - free_bucket_list_too_small
d) Number of …