Re: [6.1] Please apply cc6003916ed46d7a67d91ee32de0f9138047d55f

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Oct 20, 2023 at 11:46:36AM +0900, Hyeonggon Yoo wrote:

> On Fri, Oct 20, 2023 at 10:27 AM Luiz Capitulino <luizcap@xxxxxxxxxx> wrote:
> >
> > Hi,
> >
> > As reported before[1], we found another regression in 6.1 when doing
> > performance comparisons with 5.10. This one is caused by CONFIG_DEBUG_PREEMPT
> > being enabled by default by the following upstream commit if you have the
> > right config dependencies enabled (commit is introduced in v5.16-rc1):
> >
> > """
> > commit c597bfddc9e9e8a63817252b67c3ca0e544ace26
> > Author: Frederic Weisbecker <frederic@xxxxxxxxxx>
> > Date: Tue Sep 14 12:31:34 2021 +0200
> >
> > sched: Provide Kconfig support for default dynamic preempt mode
> > """
> >
> > We found up to 8% performance improvement with CONFIG_DEBUG_PREEMPT
> > disabled in different perf benchmarks (including UnixBench process
> > creation and redis). The root cause is explained in the commit log
> > below which is merged in 6.3 and applies (almost) clealy on 6.1.59.
> 
> Oh, I should've sent it to the stable. Thanks for sending it!

Thanks for doing the original fix! :)

> Yes, DEBUG_PREEMPT was unintentionally enabled after the introduction
> of PREEMPT_DYNAMIC. It was already enabled by default for PREEMPTION=y kernels
> but PREEMPT_DYNAMIC always enables PREEMPT_BUILD (and hence PREEMPTION)
> so distros that were using PREEMPT_VOLUNTARY are silently affected by that.
> 
> It looks appropriate to be backported to the stable tree (to me).
> Hmm but I think it should be backported to 5.15 too?

Yeah, I see that Greg applied it to 5.15 and 5.10 as well.

I posted it only for 6.1 because the worst case seems to happen after
c597bfddc9 where CONFIG_DEBUG_PREEMPT may be enabled automatically.
But having the fix in earlier kernels is certainly good as well.

- Luiz

> 
> > """
> > commit cc6003916ed46d7a67d91ee32de0f9138047d55f
> > Author: Hyeonggon Yoo <42.hyeyoo@xxxxxxxxx>
> > Date:   Sat Jan 21 12:39:42 2023 +0900
> >
> >      lib/Kconfig.debug: do not enable DEBUG_PREEMPT by default
> >
> >      In workloads where this_cpu operations are frequently performed,
> >      enabling DEBUG_PREEMPT may result in significant increase in
> >      runtime overhead due to frequent invocation of
> >      __this_cpu_preempt_check() function.
> >
> >      This can be demonstrated through benchmarks such as hackbench where this
> >      configuration results in a 10% reduction in performance, primarily due to
> >      the added overhead within memcg charging path.
> > """
> >
> > [1] https://lore.kernel.org/stable/010edf5a-453d-4c98-9c07-12e75d3f983c@xxxxxxxxxx/



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux