Re: [RESEND] ACPI / processor_idle: use dead loop instead of io port access for wait

From: Yin, Fengwei
Date: Tue Oct 15 2019 - 04:03:16 EST


On 10/14/2019 5:38 PM, Rafael J. Wysocki wrote:
On Friday, October 11, 2019 3:30:41 PM CEST Yin, Fengwei wrote:

On 10/11/2019 5:05 PM, Rafael J. Wysocki wrote:
Sorry for the delay.
No problem.


On Monday, September 9, 2019 9:39:37 AM CEST Yin Fengwei wrote:
In function acpi_idle_do_entry(), we do an io port access to guarantee
hardware behavior. But it could trigger unnecessary vmexit for
virtualization environemnt.

Is this a theoretical problem, or do you actually see it?

If you see it, I'd like to have a pointer to a bug report regarding it
or similar.
We did see this issue when we run linux as guest with ACRN hypervisor
instead of kvm or xen. In our case, we export all native C states to
guest and let guest choose which C state it will enter.

And we observed many pm timer port access when guest tried to enter
deeper C state (Yes, we emulate pm timer so pm timer access will trigger
vmexit).

Can you please put this information into the changelog of your patch?
I added this information to the patch commit message and sent out v2.
Thanks a lot for reviewing and comments.

Regards
Yin, Fengwei


It works very well as a rationale for me. :-)