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:
Родитель
4ee7c60de8
Коммит
58eacfffc4
|
@ -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++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче