Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90b8289e authored by Steven Moreland's avatar Steven Moreland
Browse files

binderRpcBenchmark: set label

label is clearer to interpret output than looking
up numbers, and this doesn't break JSON parsing
of the output.

Bug: 271994750
Test: binderRpcBenchmark
Change-Id: Idf38145fbd6c321be34379d4b5589b9cab4ed81c
parent 71ea90d3
Loading
Loading
Loading
Loading
+27 −5
Original line number Original line Diff line number Diff line
@@ -129,12 +129,33 @@ static sp<IBinder> getBinderForOptions(benchmark::State& state) {
    }
    }
}
}


static void SetLabel(benchmark::State& state) {
    Transport transport = static_cast<Transport>(state.range(0));
    switch (transport) {
#ifdef __BIONIC__
        case KERNEL:
            state.SetLabel("kernel");
            break;
#endif
        case RPC:
            state.SetLabel("rpc");
            break;
        case RPC_TLS:
            state.SetLabel("rpc_tls");
            break;
        default:
            LOG(FATAL) << "Unknown transport value: " << transport;
    }
}

void BM_pingTransaction(benchmark::State& state) {
void BM_pingTransaction(benchmark::State& state) {
    sp<IBinder> binder = getBinderForOptions(state);
    sp<IBinder> binder = getBinderForOptions(state);


    while (state.KeepRunning()) {
    while (state.KeepRunning()) {
        CHECK_EQ(OK, binder->pingBinder());
        CHECK_EQ(OK, binder->pingBinder());
    }
    }

    SetLabel(state);
}
}
BENCHMARK(BM_pingTransaction)->ArgsProduct({kTransportList});
BENCHMARK(BM_pingTransaction)->ArgsProduct({kTransportList});


@@ -164,6 +185,8 @@ void BM_repeatTwoPageString(benchmark::State& state) {
        Status ret = iface->repeatString(str, &out);
        Status ret = iface->repeatString(str, &out);
        CHECK(ret.isOk()) << ret;
        CHECK(ret.isOk()) << ret;
    }
    }

    SetLabel(state);
}
}
BENCHMARK(BM_repeatTwoPageString)->ArgsProduct({kTransportList});
BENCHMARK(BM_repeatTwoPageString)->ArgsProduct({kTransportList});


@@ -182,6 +205,8 @@ void BM_throughputForTransportAndBytes(benchmark::State& state) {
        Status ret = iface->repeatBytes(bytes, &out);
        Status ret = iface->repeatBytes(bytes, &out);
        CHECK(ret.isOk()) << ret;
        CHECK(ret.isOk()) << ret;
    }
    }

    SetLabel(state);
}
}
BENCHMARK(BM_throughputForTransportAndBytes)
BENCHMARK(BM_throughputForTransportAndBytes)
        ->ArgsProduct({kTransportList,
        ->ArgsProduct({kTransportList,
@@ -201,6 +226,8 @@ void BM_repeatBinder(benchmark::State& state) {
        Status ret = iface->repeatBinder(binder, &out);
        Status ret = iface->repeatBinder(binder, &out);
        CHECK(ret.isOk()) << ret;
        CHECK(ret.isOk()) << ret;
    }
    }

    SetLabel(state);
}
}
BENCHMARK(BM_repeatBinder)->ArgsProduct({kTransportList});
BENCHMARK(BM_repeatBinder)->ArgsProduct({kTransportList});


@@ -228,11 +255,6 @@ int main(int argc, char** argv) {
    ::benchmark::Initialize(&argc, argv);
    ::benchmark::Initialize(&argc, argv);
    if (::benchmark::ReportUnrecognizedArguments(argc, argv)) return 1;
    if (::benchmark::ReportUnrecognizedArguments(argc, argv)) return 1;


    std::cerr << "Tests suffixes:" << std::endl;
    std::cerr << "\t.../" << Transport::KERNEL << " is KERNEL" << std::endl;
    std::cerr << "\t.../" << Transport::RPC << " is RPC" << std::endl;
    std::cerr << "\t.../" << Transport::RPC_TLS << " is RPC with TLS" << std::endl;

#ifdef __BIONIC__
#ifdef __BIONIC__
    if (0 == fork()) {
    if (0 == fork()) {
        prctl(PR_SET_PDEATHSIG, SIGHUP); // racey, okay
        prctl(PR_SET_PDEATHSIG, SIGHUP); // racey, okay