Re: Runtime overhead of PREEMPT_DYNAMIC

From: Mike Galbraith
Date: Fri Oct 20 2023 - 10:34:31 EST


On Fri, 2023-10-20 at 16:11 +0200, Mike Galbraith wrote:
> On Fri, 2023-10-20 at 15:40 +0200, Emanuele Rocca wrote:
> > Hi Mike,
> >
> > Here is the full diff between the kernel configurations I used. The only
> > change I made was setting CONFIG_PREEMPT_DYNAMIC=n, everything else was
> > a consequence of that AFAICT, but please do let me know if you see
> > anything that shouldn't be there.
> >
> > --- config-6.5.0-0.preempt-dynamic-amd64        2023-10-11 15:30:02.000000000 +0200
> > +++ config-6.5.0-0.a.test-amd64 2023-10-11 14:30:02.000000000 +0200
> >
> > @@ -10597,7 +10596,6 @@
> >  # end of Scheduler Debugging
> >  
> >  # CONFIG_DEBUG_TIMEKEEPING is not set
> > -CONFIG_DEBUG_PREEMPT=y
> >  
> >  #
> >  # Lock Debugging (spinlocks, mutexes, etc...)
>
> Seems you had also turned on DEBUG_PREEMPT in the dynamic setup, which
> adds some overhead.. but not a metric ton.

Hm, I don't recall the overhead as being that bad, but thar she blows.

i7-4790 avg cmdline
6.5.8-voluntary 3685.08 3679.93 3704.98 3689.99 1.000
6.5.8-dynamic 3571.62 3568.61 3550.55 3563.59 .965
3052.06 3032.74 3019.93 3034.91 .822 +DEBUG_PREEMPT
3651.37 3599.87 3615.18 3622.14 .981 preempt=none
3459.58 3514.09 3539.88 3504.51 .949 preempt=full