On Wed, 2023-12-13 at 12:33 +0900, Michael Franklin wrote: > > I tested the stock kernel with `threadirqs` and indeed the jitter was worse, but the RT kernel still > seemed to be more jittery. > > However, based on what you mentioned, I decided to look further interrupts/IRQ behavior, and found > this in /proc/interrupts: > > PREEMPT_RT kernel: > CPU0 CPU1 CPU2 CPU3 > 109: 22625815 0 0 0 rp1_irq_chip 8 Level 1f00074000.i2c > IPI0: 19640 12018430 6870398 5548908 Rescheduling interrupts > IPI1: 713 26295 18104 367 Function call interrupts > > Stock Kernel: > CPU0 CPU1 CPU2 CPU3 > 109: 11129247 0 0 0 rp1_irq_chip 8 Level 1f00074000.i2c > IPI0: 582 620 572 694 Rescheduling interrupts > IPI1: 40061 12360 108946 5475437 Function call interrupts > > Stock Kernel with `threadirqs`: > CPU0 CPU1 CPU2 CPU3 > 109: 21774128 0 0 0 rp1_irq_chip 8 Level 1f00074000.i2c > IPI0: 674 657 687 617 Rescheduling interrupts > IPI1: 58655 127527 21331238 5780380 Function call interrupts > > There you can see that, in the PREEMPT_RT kernel, there are a very large number of 'Rescheduling > interrupts' and only a few 'Function call interrupts'. However, in the stock kernel it is the > opposite -- a large number of 'Function call interrupts' and a few 'Rescheduling interrupts'. Part of that is mitigation ala 539fbb5be0, and part is RT being its naturally twitchy self. -Mike