Re: [RFC PATCH v5] sched: Fix performance regression introduced by mm_cid

From: Aaron Lu
Date: Thu Apr 13 2023 - 22:59:55 EST


On Thu, Apr 13, 2023 at 11:11:14AM -0400, Mathieu Desnoyers wrote:
> On 2023-04-13 10:37, Aaron Lu wrote:
> > On Thu, Apr 13, 2023 at 10:02:48AM -0400, Mathieu Desnoyers wrote:
> > > Introduce per-mm/cpu current concurrency id (mm_cid) to fix a PostgreSQL
> > > sysbench regression reported by Aaron Lu.
> > Initial test using postgres_sysbench showed the lock contention is gone :-)
> > Will check how it affects hackbench tomorrow.
>
> That's good news! Not unexpected though.
>
> One thing to look closely at is whether it's just that the qspinlocks are
> gone from the profiles but replaced by time spent in __mm_cid_get() due to
> cache-line bouncing of find-first-zero/test-and-set on the per-mm cid
> bitmap.

Found the below two appeared in profile when using cid as keyword, full
profile attached for your reference.

# Children Self Shared Object Symbol
0.97% 0.62% [kernel.vmlinux] [k] sched_mm_cid_migrate_from
0.48% 0.47% [kernel.vmlinux] [k] mm_cid_get

Thanks,
Aaron

Attachment: node0_0.profile.gz
Description: application/gzip