tracing: Use a global field list for all syscall exit events
All syscall exit events have the same fields. The kernel size drops 2.5K: text data bss dec hex filename 7018612 2034376 7251132 16304120 f8c7f8 vmlinux.o.orig 7018612 2031888 7251132 16301632 f8be40 vmlinux.o Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> LKML-Reference: <4BFA3746.8070100@cn.fujitsu.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
		
							parent
							
								
									f384c954c9
								
							
						
					
					
						commit
						c9642c49aa
					
				| @ -165,7 +165,6 @@ extern struct trace_event_functions exit_syscall_print_funcs; | ||||
| 		.enter_event	= &event_enter_##sname,		\ | ||||
| 		.exit_event	= &event_exit_##sname,		\ | ||||
| 		.enter_fields	= LIST_HEAD_INIT(__syscall_meta_##sname.enter_fields), \ | ||||
| 		.exit_fields	= LIST_HEAD_INIT(__syscall_meta_##sname.exit_fields), \ | ||||
| 	}; | ||||
| 
 | ||||
| #define SYSCALL_DEFINE0(sname)					\ | ||||
| @ -180,7 +179,6 @@ extern struct trace_event_functions exit_syscall_print_funcs; | ||||
| 		.enter_event	= &event_enter__##sname,	\ | ||||
| 		.exit_event	= &event_exit__##sname,		\ | ||||
| 		.enter_fields	= LIST_HEAD_INIT(__syscall_meta__##sname.enter_fields), \ | ||||
| 		.exit_fields	= LIST_HEAD_INIT(__syscall_meta__##sname.exit_fields), \ | ||||
| 	};							\ | ||||
| 	asmlinkage long sys_##sname(void) | ||||
| #else | ||||
|  | ||||
| @ -26,7 +26,6 @@ struct syscall_metadata { | ||||
| 	const char	**types; | ||||
| 	const char	**args; | ||||
| 	struct list_head enter_fields; | ||||
| 	struct list_head exit_fields; | ||||
| 
 | ||||
| 	struct ftrace_event_call *enter_event; | ||||
| 	struct ftrace_event_call *exit_event; | ||||
|  | ||||
| @ -23,6 +23,9 @@ static int syscall_exit_register(struct ftrace_event_call *event, | ||||
| static int syscall_enter_define_fields(struct ftrace_event_call *call); | ||||
| static int syscall_exit_define_fields(struct ftrace_event_call *call); | ||||
| 
 | ||||
| /* All syscall exit events have the same fields */ | ||||
| static LIST_HEAD(syscall_exit_fields); | ||||
| 
 | ||||
| static struct list_head * | ||||
| syscall_get_enter_fields(struct ftrace_event_call *call) | ||||
| { | ||||
| @ -34,9 +37,7 @@ syscall_get_enter_fields(struct ftrace_event_call *call) | ||||
| static struct list_head * | ||||
| syscall_get_exit_fields(struct ftrace_event_call *call) | ||||
| { | ||||
| 	struct syscall_metadata *entry = call->data; | ||||
| 
 | ||||
| 	return &entry->exit_fields; | ||||
| 	return &syscall_exit_fields; | ||||
| } | ||||
| 
 | ||||
| struct trace_event_functions enter_syscall_print_funcs = { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user