"perf lock info [<options>]",
                NULL
        };
-       const char * const lock_usage[] = {
-               "perf lock [<options>] {record|report|script|info}",
+       const char *const lock_subcommands[] = { "record", "report", "script",
+                                                "info", NULL };
+       const char *lock_usage[] = {
+               NULL,
                NULL
        };
        const char * const report_usage[] = {
        for (i = 0; i < LOCKHASH_SIZE; i++)
                INIT_LIST_HEAD(lockhash_table + i);
 
-       argc = parse_options(argc, argv, lock_options, lock_usage,
-                            PARSE_OPT_STOP_AT_NON_OPTION);
+       argc = parse_options_subcommand(argc, argv, lock_options, lock_subcommands,
+                                       lock_usage, PARSE_OPT_STOP_AT_NON_OPTION);
        if (!argc)
                usage_with_options(lock_usage, lock_options);
 
 
                evts=$($cmd list --raw-dump)
                __perfcomp_colon "$evts" "$cur"
        # List subcommands for perf commands
-       elif [[ $prev == @(kvm|kmem|mem) ]]; then
+       elif [[ $prev == @(kvm|kmem|mem|lock) ]]; then
                subcmds=$($cmd $prev --list-cmds)
                __perfcomp_colon "$subcmds" "$cur"
        # List long option names