def METHOD_NAME(filter_fun):
    # running `python benchmarks/__init__.py` or `python -m benchmarks`
    # puts .../eventlet/benchmarks at top of sys.path, fix it to project root
    if sys.path[0].endswith('/benchmarks'):
        path = sys.path.pop(0)
        correct = path.rsplit('/', 1)[0]
        sys.path.insert(0, correct)
    common_prefix = 'benchmark_'
    result = []
    # TODO step 1: put all toplevel benchmarking code under `if __name__ == '__main__'`
    # TODO step 2: auto import benchmarks/*.py, remove whitelist below
    # TODO step 3: convert existing benchmarks
    for name in ('hub_timers', 'spawn'):
        mod = importlib.import_module('benchmarks.' + name)
        for name, obj in inspect.getmembers(mod):
            if name.startswith(common_prefix) and inspect.isfunction(obj):
                useful_name = name[len(common_prefix):]
                if filter_fun(useful_name):
                    result.append(Benchmark(name=useful_name, func=obj))
    return result