Re: [PATCH 00/30] PREEMPT_AUTO: support lazy rescheduling

From: Raghavendra K T
Date: Fri Feb 23 2024 - 22:15:35 EST


On 2/23/2024 11:58 AM, Raghavendra K T wrote:
On 2/23/2024 8:44 AM, Ankur Arora wrote:

Thomas Gleixner <tglx@xxxxxxxxxxxxx> writes:

On Wed, Feb 21 2024 at 22:57, Raghavendra K T wrote:
On 2/21/2024 10:45 PM, Thomas Gleixner wrote:
On Wed, Feb 21 2024 at 17:53, Raghavendra K T wrote:
Configuration tested.
a) Base kernel (6.7),

Which scheduling model is the baseline using?


baseline is also PREEMPT_DYNAMIC with voluntary preemption

b) patched with PREEMPT_AUTO voluntary preemption.
c) patched with PREEMPT_DYNAMIC voluntary preemption.

Which RCU variant do you have enabled with a, b, c ?

I.e. PREEMPT_RCU=?

Raghu please confirm this, but if the defaults were chosen
then we should have:

baseline is also PREEMPT_DYNAMIC with voluntary preemption
PREEMPT_RCU=y

b) patched with PREEMPT_AUTO voluntary preemption.

If this was built with PREEMPT_VOLUNTARY then, PREEMPT_RCU=n.
If with CONFIG_PREEMPT, PREEMPT_RCU=y.

Might be worth rerunning the tests with the other combination
as well (still with voluntary preemption).

c) patched with PREEMPT_DYNAMIC voluntary preemption.
PREEMPT_RCU=y

Hello Thomas, Ankur,
Yes, Ankur's understanding is right, defaults were chosen all the time so
for
a) base 6.7.0+ + PREEMPT_DYNAMIC with voluntary preemption PREEMPT_RCU=y
b) patched + PREEMPT_AUTO voluntary preemption. PREEMPT_RCU = n
c) patched + PREEMPT_DYNAMIC with voluntary preemption PREEMPT_RCU=y

I will check with other combination (CONFIG_PREEMPT/PREEMPT_RCU) for (b)
and comeback if I see anything interesting.


I see that

d) patched + PREEMPT_AUTO=y voluntary preemption CONFIG_PREEMPT, PREEMPT_RCU = y

All the results at 80% confidence
case (d)
HashJoin 0%
Graph500 0%
XSBench +1.2%
NAS-ft +2.1%

In general averages are better for all the benchmarks but at 99%
confidence there seem to be no difference.

Overall looks on par or better for case (d)

Thanks and Regards
- Raghu