Re: ACPI idle performance problem
Andrew Doran <[email protected]> Tue, 3 Mar 2020 22:12:29 +0000
| Newsgroups | gmane.os.netbsd.ports.x86-64,gmane.os.netbsd.ports.i386 |
|---|---|
| Message-ID | <[email protected]> |
On Sat, Feb 29, 2020 at 09:32:48PM +0000, Andrew Doran wrote: > Am I missing some vital piece of information Yes, I was. I had a quick look at the code. I assumed it was doing ACPI bytecode voodoo to enter a low power state, but that's currenly disabled because more needs doing. It uses MWAIT/HLT under the covers, and the performance problem is in software. Things I would give consideration to here: - better avoidance of contention / false sharing - HyperThreading - avoidance of the timer reads (e.g. use hardclock_ticks instead) - avoidance of the cache flush (does this always happen?) - likely need something done for TLB flush IPIs (and device interrupts) - tickless operation - could probably benefit from it a lot So this is burning power/CPU rather than saving it. On the face of it I think we should put acpicpu's idle method under an option and come back to making it the default once the kinks are worked out, unless I have missed something. Cheers, Andrew