mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	init, tracing: instrument security and console initcall trace events
Trace events have been added around the initcall functions defined in init/main.c. But console and security have their own initcalls. This adds the trace events associated for those initcall functions. Link: http://lkml.kernel.org/r/1521765208.19745.2.camel@polymtl.ca Cc: Ingo Molnar <mingo@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Abderrahmane Benbachir <abderrahmane.benbachir@polymtl.ca> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
		
							parent
							
								
									4ee7c60de8
								
							
						
					
					
						commit
						58eacfffc4
					
				
					 2 changed files with 13 additions and 2 deletions
				
			
		| 
						 | 
					@ -52,6 +52,7 @@
 | 
				
			||||||
#include <linux/uaccess.h>
 | 
					#include <linux/uaccess.h>
 | 
				
			||||||
#include <asm/sections.h>
 | 
					#include <asm/sections.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <trace/events/initcall.h>
 | 
				
			||||||
#define CREATE_TRACE_POINTS
 | 
					#define CREATE_TRACE_POINTS
 | 
				
			||||||
#include <trace/events/printk.h>
 | 
					#include <trace/events/printk.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2781,6 +2782,7 @@ EXPORT_SYMBOL(unregister_console);
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
void __init console_init(void)
 | 
					void __init console_init(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						int ret;
 | 
				
			||||||
	initcall_t *call;
 | 
						initcall_t *call;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Setup the default TTY line discipline. */
 | 
						/* Setup the default TTY line discipline. */
 | 
				
			||||||
| 
						 | 
					@ -2791,8 +2793,11 @@ void __init console_init(void)
 | 
				
			||||||
	 * inform about problems etc..
 | 
						 * inform about problems etc..
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	call = __con_initcall_start;
 | 
						call = __con_initcall_start;
 | 
				
			||||||
 | 
						trace_initcall_level("console");
 | 
				
			||||||
	while (call < __con_initcall_end) {
 | 
						while (call < __con_initcall_end) {
 | 
				
			||||||
		(*call)();
 | 
							trace_initcall_start((*call));
 | 
				
			||||||
 | 
							ret = (*call)();
 | 
				
			||||||
 | 
							trace_initcall_finish((*call), ret);
 | 
				
			||||||
		call++;
 | 
							call++;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,6 +30,8 @@
 | 
				
			||||||
#include <linux/string.h>
 | 
					#include <linux/string.h>
 | 
				
			||||||
#include <net/flow.h>
 | 
					#include <net/flow.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <trace/events/initcall.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MAX_LSM_EVM_XATTR	2
 | 
					#define MAX_LSM_EVM_XATTR	2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Maximum number of letters for an LSM name string */
 | 
					/* Maximum number of letters for an LSM name string */
 | 
				
			||||||
| 
						 | 
					@ -45,10 +47,14 @@ static __initdata char chosen_lsm[SECURITY_NAME_MAX + 1] =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void __init do_security_initcalls(void)
 | 
					static void __init do_security_initcalls(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						int ret;
 | 
				
			||||||
	initcall_t *call;
 | 
						initcall_t *call;
 | 
				
			||||||
	call = __security_initcall_start;
 | 
						call = __security_initcall_start;
 | 
				
			||||||
 | 
						trace_initcall_level("security");
 | 
				
			||||||
	while (call < __security_initcall_end) {
 | 
						while (call < __security_initcall_end) {
 | 
				
			||||||
		(*call) ();
 | 
							trace_initcall_start((*call));
 | 
				
			||||||
 | 
							ret = (*call) ();
 | 
				
			||||||
 | 
							trace_initcall_finish((*call), ret);
 | 
				
			||||||
		call++;
 | 
							call++;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue