[6.1] Please apply cc6003916ed46d7a67d91ee32de0f9138047d55f

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

 



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.

"""
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