[PATCH v6 0/2] ARM64 support for doorbell and intercept SINTs

Anirudh Rayabharam posted 2 patches 1 month ago
drivers/hv/mshv_root.h      |   5 +-
drivers/hv/mshv_root_main.c |  64 ++----------
drivers/hv/mshv_synic.c     | 188 +++++++++++++++++++++++++++++++++---
include/hyperv/hvgdk_mini.h |   2 +
4 files changed, 185 insertions(+), 74 deletions(-)
[PATCH v6 0/2] ARM64 support for doorbell and intercept SINTs
Posted by Anirudh Rayabharam 1 month ago
From: "Anirudh Rayabharam (Microsoft)" <anirudh@anirudhrb.com>

On x86, the HYPERVISOR_CALLBACK_VECTOR is used to receive synthetic
interrupts (SINTs) from the hypervisor for doorbells and intercepts.
There is no such vector reserved for arm64.

On arm64, the hypervisor exposes a synthetic register that can be read
to find the INTID that should be used for SINTs. This INTID is in the
PPI range.

Changes in v6:
  - Rebase on latest hyperv-next.
  - Consistent init/exit & setup/cleanup function naming.
  - Pick up Reviewed-by tags.

v5: https://lore.kernel.org/linux-hyperv/20260223140159.1627229-1-anirudh@anirudhrb.com/
Changes in v5:
  - Better align with coding-style.rst guidelines.

v4: https://lore.kernel.org/linux-hyperv/?t=20260211170747
Changes in v4:
  - Hypervisor now exposes a synthetic register to read the SINT vector
    instead of using an ACPI platform device. So make changes to accomodate that.

Changes in v3:
  - Moved the hv_root_partition() check into the reboot notifier
    to avoid doing it multiple times.

v2: https://lore.kernel.org/linux-hyperv/20260202182706.648192-1-anirudh@anirudhrb.com/
Changes in v2:
Addressed review comments:
  - Moved more stuff into mshv_synic.c
  - Code simplifications
  - Removed unnecessary debug prints

v1: https://lore.kernel.org/linux-hyperv/20260128160437.3342167-1-anirudh@anirudhrb.com/

Anirudh Rayabharam (Microsoft) (2):
  mshv: refactor synic init and cleanup
  mshv: add arm64 support for doorbell & intercept SINTs

 drivers/hv/mshv_root.h      |   5 +-
 drivers/hv/mshv_root_main.c |  64 ++----------
 drivers/hv/mshv_synic.c     | 188 +++++++++++++++++++++++++++++++++---
 include/hyperv/hvgdk_mini.h |   2 +
 4 files changed, 185 insertions(+), 74 deletions(-)

-- 
2.34.1
Re: [PATCH v6 0/2] ARM64 support for doorbell and intercept SINTs
Posted by Wei Liu 1 month ago
On Wed, Feb 25, 2026 at 12:44:01PM +0000, Anirudh Rayabharam wrote:
> From: "Anirudh Rayabharam (Microsoft)" <anirudh@anirudhrb.com>
> 
> On x86, the HYPERVISOR_CALLBACK_VECTOR is used to receive synthetic
> interrupts (SINTs) from the hypervisor for doorbells and intercepts.
> There is no such vector reserved for arm64.
> 
> On arm64, the hypervisor exposes a synthetic register that can be read
> to find the INTID that should be used for SINTs. This INTID is in the
> PPI range.
> 
[...]
> Anirudh Rayabharam (Microsoft) (2):
>   mshv: refactor synic init and cleanup
>   mshv: add arm64 support for doorbell & intercept SINTs
> 
>  drivers/hv/mshv_root.h      |   5 +-
>  drivers/hv/mshv_root_main.c |  64 ++----------
>  drivers/hv/mshv_synic.c     | 188 +++++++++++++++++++++++++++++++++---
>  include/hyperv/hvgdk_mini.h |   2 +
>  4 files changed, 185 insertions(+), 74 deletions(-)

Applied to hyperv-fixes.

I debated a bit whether this is a new feature or a fix and decided it
fixes an important gap in arm64 support.

Wei

> 
> -- 
> 2.34.1
> 
>