Messages in this thread | | | From | Linus Torvalds <> | Date | Mon, 5 Nov 2018 14:14:33 -0800 | Subject | Re: [LKP] [mm] 9bc8039e71: will-it-scale.per_thread_ops -64.1% regression |
| |
On Mon, Nov 5, 2018 at 12:12 PM Vlastimil Babka <vbabka@suse.cz> wrote: > > I didn't spot an obvious mistake in the patch itself, so it looks > like some bad interaction between scheduler and the mmap downgrade?
I'm thinking it's RWSEM_SPIN_ON_OWNER that ends up being confused by the downgrade.
It looks like the benchmark used to be basically CPU-bound, at about 800% CPU, and now it's somewhere in the 200% CPU region:
will-it-scale.time.percent_of_cpu_this_job_got
800 +-+-------------------------------------------------------------------+ |.+.+.+.+.+.+.+. .+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+..+.+.+.+. .+.+.+.| 700 +-+ +. + | | | 600 +-+ | | | 500 +-+ | | | 400 +-+ | | | 300 +-+ | | | 200 O-O O O O O O | | O O O O O O O O O O O O O O O O O O | 100 +-+-------------------------------------------------------------------+
which sounds like the downgrade really messes with the "spin waiting for lock" logic.
I'm thinking it's the "wake up waiter" logic that has some bad interaction with spinning, and breaks that whole optimization.
Adding Waiman and Davidlohr to the participants, because they seem to be the obvious experts in this area.
Linus
| |