|
|
Log in / Subscribe / Register

ARM64 support for doorbell and intercept SINTs

From:  Anirudh Rayabharam <anirudh-AT-anirudhrb.com>
To:  kys-AT-microsoft.com, haiyangz-AT-microsoft.com, wei.liu-AT-kernel.org, decui-AT-microsoft.com, longli-AT-microsoft.com, linux-hyperv-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org
Subject:  [PATCH v4 0/2] ARM64 support for doorbell and intercept SINTs
Date:  Wed, 11 Feb 2026 17:07:26 +0000
Message-ID:  <20260211170728.3056226-1-anirudh@anirudhrb.com>
Cc:  anirudh-AT-anirudhrb.com
Archive-link:  Article

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 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.64819...
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.33421...

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 |  59 ++----------
 drivers/hv/mshv_synic.c     | 181 +++++++++++++++++++++++++++++++++---
 include/hyperv/hvgdk_mini.h |   2 +
 4 files changed, 181 insertions(+), 66 deletions(-)

-- 
2.34.1




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds