Revert "perf bench futex: Sanitize numeric parameters"
This reverts commit 60758d6668
.
Now that libsubcmd makes sure that OPT_UINTEGER options will not
return negative values, we can revert this patch while addressing
the problem it solved:
# perf bench futex hash -t -4
# Running 'futex/hash' benchmark:
Error: switch `t' expects an unsigned numerical value
Usage: perf bench futex hash <options>
-t, --threads <n> Specify amount of threads
# perf bench futex hash -t-4
# Running 'futex/hash' benchmark:
Error: switch `t' expects an unsigned numerical value
Usage: perf bench futex hash <options>
-t, --threads <n> Specify amount of threads
#
IMO it is more reasonable to flat out refuse to process a negative
number than to silently turn it into an absolute value.
This also helps in silencing clang's complaint about asking for an
absolute value of an unsigned integer:
bench/futex-hash.c:133:10: error: taking the absolute value of unsigned type 'unsigned int' has no effect [-Werror,-Wabsolute-value]
nsecs = futexbench_sanitize_numeric(nsecs);
^
bench/futex.h:104:42: note: expanded from macro 'futexbench_sanitize_numeric'
#define futexbench_sanitize_numeric(__n) abs((__n))
^
bench/futex-hash.c:133:10: note: remove the call to 'abs' since unsigned values cannot be negative
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Davidlohr Bueso <dbueso@suse.de>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-2kl68v22or31vw643m2exz8x@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
b988971662
commit
16cab3226f
|
@ -130,8 +130,6 @@ int bench_futex_hash(int argc, const char **argv,
|
|||
}
|
||||
|
||||
ncpus = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
nsecs = futexbench_sanitize_numeric(nsecs);
|
||||
nfutexes = futexbench_sanitize_numeric(nfutexes);
|
||||
|
||||
sigfillset(&act.sa_mask);
|
||||
act.sa_sigaction = toggle_done;
|
||||
|
@ -139,8 +137,6 @@ int bench_futex_hash(int argc, const char **argv,
|
|||
|
||||
if (!nthreads) /* default to the number of CPUs */
|
||||
nthreads = ncpus;
|
||||
else
|
||||
nthreads = futexbench_sanitize_numeric(nthreads);
|
||||
|
||||
worker = calloc(nthreads, sizeof(*worker));
|
||||
if (!worker)
|
||||
|
|
|
@ -152,7 +152,6 @@ int bench_futex_lock_pi(int argc, const char **argv,
|
|||
goto err;
|
||||
|
||||
ncpus = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
nsecs = futexbench_sanitize_numeric(nsecs);
|
||||
|
||||
sigfillset(&act.sa_mask);
|
||||
act.sa_sigaction = toggle_done;
|
||||
|
@ -160,8 +159,6 @@ int bench_futex_lock_pi(int argc, const char **argv,
|
|||
|
||||
if (!nthreads)
|
||||
nthreads = ncpus;
|
||||
else
|
||||
nthreads = futexbench_sanitize_numeric(nthreads);
|
||||
|
||||
worker = calloc(nthreads, sizeof(*worker));
|
||||
if (!worker)
|
||||
|
|
|
@ -128,8 +128,6 @@ int bench_futex_requeue(int argc, const char **argv,
|
|||
|
||||
if (!nthreads)
|
||||
nthreads = ncpus;
|
||||
else
|
||||
nthreads = futexbench_sanitize_numeric(nthreads);
|
||||
|
||||
worker = calloc(nthreads, sizeof(*worker));
|
||||
if (!worker)
|
||||
|
|
|
@ -217,12 +217,8 @@ int bench_futex_wake_parallel(int argc, const char **argv,
|
|||
sigaction(SIGINT, &act, NULL);
|
||||
|
||||
ncpus = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
nwaking_threads = futexbench_sanitize_numeric(nwaking_threads);
|
||||
|
||||
if (!nblocked_threads)
|
||||
nblocked_threads = ncpus;
|
||||
else
|
||||
nblocked_threads = futexbench_sanitize_numeric(nblocked_threads);
|
||||
|
||||
/* some sanity checks */
|
||||
if (nwaking_threads > nblocked_threads || !nwaking_threads)
|
||||
|
|
|
@ -129,7 +129,6 @@ int bench_futex_wake(int argc, const char **argv,
|
|||
}
|
||||
|
||||
ncpus = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
nwakes = futexbench_sanitize_numeric(nwakes);
|
||||
|
||||
sigfillset(&act.sa_mask);
|
||||
act.sa_sigaction = toggle_done;
|
||||
|
@ -137,8 +136,6 @@ int bench_futex_wake(int argc, const char **argv,
|
|||
|
||||
if (!nthreads)
|
||||
nthreads = ncpus;
|
||||
else
|
||||
nthreads = futexbench_sanitize_numeric(nthreads);
|
||||
|
||||
worker = calloc(nthreads, sizeof(*worker));
|
||||
if (!worker)
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#ifndef _FUTEX_H
|
||||
#define _FUTEX_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -100,7 +99,4 @@ static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr,
|
|||
}
|
||||
#endif
|
||||
|
||||
/* User input sanitation */
|
||||
#define futexbench_sanitize_numeric(__n) abs((__n))
|
||||
|
||||
#endif /* _FUTEX_H */
|
||||
|
|
Loading…
Reference in New Issue