factor out some of the gating work in benchmark.go