Update 'perf kmem' completion
This commit is contained in:
		
							parent
							
								
									ce6e7b8f89
								
							
						
					
					
						commit
						9db043ca96
					
				
							
								
								
									
										36
									
								
								src/_perf
								
								
								
								
							
							
						
						
									
										36
									
								
								src/_perf
								
								
								
								
							|  | @ -101,6 +101,24 @@ _perf_trace_subcommand() { | |||
|   _alternative "_command_names -e" "subcommand:command:(record)" | ||||
| } | ||||
| 
 | ||||
| _perf_kmem_sort_keys() { | ||||
|   local -a keys=(ptr callsite bytes hit pingpong frag page order migtype gfp) | ||||
| 
 | ||||
|   for ((i = 1; i < CURRENT; i++)) | ||||
|   do | ||||
|     if [[ $words[$i] == "--slab" ]]; then | ||||
|       keys=(ptr callsite bytes hit pingpong frag) | ||||
|       break | ||||
|     fi | ||||
|     if [[ $words[$i] == "--page" ]]; then | ||||
|       keys=(page callsite hit order migtype gfp) | ||||
|       break | ||||
|     fi | ||||
|   done | ||||
| 
 | ||||
|   _values -s ',' 'key' $keys | ||||
| } | ||||
| 
 | ||||
| _perf() { | ||||
|   local context curcontext="$curcontext" state line | ||||
|   typeset -A opt_args | ||||
|  | @ -255,14 +273,20 @@ _perf() { | |||
|             && ret=0 | ||||
|         ;; | ||||
|         (kmem) | ||||
|           # TODO Complete 'record' command | ||||
|           _arguments \ | ||||
|             '(-i --input)'{-i,--input=}'[input file name]: :_files' \ | ||||
|             '(-f --force)'{-f,--force}'[dont do ownership validation]' \ | ||||
|             '--caller[show per-callsite statistics]' \ | ||||
|             '--alloc[show per-allocation statistics]' \ | ||||
|             '(-s --sort)'{-s,--sort=}'[sort by output]: :_values -s , key frag hit bytes' \ | ||||
|             '(-s --sort)'{-s,--sort=}'[sort by output]: :_perf_kmem_sort_keys' \ | ||||
|             '(-n --lines)'{-n,--lines}'[print n lines only]:number' \ | ||||
|             '--raw-ip[print raw ip instead of symbol]' \ | ||||
|             '--slab[analyze slab allocator events]' \ | ||||
|             '--page[analyze page allocator events]' \ | ||||
|             '--live[show live page stat]' \ | ||||
|             '--time=[only analyze samples within given time window]:time_window:' \ | ||||
|             '1:command:((record\:record\ the\ kmem\ events\ of\ an\ arbitrary\ workload stat\:report\ kernel\ memory\ statistics))' \ | ||||
|             '*:: :->kmem_args' \ | ||||
|             && ret=0 | ||||
|         ;; | ||||
|         (kvm) | ||||
|  | @ -754,6 +778,14 @@ _perf() { | |||
|           && ret=0 | ||||
|       fi | ||||
|     ;; | ||||
|     (kmem_args) | ||||
|       if [[ $words[1] == "record" ]]; then | ||||
|         _arguments \ | ||||
|           '1:command:_command_names -e' \ | ||||
|           '*::args:_normal' \ | ||||
|           && ret=0 | ||||
|       fi | ||||
|     ;; | ||||
|     (lock_args) | ||||
|       case $words[1] in | ||||
|         (record) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue