Commit d262e6a9 authored by Davidlohr Bueso's avatar Davidlohr Bueso Committed by Arnaldo Carvalho de Melo
Browse files

perf bench futex, requeue: Add --broadcast option



Such that all threads are requeued to uaddr2 in a single
futex_cmp_requeue(), unlike the default, which is 1.

Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
Cc: Davidlohr Bueso <dbueso@suse.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lore.kernel.org/lkml/20210809043301.66002-6-dave@stgolabs.net


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 9f9a3ffe
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ static const struct option options[] = {
	OPT_BOOLEAN( 's', "silent",   &params.silent, "Silent mode: do not display data/details"),
	OPT_BOOLEAN( 'S', "shared",   &params.fshared, "Use shared futexes instead of private ones"),
	OPT_BOOLEAN( 'm', "mlockall", &params.mlockall, "Lock all current and future memory"),
	OPT_BOOLEAN( 'B', "broadcast", &params.broadcast, "Requeue all threads at once"),
	OPT_END()
};

@@ -154,6 +155,9 @@ int bench_futex_requeue(int argc, const char **argv)
	if (params.nrequeue > params.nthreads)
		params.nrequeue = params.nthreads;

	if (params.broadcast)
		params.nrequeue = params.nthreads;

	printf("Run summary [PID %d]: Requeuing %d threads (from [%s] %p to %p), "
	       "%d at a time.\n\n",  getpid(), params.nthreads,
	       params.fshared ? "shared":"private", &futex1, &futex2, params.nrequeue);
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ struct bench_futex_parameters {
	bool fshared;
	bool mlockall;
	bool multi; /* lock-pi */
	bool broadcast; /* requeue */
	unsigned int runtime; /* seconds*/
	unsigned int nthreads;
	unsigned int nfutexes;