Skip to content

Hypothesis: _ebpf_hash_table_replace_bucket bloats epoch free list #434

Answered by Alan-Jowett
Alan-Jowett asked this question in Q&A
Discussion options

You must be logged in to vote

I ran an experiment to test this hypothesis.

Test parameters

  1. Modified hash_table_stress_test to set bucket_count == CPU count * keys per thread (which would give a hash table load of 100%) and increased iterations to 10K.
  2. Created free_bucket_list (a InterlockedSList ) that stores that stores buckets that ebpf_interlocked_compare_exchange_pointer rejected during _ebpf_hash_table_replace_bucket.
  3. Applied change to partition the epoch thread lock (#417)
  4. Measure:
    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 …

Replies: 1 comment 3 replies

Comment options

You must be logged in to vote
3 replies
@Alan-Jowett
Comment options

@Alan-Jowett
Comment options

@Alan-Jowett
Comment options

Answer selected by dthaler
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
enhancement New feature or request ebpf-km PR/Issues for kernel mode components
1 participant
Converted from issue

This discussion was converted from issue #433 on August 25, 2021 16:13.