On Fri, May 18, 2018 at 4:59 AM, Joel Fernandes <joe...@google.com> wrote: > From: "Joel Fernandes (Google)" <j...@joelfernandes.org> > > In this patch we introduce a test module for simulating a long atomic > section in the kernel which the preemptoff or irqsoff tracers can > detect. This module is to be used only for test purposes and is default > disabled. > > Following is the expected output (only briefly shown) that can be parsed > to verify that the tracers are working correctly. We will use this from > the kselftests in future patches.
> +config TEST_ATOMIC_SECTIONS > + tristate "Simulate atomic sections for tracers to detect" > + default n n _is_ default default. > +/* SPDX? > + */ > +#include <linux/kernel.h> > +#include <linux/module.h> > +#include <linux/ktime.h> > +#include <linux/irq.h> > +#include <linux/printk.h> > +#include <linux/interrupt.h> > +#include <linux/delay.h> > +#include <linux/string.h> > +#include <linux/kthread.h> Perhaps keep in order? > + > +static int atomic_time = 100; > +static char atomic_mode[10] = "irq"; > + > +module_param_named(atomic_time, atomic_time, int, S_IRUGO); > +module_param_string(atomic_mode, atomic_mode, 10, S_IRUGO); > +MODULE_PARM_DESC(atomic_time, "Period in microseconds (100 uS default)"); > +MODULE_PARM_DESC(atomic_mode, "Mode of the test such as preempt or irq > (default irq)"); > + > + Extra blank line. > +static int __init atomic_sect_init(void) > +{ > + char task_name[50]; > + struct task_struct *test_task; > + > + sprintf(task_name, "%s dis test", atomic_mode); Just to be protective from dumb user. snprintf(); > + > + test_task = kthread_run((void*)atomic_sect_run, NULL, task_name); > + if (IS_ERR(test_task)) { > + return -1; return PTR_ERR() ? > + } > + > + return 0; > +} -- With Best Regards, Andy Shevchenko