Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ACPI idle performance problem



On Sun, May 31, 2020 at 10:23:56PM +0000, Andrew Doran wrote:
> I spent a bit of time playing with this over the weekend, instrumented the
> code to find out what was happening and and made a commit to
> acpi_cpu_cstate.c work around the problem.  There are a couple of comments
> in there explaining what I found but basically reading the ACPI timer
> (mapped via I/O port) during idle seems stupidly costly, enough to add
> between 5-10% system time to a kernel build for me.
> 
> I guess the system builders don't pay attention to I/O port access since
> most devices are memory mapped now.

Thanks for looking into the problem! 

I think this is an implementation bug.  Would a simple fix suffice: add
acpi_md_timer_read() and map it to a better timer in acpi_machdep.c?

Another thing that I was thinking about was acpicpu_md_quirk_c1e() that
is potentially called for some AMD CPUs in the idle loop. It might be
costly, and I am not sure whether it is the right thing to do. Should read
the BKDGs again.

- Jukka


Home | Main Index | Thread Index | Old Index