Re: [patch 2/2] keep on ticking if oprofile is active

Martin Schwidefsky
2009-05-29T12:58:50Z

On Thu, 28 May 2009 22:29:38 +0200 (CEST)
Thomas Gleixner <tglx@linutronix.de> wrote:

> On Thu, 28 May 2009, Martin Schwidefsky wrote:
> > From: Martin Schwidefsky <schwidefsky@de.ibm.com>
> >
> > On a NOHZ system with oprofile enabled the timer tick should not be
> > stopped when a cpu goes idle. Oprofile needs the pt_regs structure
> > of the interrupt and allocates memory in the ring buffer for each
> > sample. Current a maximum of 1 tick is accounted with oprofile if a
> > cpu sleeps for a longer period of time. This does bad things to the
> > percentages in the oprofile output. To postpone the oprofile tick to
> > tick_nohz_restart_sched_tick analog to the in kernel profiler is not
> > possible as there is no pt_regs structure in the context the
> > tick_nohz_restart_sched_tick function is called and it is not a good
> > idea to create hundreds of samples at once.
>
> Sigh. That's stupid.

What is stupid, the bug or the fix?

> OTOH, thinking more about the patch itself it might be even useful
> for things aside oprofile. Runtime switching from and to nohz mode
> for debugging or evaluation purposes comes to my mind. That would
> need some sysfs interface, but that's not too hard to do.

That should be no problem. We used to have the hz_timer system control
with the old no-tick solution on s390.

> So yeah, I think we should satisfy oprofile needs and utilize it further.

Ok, so you are in principle fine with the patch?