mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	bpftool: Add misc section and probe for large INSN limit
Introduce a new probe section (misc) for probes not related to concrete
map types, program types, functions or kernel configuration. Introduce a
probe for large INSN limit as the first one in that section.
Example outputs:
  # bpftool feature probe
  [...]
  Scanning miscellaneous eBPF features...
  Large program size limit is available
  # bpftool feature probe macros
  [...]
  /*** eBPF misc features ***/
  #define HAVE_HAVE_LARGE_INSN_LIMIT
  # bpftool feature probe -j | jq '.["misc"]'
  {
    "have_large_insn_limit": true
  }
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Link: https://lore.kernel.org/bpf/20200108162428.25014-3-mrostecki@opensuse.org
			
			
This commit is contained in:
		
							parent
							
								
									5ff0512003
								
							
						
					
					
						commit
						2faef64aa6
					
				
					 1 changed files with 18 additions and 0 deletions
				
			
		| 
						 | 
					@ -572,6 +572,18 @@ probe_helpers_for_progtype(enum bpf_prog_type prog_type, bool supported_type,
 | 
				
			||||||
		printf("\n");
 | 
							printf("\n");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					probe_large_insn_limit(const char *define_prefix, __u32 ifindex)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						bool res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						res = bpf_probe_large_insn_limit(ifindex);
 | 
				
			||||||
 | 
						print_bool_feature("have_large_insn_limit",
 | 
				
			||||||
 | 
								   "Large program size limit",
 | 
				
			||||||
 | 
								   "HAVE_LARGE_INSN_LIMIT",
 | 
				
			||||||
 | 
								   res, define_prefix);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int do_probe(int argc, char **argv)
 | 
					static int do_probe(int argc, char **argv)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	enum probe_component target = COMPONENT_UNSPEC;
 | 
						enum probe_component target = COMPONENT_UNSPEC;
 | 
				
			||||||
| 
						 | 
					@ -724,6 +736,12 @@ static int do_probe(int argc, char **argv)
 | 
				
			||||||
		probe_helpers_for_progtype(i, supported_types[i],
 | 
							probe_helpers_for_progtype(i, supported_types[i],
 | 
				
			||||||
					   define_prefix, ifindex);
 | 
										   define_prefix, ifindex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						print_end_then_start_section("misc",
 | 
				
			||||||
 | 
									     "Scanning miscellaneous eBPF features...",
 | 
				
			||||||
 | 
									     "/*** eBPF misc features ***/",
 | 
				
			||||||
 | 
									     define_prefix);
 | 
				
			||||||
 | 
						probe_large_insn_limit(define_prefix, ifindex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exit_close_json:
 | 
					exit_close_json:
 | 
				
			||||||
	if (json_output) {
 | 
						if (json_output) {
 | 
				
			||||||
		/* End current "section" of probes */
 | 
							/* End current "section" of probes */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue