Skip to content

Commit

Permalink
kmemtrace: allow kmemtrace to be enabled after boot
Browse files Browse the repository at this point in the history
The kmemtrace_init() function returns early if kmemtrace is disabled at boot
causing kmemtrace_setup_late() to also bail out on NULL channel. This has the
unfortunate side effect that none of the debugfs files needed to enable
kmemtrace after boot are created.

Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
  • Loading branch information
Pekka Enberg committed Dec 29, 2008
1 parent 2e67624 commit faa97ab
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions mm/kmemtrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -307,29 +307,29 @@ early_param("kmemtrace.subbufs", kmemtrace_set_subbufs);

void kmemtrace_init(void)
{
if (!kmemtrace_enabled)
return;

if (!kmemtrace_n_subbufs)
kmemtrace_n_subbufs = KMEMTRACE_DEF_N_SUBBUFS;

kmemtrace_chan = relay_open(NULL, NULL, KMEMTRACE_SUBBUF_SIZE,
kmemtrace_n_subbufs, &relay_callbacks,
NULL);
if (unlikely(!kmemtrace_chan)) {
if (!kmemtrace_chan) {
printk(KERN_ERR "kmemtrace: could not open relay channel.\n");
return;
}

if (unlikely(kmemtrace_start_probes()))
goto probe_fail;

printk(KERN_INFO "kmemtrace: early init successful.\n");

return;
if (!kmemtrace_enabled) {
printk(KERN_INFO "kmemtrace: disabled. Pass "
"kemtrace.enable=yes as kernel parameter for "
"boot-time tracing.");
return;
}
if (kmemtrace_start_probes()) {
printk(KERN_ERR "kmemtrace: could not register marker probes!\n");
kmemtrace_cleanup();
return;
}

probe_fail:
printk(KERN_ERR "kmemtrace: could not register marker probes!\n");
kmemtrace_cleanup();
printk(KERN_INFO "kmemtrace: enabled.\n");
}

0 comments on commit faa97ab

Please sign in to comment.