Go to the documentation of this file.
23 #include <benchmark/benchmark.h>
39 #ifdef GRPC_LINUX_MULTIPOLL_WITH_EPOLL
40 #include <sys/epoll.h>
41 #include <sys/eventfd.h>
57 grpc_schedule_on_exec_ctx);
72 #ifdef GRPC_LINUX_MULTIPOLL_WITH_EPOLL
79 size_t nev =
state.range(0);
80 size_t nfd =
state.range(1);
83 for (
size_t i = 0;
i < nfd;
i++) {
84 fds.push_back(eventfd(0, 0));
99 BENCHMARK(BM_PollEmptyPollset_SpeedOfLight)
126 grpc_schedule_on_exec_ctx);
153 grpc_schedule_on_exec_ctx);
173 C*
p =
static_cast<C*
>(
arg);
181 #ifdef GRPC_LINUX_MULTIPOLL_WITH_EPOLL
189 int fd = eventfd(0, EFD_NONBLOCK);
195 err = eventfd_write(fd, 1);
196 }
while (
err < 0 && errno == EINTR);
200 }
while (
err < 0 && errno == EINTR);
205 }
while (
err < 0 && errno == EINTR);
212 BENCHMARK(BM_SingleThreadPollOneFd_SpeedOfLight);
229 if (!
state.KeepRunning()) {
247 grpc_schedule_on_exec_ctx);
254 delete continue_closure;
264 int main(
int argc,
char** argv) {
#define GRPC_CLOSURE_INIT(closure, cb, cb_arg, scheduler)
void InitTest(int *argc, char ***argv, bool remove_flags)
void grpc_wakeup_fd_destroy(grpc_wakeup_fd *fd_info)
size_t grpc_pollset_size(void)
GPRAPI void gpr_mu_unlock(gpr_mu *mu)
return memset(p, 0, total)
GPRAPI void gpr_free(void *ptr)
GPRAPI void * gpr_malloc(size_t size)
void RunTheBenchmarksNamespaced()
static void BM_CreateDestroyPollset(benchmark::State &state)
grpc_error_handle grpc_pollset_work(grpc_pollset *pollset, grpc_pollset_worker **worker, grpc_core::Timestamp deadline)
#define GRPC_LOG_IF_ERROR(what, error)
static void BM_PollEmptyPollset(benchmark::State &state)
virtual void Finish(benchmark::State &state)
TestClosure * MakeTestClosure(F f)
static void shutdown_ps(void *ps, grpc_error_handle)
void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu)
static void BM_SingleThreadPollOneFd(benchmark::State &state)
uv__os390_epoll * epoll_create1(int flags)
GPRAPI void * gpr_zalloc(size_t size)
size_t RunSpecifiedBenchmarks()
grpc_error_handle grpc_wakeup_fd_wakeup(grpc_wakeup_fd *fd_info) GRPC_MUST_USE_RESULT
grpc_error_handle grpc_wakeup_fd_init(grpc_wakeup_fd *fd_info) GRPC_MUST_USE_RESULT
grpc_fd * grpc_fd_create(int fd, const char *name, bool track_err)
grpc_error_handle grpc_wakeup_fd_consume_wakeup(grpc_wakeup_fd *fd_info) GRPC_MUST_USE_RESULT
GPRAPI void gpr_mu_lock(gpr_mu *mu)
static void BM_PollAddFd(benchmark::State &state)
void Initialize(int *argc, char **argv)
int epoll_wait(uv__os390_epoll *lst, struct epoll_event *events, int maxevents, int timeout)
static constexpr Timestamp ProcessEpoch()
void grpc_fd_notify_on_read(grpc_fd *fd, grpc_closure *closure)
int main(int argc, char **argv)
BENCHMARK(BM_CreateDestroyPollset)
#define GPR_ARRAY_SIZE(array)
grpc_core::ExecCtx exec_ctx
void grpc_pollset_shutdown(grpc_pollset *pollset, grpc_closure *closure)
int epoll_ctl(uv__os390_epoll *lst, int op, int fd, struct epoll_event *event)
void grpc_pollset_add_fd(grpc_pollset *pollset, struct grpc_fd *fd)
#define GRPC_ERROR_UNREF(err)
void grpc_fd_orphan(grpc_fd *fd, grpc_closure *on_done, int *release_fd, const char *reason)
static constexpr Timestamp InfFuture()
void grpc_pollset_destroy(grpc_pollset *pollset)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:49