Skip to content

Commit

Permalink
perf lock: Add percpu-rwsem for type filter
Browse files Browse the repository at this point in the history
percpu-rwsem was missing in man page. And for backward compatibility,
replace `pcpu-sem` with `percpu-rwsem` before parsing lock name.
Tested `./perf lock con -ab -Y pcpu-sem` and `./perf lock con -ab -Y
percpu-rwsem`

Fixes: 4f70106 ("perf lock contention: Show lock type with address")
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Chun-Tse Shao <ctshao@google.com>
Cc: nick.forrington@arm.com
Link: https://lore.kernel.org/r/20250116235838.2769691-2-ctshao@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
  • Loading branch information
Chun-Tse Shao authored and Namhyung Kim committed Jan 17, 2025
1 parent 1be9264 commit e9188ae
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
4 changes: 2 additions & 2 deletions tools/perf/Documentation/perf-lock.txt
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ CONTENTION OPTIONS
Show lock contention only for given lock types (comma separated list).
Available values are:
semaphore, spinlock, rwlock, rwlock:R, rwlock:W, rwsem, rwsem:R, rwsem:W,
rtmutex, rwlock-rt, rwlock-rt:R, rwlock-rt:W, pcpu-sem, pcpu-sem:R, pcpu-sem:W,
mutex
rtmutex, rwlock-rt, rwlock-rt:R, rwlock-rt:W, percpu-rwmem, pcpu-sem,
pcpu-sem:R, pcpu-sem:W, mutex

Note that RW-variant of locks have :R and :W suffix. Names without the
suffix are shortcuts for the both variants. Ex) rwsem = rwsem:R + rwsem:W.
Expand Down
3 changes: 3 additions & 0 deletions tools/perf/builtin-lock.c
Original file line number Diff line number Diff line change
Expand Up @@ -2271,7 +2271,10 @@ static int parse_lock_type(const struct option *opt __maybe_unused, const char *
/*
* Otherwise `tok` is `name` in `lock_type_table`.
* Single lock name could contain multiple flags.
* Replace alias `pcpu-sem` with actual name `percpu-rwsem.
*/
if (!strcmp(tok, "pcpu-sem"))
tok = (char *)"percpu-rwsem";
for (unsigned int i = 0; i < ARRAY_SIZE(lock_type_table); i++) {
if (!strcmp(lock_type_table[i].name, tok)) {
if (add_lock_type(lock_type_table[i].flags)) {
Expand Down

0 comments on commit e9188ae

Please sign in to comment.