cmd=${COMP_WORDS[0]}
 
-       # List perf subcommands
+       # List perf subcommands or long options
        if [ $COMP_CWORD -eq 1 ]; then
-               cmds=$($cmd --list-cmds)
-               COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) )
+               if [[ $cur == --* ]]; then
+                       COMPREPLY=( $( compgen -W '--help --version \
+                       --exec-path --html-path --paginate --no-pager \
+                       --perf-dir --work-tree --debugfs-dir' -- "$cur" ) )
+               else
+                       cmds=$($cmd --list-cmds)
+                       COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) )
+               fi
        # List possible events for -e option
        elif [[ $prev == "-e" && "${COMP_WORDS[1]}" == @(record|stat|top) ]]; then
                cmds=$($cmd list --raw-dump)