On Thu, Oct 24, 2024 at 05:56:09PM +0200, David Woodhouse wrote:
On 24 October 2024 17:44:49 CEST, Oliver Upton oliver.upton@linux.dev wrote:
IIUC, you're really wanting to 0x0 because there are hypervisors out there that violate the final spec and *only* accept this value.
That's perfectly fine, but it'd help avoid confusion if the supporting comment was a bit more direct:
/* * If no hibernate type is specified SYSTEM_OFF2 defaults to * selecting HIBERNATE_OFF. * * There are hypervisors in the wild that violate the spec and * reject calls that explicitly provide a hibernate type. For * compatibility with these nonstandard implementations, pass 0 * as the type. */ if (system_entering_hibernation()) invoke_psci_fn(PSCI_FN_NATIVE(1_3, SYSTEM_OFF2), 0 , 0, 0);
By the time this makes it into released versions of the guest Linux kernel, that comment won't be true any more.
Then does it even matter? What is the problem you're trying to solve with using a particular value for the hibernate type?
Either the goal of this is to make the PSCI client code compatible with your hypervisor today (and any other implementation based on 'F ALP1') or we don't care and go with whatever value we want.
Even if the comment eventually becomes stale, there is a ton of value in documenting the exact implementation decision being made.