[RFCv2 0/1] x86: allow to notify host about guest entering s2idle

Grzegorz Jaszczyk posted 1 patch 2 years, 7 months ago
There is a newer version of this series
drivers/platform/x86/Kconfig    |  7 ++++
drivers/platform/x86/Makefile   |  3 ++
drivers/platform/x86/virt_pmc.c | 73 +++++++++++++++++++++++++++++++++
3 files changed, 83 insertions(+)
create mode 100644 drivers/platform/x86/virt_pmc.c
[RFCv2 0/1] x86: allow to notify host about guest entering s2idle
Posted by Grzegorz Jaszczyk 2 years, 7 months ago
According to the mailing list discussion [1] about the preferred approach
for notifying hypervisor/VMM about guest entering s2idle state this RFC was
implemented.

Instead of original hypercall based approach, which involves KVM change [2]
and makes it hypervisor specific, implement different mechanism, which
takes advantage of MMIO/PIO trapping and makes it hypervisor independent.

For the RFCv1 [3]:
  Patch #1 extends S2Idle ops by new notify handler which will be invoked as a
  very last command before system actually enters S2Idle states. It also allows
  to register and use driver specific notification hook which is used in
  patch #2.

  Patch #2 introduces new driver for virtual PMC, which registers
  acpi_s2idle_dev_ops's notify handler. Its implementation is based on an
  ACPI _DSM evaluation, which in turn can perform MMIO access and allow to
  trap and therefore notify the VMM about guest entering S2Idle state.

For the RFCv2: the patch #1 was dropped as in the meantime Mario Limonciello
introduced a very similar patch [4] which uses s/notify/check and invokes the
callback a bit earlier just before s2idle_entry. Mentioned patch has already
been merged.

This patchset is marked as RFC since patch #2 implements driver for non
existing device "HYPE0001", which ACPI ID was not registered yet.
Furthermore the required registration process [5] will not be started
before getting positive feedback about this patchset.

[1] https://patchwork.kernel.org/project/linux-pm/patch/20220609110337.1238762-2-jaz@semihalf.com/
[2] https://patchwork.kernel.org/project/linux-pm/patch/20220609110337.1238762-3-jaz@semihalf.com/
[3] https://patchwork.kernel.org/project/linux-pm/cover/20220707125329.378277-1-jaz@semihalf.com/
[4] https://patchwork.kernel.org/project/linux-pm/patch/20220829162953.5947-2-mario.limonciello@amd.com
[5] https://uefi.org/PNP_ACPI_Registry

Grzegorz Jaszczyk (1):
  platform/x86: Add virtual PMC driver used for S2Idle

 drivers/platform/x86/Kconfig    |  7 ++++
 drivers/platform/x86/Makefile   |  3 ++
 drivers/platform/x86/virt_pmc.c | 73 +++++++++++++++++++++++++++++++++
 3 files changed, 83 insertions(+)
 create mode 100644 drivers/platform/x86/virt_pmc.c

-- 
2.39.1.519.gcb327c4b5f-goog
Re: [RFCv2 0/1] x86: allow to notify host about guest entering s2idle
Posted by Hans de Goede 2 years, 7 months ago
Hi Grzegorz,

Can you please resend this with the linux-pm@vger.kernel.org,
x86@kernel.org and platform-driver-x86@vger.kernel.org email-lists
in the Cc to make sure this gets seen by some more people ?

(not everyone reads linux-kernel) 

And since you mention Mario Limonciello, maybe also add him the the Cc?

Regards,

Hans




On 2/9/23 14:56, Grzegorz Jaszczyk wrote:
> According to the mailing list discussion [1] about the preferred approach
> for notifying hypervisor/VMM about guest entering s2idle state this RFC was
> implemented.
> 
> Instead of original hypercall based approach, which involves KVM change [2]
> and makes it hypervisor specific, implement different mechanism, which
> takes advantage of MMIO/PIO trapping and makes it hypervisor independent.
> 
> For the RFCv1 [3]:
>   Patch #1 extends S2Idle ops by new notify handler which will be invoked as a
>   very last command before system actually enters S2Idle states. It also allows
>   to register and use driver specific notification hook which is used in
>   patch #2.
> 
>   Patch #2 introduces new driver for virtual PMC, which registers
>   acpi_s2idle_dev_ops's notify handler. Its implementation is based on an
>   ACPI _DSM evaluation, which in turn can perform MMIO access and allow to
>   trap and therefore notify the VMM about guest entering S2Idle state.
> 
> For the RFCv2: the patch #1 was dropped as in the meantime Mario Limonciello
> introduced a very similar patch [4] which uses s/notify/check and invokes the
> callback a bit earlier just before s2idle_entry. Mentioned patch has already
> been merged.
> 
> This patchset is marked as RFC since patch #2 implements driver for non
> existing device "HYPE0001", which ACPI ID was not registered yet.
> Furthermore the required registration process [5] will not be started
> before getting positive feedback about this patchset.
> 
> [1] https://patchwork.kernel.org/project/linux-pm/patch/20220609110337.1238762-2-jaz@semihalf.com/
> [2] https://patchwork.kernel.org/project/linux-pm/patch/20220609110337.1238762-3-jaz@semihalf.com/
> [3] https://patchwork.kernel.org/project/linux-pm/cover/20220707125329.378277-1-jaz@semihalf.com/
> [4] https://patchwork.kernel.org/project/linux-pm/patch/20220829162953.5947-2-mario.limonciello@amd.com
> [5] https://uefi.org/PNP_ACPI_Registry
> 
> Grzegorz Jaszczyk (1):
>   platform/x86: Add virtual PMC driver used for S2Idle
> 
>  drivers/platform/x86/Kconfig    |  7 ++++
>  drivers/platform/x86/Makefile   |  3 ++
>  drivers/platform/x86/virt_pmc.c | 73 +++++++++++++++++++++++++++++++++
>  3 files changed, 83 insertions(+)
>  create mode 100644 drivers/platform/x86/virt_pmc.c
>