Linux 6.4 Scheduler Updates Fixes A Database Performance Regression
All of the scheduler changes were sent out on Thursday that are ready for the Linux 6.4 kernel.
First up, the Linux 6.4 scheduler material fixes a performance regression that was introduced in Linux 6.3 due to "mm_cid" changes. Going back to March when Linux 6.3 was in development it was observed by Intel that there was a performance regression affecting PostgreSQL with heavy contention compared to Linux 6.2.
The fix involves keeping track of the current allocated mm_cid for each mm/cpu rather than freeing immediately on context switch. After this regression fix went through eight rounds of review, it's ready now for Linux 6.4 so that PostgreSQL is happy and presumably some other workloads as well.
As another scheduler performance change for this new kernel, the sched_move_task operation should also see better performance too when using config auto-group.
Linux 6.4 scheduler changes also include now supporting unprivileged PSI profiling, improving live-patch stalls, and for core-scheduling CPUs to avoid selecting throttled tasks to run.
More details on the Linux 6.4 scheduler updates via this pull request.
First up, the Linux 6.4 scheduler material fixes a performance regression that was introduced in Linux 6.3 due to "mm_cid" changes. Going back to March when Linux 6.3 was in development it was observed by Intel that there was a performance regression affecting PostgreSQL with heavy contention compared to Linux 6.2.
The fix involves keeping track of the current allocated mm_cid for each mm/cpu rather than freeing immediately on context switch. After this regression fix went through eight rounds of review, it's ready now for Linux 6.4 so that PostgreSQL is happy and presumably some other workloads as well.
As another scheduler performance change for this new kernel, the sched_move_task operation should also see better performance too when using config auto-group.
Linux 6.4 scheduler changes also include now supporting unprivileged PSI profiling, improving live-patch stalls, and for core-scheduling CPUs to avoid selecting throttled tasks to run.
More details on the Linux 6.4 scheduler updates via this pull request.
1 Comment