All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>, Steven Rostedt <rostedt@goodmis.org>,
	Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org, 2nddept-manager@sdl.hitachi.co.jp,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Paul Mackerras <paulus@samba.org>,
	Frederic Weisbecker <fweisbec@gmail.com>
Subject: Re: [PATCH -tip  6/7] perf probe: Show accessible global variables
Date: Fri, 22 Oct 2010 11:25:35 +0900	[thread overview]
Message-ID: <4CC0F61F.8000501@hitachi.com> (raw)
In-Reply-To: <20101021205051.GK3826@ghostprotocols.net>

(2010/10/22 5:50), Arnaldo Carvalho de Melo wrote:
> Em Thu, Oct 21, 2010 at 07:13:35PM +0900, Masami Hiramatsu escreveu:
>> Add --externs for allowing --vars to show accessible
>> global(externally defined) variables from a given probe
>> point too.
>> This will give you a hint which globals can be accessible
>> from the probe point.
> 
> Cool, but perhaps we need to filter out some of the globals? Things
> like:

Hmm, yeah. So is that enough to filter out symbols which start with
__k???tab_ and __crc_ ?


> 
>                 long unsigned int       __kcrctab_tcp_hashinfo
>                 long unsigned int       __kcrctab_tcp_proc_register
>                 long unsigned int       __kcrctab_tcp_proc_unregister
>                 long unsigned int       __kcrctab_tcp_prot
> 
> If --verbose is specified we could then show everything.

--verbose is already used for showing debug messages,  ;)
so how about using --all/--allextras?

Or, perhaps we can add more generic filtering for listing
events/vars/funcs.

Thank you,

> 
> So that it doesn't get this long:
> 
> [root@emilia ~]# perf probe -V tcp_v4_do_rcv:28 --externs
> Available variables at tcp_v4_do_rcv:28
> 	@<tcp_v4_do_rcv+390>
> 		(function_type)*	ip_nat_decode_session
> 		(unknown_type)	__crc_ipv4_specific
> 		(unknown_type)	__crc_sysctl_tcp_low_latency
> 		(unknown_type)	__crc_tcp4_gro_complete
> 		(unknown_type)	__crc_tcp4_gro_receive
> 		(unknown_type)	__crc_tcp_hashinfo
> 		(unknown_type)	__crc_tcp_proc_register
> 		(unknown_type)	__crc_tcp_proc_unregister
> 		(unknown_type)	__crc_tcp_prot
> 		(unknown_type)	__crc_tcp_twsk_unique
> 		(unknown_type)	__crc_tcp_v4_conn_request
> 		(unknown_type)	__crc_tcp_v4_connect
> 		(unknown_type)	__crc_tcp_v4_destroy_sock
> 		(unknown_type)	__crc_tcp_v4_do_rcv
> 		(unknown_type)	__crc_tcp_v4_md5_do_add
> 		(unknown_type)	__crc_tcp_v4_md5_do_del
> 		(unknown_type)	__crc_tcp_v4_md5_hash_skb
> 		(unknown_type)	__crc_tcp_v4_md5_lookup
> 		(unknown_type)	__crc_tcp_v4_remember_stamp
> 		(unknown_type)	__crc_tcp_v4_send_check
> 		(unknown_type)	__crc_tcp_v4_syn_recv_sock
> 		__u8*	ip_tos2prio
> 		atomic_long_t*	vm_stat
> 		atomic_t	tcp_memory_allocated
> 		bool	c1e_detected
> 		char	__pcpu_scope_cpu_core_map
> 		char	__pcpu_scope_cpu_info
> 		char	__pcpu_scope_cpu_llc_id
> 		char	__pcpu_scope_cpu_number
> 		char	__pcpu_scope_cpu_sibling_map
> 		char	__pcpu_scope_current_task
> 		char	__pcpu_scope_init_tss
> 		char	__pcpu_scope_irq_count
> 		char	__pcpu_scope_irq_regs
> 		char	__pcpu_scope_irq_stack_ptr
> 		char	__pcpu_scope_irq_stack_union
> 		char	__pcpu_scope_irq_stat
> 		char	__pcpu_scope_kernel_stack
> 		char	__pcpu_scope_numa_node
> 		char	__pcpu_scope_orig_ist
> 		char	__pcpu_scope_process_counts
> 		char	__pcpu_scope_softirq_work_list
> 		char	__pcpu_scope_softnet_data
> 		char	__pcpu_scope_this_cpu_off
> 		char	__pcpu_scope_tick_cpu_device
> 		char	__pcpu_scope_vector_irq
> 		char	__pcpu_scope_vm_event_states
> 		char	__pcpu_scope_x2apic_extra_bits
> 		char	__pcpu_scope_x86_bios_cpu_apicid
> 		char	__pcpu_scope_x86_cpu_to_apicid
> 		char	__pcpu_scope_x86_cpu_to_node_map
> 		char*	__kstrtab_ipv4_specific
> 		char*	__kstrtab_sysctl_tcp_low_latency
> 		char*	__kstrtab_tcp4_gro_complete
> 		char*	__kstrtab_tcp4_gro_receive
> 		char*	__kstrtab_tcp_hashinfo
> 		char*	__kstrtab_tcp_proc_register
> 		char*	__kstrtab_tcp_proc_unregister
> 		char*	__kstrtab_tcp_prot
> 		char*	__kstrtab_tcp_twsk_unique
> 		char*	__kstrtab_tcp_v4_conn_request
> 		char*	__kstrtab_tcp_v4_connect
> 		char*	__kstrtab_tcp_v4_destroy_sock
> 		char*	__kstrtab_tcp_v4_do_rcv
> 		char*	__kstrtab_tcp_v4_md5_do_add
> 		char*	__kstrtab_tcp_v4_md5_do_del
> 		char*	__kstrtab_tcp_v4_md5_hash_skb
> 		char*	__kstrtab_tcp_v4_md5_lookup
> 		char*	__kstrtab_tcp_v4_remember_stamp
> 		char*	__kstrtab_tcp_v4_send_check
> 		char*	__kstrtab_tcp_v4_syn_recv_sock
> 		char*	hex_asc
> 		char*	inet_csk_timer_bug_msg
> 		cpumask_var_t	cpu_callout_mask
> 		cpumask_var_t	cpu_core_map
> 		cpumask_var_t	cpu_sibling_map
> 		cpumask_var_t*	node_to_cpumask_map
> 		int	acpi_disabled
> 		int	acpi_noirq
> 		int	acpi_pci_disabled
> 		int	audit_enabled
> 		int	cpu_number
> 		int	debug_locks
> 		int	disable_apic
> 		int	net_msg_warn
> 		int	nr_cpu_ids
> 		int	nr_online_nodes
> 		int	numa_node
> 		int	page_group_by_mobility_disabled
> 		int	percpu_counter_batch
> 		int	prof_on
> 		int	sched_mc_power_savings
> 		int	sched_smt_power_savings
> 		int	smp_found_config
> 		int	sysctl_max_syn_backlog
> 		int	sysctl_tcp_adv_win_scale
> 		int	sysctl_tcp_cookie_size
> 		int	sysctl_tcp_ecn
> 		int	sysctl_tcp_fin_timeout
> 		int	sysctl_tcp_keepalive_intvl
> 		int	sysctl_tcp_keepalive_probes
> 		int	sysctl_tcp_keepalive_time
> 		int	sysctl_tcp_low_latency
> 		int	sysctl_tcp_max_orphans
> 		int	sysctl_tcp_reordering
> 		int	sysctl_tcp_syncookies
> 		int	sysctl_tcp_tw_reuse
> 		int	tcp_memory_pressure
> 		int	time_status
> 		int	timer_stats_active
> 		int	x2apic_phys
> 		int	x86_cpu_to_node_map
> 		int*	console_printk
> 		int*	sysctl_tcp_mem
> 		int*	sysctl_tcp_rmem
> 		int*	sysctl_tcp_wmem
> 		int*	x86_cpu_to_node_map_early_ptr
> 		irq_cpustat_t	irq_stat
> 		long unsigned int	__kcrctab_ipv4_specific
> 		long unsigned int	__kcrctab_sysctl_tcp_low_latency
> 		long unsigned int	__kcrctab_tcp4_gro_complete
> 		long unsigned int	__kcrctab_tcp4_gro_receive
> 		long unsigned int	__kcrctab_tcp_hashinfo
> 		long unsigned int	__kcrctab_tcp_proc_register
> 		long unsigned int	__kcrctab_tcp_proc_unregister
> 		long unsigned int	__kcrctab_tcp_prot
> 		long unsigned int	__kcrctab_tcp_twsk_unique
> 		long unsigned int	__kcrctab_tcp_v4_conn_request
> 		long unsigned int	__kcrctab_tcp_v4_connect
> 		long unsigned int	__kcrctab_tcp_v4_destroy_sock
> 		long unsigned int	__kcrctab_tcp_v4_do_rcv
> 		long unsigned int	__kcrctab_tcp_v4_md5_do_add
> 		long unsigned int	__kcrctab_tcp_v4_md5_do_del
> 		long unsigned int	__kcrctab_tcp_v4_md5_hash_skb
> 		long unsigned int	__kcrctab_tcp_v4_md5_lookup
> 		long unsigned int	__kcrctab_tcp_v4_remember_stamp
> 		long unsigned int	__kcrctab_tcp_v4_send_check
> 		long unsigned int	__kcrctab_tcp_v4_syn_recv_sock
> 		long unsigned int	jiffies
> 		long unsigned int	kernel_stack
> 		long unsigned int	mmap_min_addr
> 		long unsigned int	mmu_cr4_features
> 		long unsigned int*	__per_cpu_offset
> 		long unsigned int*	cpu_bit_bitmap
> 		long unsigned int*	sysctl_local_reserved_ports
> 		nodemask_t*	node_states
> 		pg_data_t**	node_data
> 		physid_mask_t	phys_cpu_present_map
> 		pteval_t	__supported_pte_mask
> 		spinlock_t	dcache_lock
> 		struct address_space	swapper_space
> 		struct apic*	apic
> 		struct cache_sizes*	malloc_sizes
> 		struct cpuinfo_x86	boot_cpu_data
> 		struct cpuinfo_x86	cpu_info
> 		struct cpumask*	cpu_online_mask
> 		struct cpumask*	cpu_possible_mask
> 		struct cpumask*	cpu_present_mask
> 		struct device	x86_dma_fallback_dev
> 		struct dma_map_ops*	dma_ops
> 		struct dqstats	dqstats
> 		struct icmp_err*	icmp_err_convert
> 		struct inet_connection_sock_af_ops	ipv4_specific
> 		struct inet_hashinfo	tcp_hashinfo
> 		struct inet_timewait_death_row	tcp_death_row
> 		struct kernel_symbol	__ksymtab_ipv4_specific
> 		struct kernel_symbol	__ksymtab_sysctl_tcp_low_latency
> 		struct kernel_symbol	__ksymtab_tcp4_gro_complete
> 		struct kernel_symbol	__ksymtab_tcp4_gro_receive
> 		struct kernel_symbol	__ksymtab_tcp_hashinfo
> 		struct kernel_symbol	__ksymtab_tcp_proc_register
> 		struct kernel_symbol	__ksymtab_tcp_proc_unregister
> 		struct kernel_symbol	__ksymtab_tcp_prot
> 		struct kernel_symbol	__ksymtab_tcp_twsk_unique
> 		struct kernel_symbol	__ksymtab_tcp_v4_conn_request
> 		struct kernel_symbol	__ksymtab_tcp_v4_connect
> 		struct kernel_symbol	__ksymtab_tcp_v4_destroy_sock
> 		struct kernel_symbol	__ksymtab_tcp_v4_do_rcv
> 		struct kernel_symbol	__ksymtab_tcp_v4_md5_do_add
> 		struct kernel_symbol	__ksymtab_tcp_v4_md5_do_del
> 		struct kernel_symbol	__ksymtab_tcp_v4_md5_hash_skb
> 		struct kernel_symbol	__ksymtab_tcp_v4_md5_lookup
> 		struct kernel_symbol	__ksymtab_tcp_v4_remember_stamp
> 		struct kernel_symbol	__ksymtab_tcp_v4_send_check
> 		struct kernel_symbol	__ksymtab_tcp_v4_syn_recv_sock
> 		struct list_head*	nf_hooks
> 		struct mem_section**	mem_section
> 		struct memnode	memnode
> 		struct neigh_table	nd_tbl
> 		struct nf_afinfo**	nf_afinfo
> 		struct percpu_counter	tcp_orphan_count
> 		struct percpu_counter	tcp_sockets_allocated
> 		struct pernet_operations	tcp4_net_ops
> 		struct pernet_operations	tcp_sk_ops
> 		struct pglist_data**	node_data
> 		struct pid*	cad_pid
> 		struct pid_namespace	init_pid_ns
> 		struct proto	tcp_prot
> 		struct pt_regs*	irq_regs
> 		struct pv_apic_ops	pv_apic_ops
> 		struct pv_cpu_ops	pv_cpu_ops
> 		struct pv_info	pv_info
> 		struct pv_irq_ops	pv_irq_ops
> 		struct pv_mmu_ops	pv_mmu_ops
> 		struct pv_time_ops	pv_time_ops
> 		struct request_sock_ops	tcp_request_sock_ops
> 		struct resource	ioport_resource
> 		struct rps_sock_flow_table*	rps_sock_flow_table
> 		struct sk_buff*	skb
> 		struct smp_ops	smp_ops
> 		struct sock*	sk
> 		struct task_struct*	current_task
> 		struct tcp_congestion_ops	tcp_init_congestion_ops
> 		struct tcp_request_sock_ops	tcp_request_sock_ipv4_ops
> 		struct tcp_seq_afinfo	tcp4_seq_afinfo
> 		struct tcp_sock_af_ops	tcp_sock_ipv4_specific
> 		struct timewait_sock_ops	tcp_timewait_sock_ops
> 		struct tracepoint	__tracepoint_irq_handler_entry
> 		struct tracepoint	__tracepoint_irq_handler_exit
> 		struct tracepoint	__tracepoint_kfree
> 		struct tracepoint	__tracepoint_kmalloc
> 		struct tracepoint	__tracepoint_kmalloc_node
> 		struct tracepoint	__tracepoint_kmem_cache_alloc
> 		struct tracepoint	__tracepoint_kmem_cache_alloc_node
> 		struct tracepoint	__tracepoint_kmem_cache_free
> 		struct tracepoint	__tracepoint_mm_page_alloc
> 		struct tracepoint	__tracepoint_mm_page_alloc_extfrag
> 		struct tracepoint	__tracepoint_mm_page_alloc_zone_locked
> 		struct tracepoint	__tracepoint_mm_page_free_direct
> 		struct tracepoint	__tracepoint_mm_page_pcpu_drain
> 		struct tracepoint	__tracepoint_mm_pagevec_free
> 		struct tracepoint	__tracepoint_module_free
> 		struct tracepoint	__tracepoint_module_get
> 		struct tracepoint	__tracepoint_module_load
> 		struct tracepoint	__tracepoint_module_put
> 		struct tracepoint	__tracepoint_module_request
> 		struct tracepoint	__tracepoint_softirq_entry
> 		struct tracepoint	__tracepoint_softirq_exit
> 		struct tracepoint	__tracepoint_softirq_raise
> 		struct vm_event_state	vm_event_states
> 		struct x86_init_ops	x86_init
> 		struct x86_platform_ops	x86_platform
> 		u16	x86_bios_cpu_apicid
> 		u32	inet_ehash_secret
> 		union irq_stack_union	irq_stack_union
> 		unsigned int	apic_verbosity
> 		unsigned int	sysctl_timer_migration
> 
> - Arnaldo
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/


-- 
Masami HIRAMATSU
2nd Dept. Linux Technology Center
Hitachi, Ltd., Systems Development Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com

  reply	other threads:[~2010-10-22  2:25 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-21 10:12 [PATCH -tip 0/7] Perf probe update (--vars/--module) Masami Hiramatsu
2010-10-21 10:13 ` [PATCH -tip 1/7] [BUGFIX] perf probe: Fix type searching Masami Hiramatsu
2010-10-23 19:40   ` [tip:perf/urgent] " tip-bot for Masami Hiramatsu
2010-10-21 10:13 ` [PATCH -tip 2/7] [BUGFIX] perf probe: Fix local variable searching loop Masami Hiramatsu
2010-10-23 19:40   ` [tip:perf/urgent] " tip-bot for Masami Hiramatsu
2010-10-21 10:13 ` [PATCH -tip 3/7] perf probe: Support global variables Masami Hiramatsu
2010-10-23 19:40   ` [tip:perf/urgent] " tip-bot for Masami Hiramatsu
2010-10-21 10:13 ` [PATCH -tip 4/7] perf probe: Show accessible local variables Masami Hiramatsu
2010-10-23 19:41   ` [tip:perf/urgent] " tip-bot for Masami Hiramatsu
2010-10-21 10:13 ` [PATCH -tip 5/7] perf probe: Function style fix Masami Hiramatsu
2010-10-23 19:41   ` [tip:perf/urgent] " tip-bot for Masami Hiramatsu
2010-10-21 10:13 ` [PATCH -tip 6/7] perf probe: Show accessible global variables Masami Hiramatsu
2010-10-21 20:50   ` Arnaldo Carvalho de Melo
2010-10-22  2:25     ` Masami Hiramatsu [this message]
2010-10-22  5:31       ` Masami Hiramatsu
2010-10-23 19:42   ` [tip:perf/urgent] " tip-bot for Masami Hiramatsu
2010-10-21 10:13 ` [PATCH -tip 7/7] perf probe: Add basic module support Masami Hiramatsu
2010-10-23 19:42   ` [tip:perf/urgent] " tip-bot for Masami Hiramatsu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CC0F61F.8000501@hitachi.com \
    --to=masami.hiramatsu.pt@hitachi.com \
    --cc=2nddept-manager@sdl.hitachi.co.jp \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    --cc=rostedt@goodmis.org \
    --cc=srikar@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.