Date: Sat, 25 Apr 2015 09:31:31 -0700 From: Adrian Chadd <adrian@freebsd.org> To: "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org> Subject: RFC: setting performance_cx_lowest=C2 in -HEAD to avoid lock contention on many-CPU boxes Message-ID: <CAJ-VmonG%2By5gzoYmer70KAswUorvezcZxRSDsQWj47=jsAZ71w@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi! I've been doing some NUMA testing on large boxes and I've found that there's lock contention in the ACPI path. It's due to my change a while ago to start using sleep states above ACPI C1 by default. The ACPI C3 state involves a bunch of register fiddling in the ACPI sleep path that grabs a serialiser lock, and on an 80 thread box this is costly. I'd like to drop performance_cx_lowest to C2 in -HEAD. ACPI C2 state doesn't require the same register fiddling (to disable bus mastering, if I'm reading it right) and so it doesn't enter that particular serialised path. I've verified on Westmere-EX, Sandybridge, Ivybridge and Haswell boxes that ACPI C2 does let one drop down into a deeper CPU sleep state (C6 on each of these). I think is still a good default for both servers and desktops. If no-one has a problem with this then I'll do it after the weekend. Thanks! -adrian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmonG%2By5gzoYmer70KAswUorvezcZxRSDsQWj47=jsAZ71w>