[RFC PATCH V6 0/4 Resend] x86/Hyper-V: Add AMD Secure AVIC for Hyper-V platform

Tianyu Lan posted 4 patches 1 month, 4 weeks ago
arch/x86/hyperv/hv_apic.c      | 9 +++++++++
arch/x86/hyperv/hv_init.c      | 7 +++++++
arch/x86/kernel/cpu/mshyperv.c | 2 ++
drivers/hv/hv.c                | 7 ++++++-
drivers/hv/hv_common.c         | 5 +++++
include/asm-generic/mshyperv.h | 1 +
6 files changed, 30 insertions(+), 1 deletion(-)
[RFC PATCH V6 0/4 Resend] x86/Hyper-V: Add AMD Secure AVIC for Hyper-V platform
Posted by Tianyu Lan 1 month, 4 weeks ago
From: Tianyu Lan <tiala@microsoft.com>

Secure AVIC is a new hardware feature in the AMD64
architecture to allow SEV-SNP guests to prevent the
hypervisor from generating unexpected interrupts to
a vCPU or otherwise violate architectural assumptions
around APIC behavior.

Each vCPU has a guest-allocated APIC backing page of
size 4K, which maintains APIC state for that vCPU.
APIC backing page's ALLOWED_IRR field indicates the
interrupt vectors which the guest allows the hypervisor
to send.

This patchset is to enable the feature for Hyper-V
platform. Patch "Drivers: hv: Allow vmbus message
synic interrupt injected from Hyper-V" is to expose
new fucntion hv_enable_coco_interrupt() and device
driver and arch code may update AVIC backing page
ALLOWED_IRR field to allow Hyper-V inject associated
vector.

This patchset is based on the AMD patchset "AMD: Add
Secure AVIC Guest Support"
https://lkml.org/lkml/2025/6/10/1579

Change since v5:
       - Rmove extra line and move hv_enable_coco_interrupt()
         just after hv_set_msr() in the hv_synic_disable_regs().
	 
Change since v4:
        - Change the order to call hv_enable_coco_interrupt()
          in the hv_synic_enable/disable_regs().
        - Update commit title "Drivers/hv:" to "Drivers: hv:"

Change since v3:
        - Disable VMBus Message interrupt via hv_enable_
          coco_interrupt() in the hv_synic_disable_regs().
        - Fix coding style issue and update change log.

Change since v2:
       - Add hv_enable_coco_interrupt() as wrapper
        of apic_update_vector()
       - Re-work change logs

Change since v1:
       - Remove the check of Secure AVIC when set APIC backing page
       - Use apic_update_vector() instead of exposing new interface
       from Secure AVIC driver to update APIC backing page and allow
       associated interrupt to be injected by hypervisor.


Tianyu Lan (4):
  x86/hyperv: Don't use hv apic driver when Secure AVIC is available
  Drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V
  x86/hyperv: Don't use auto-eoi when Secure AVIC is available
  x86/hyperv: Allow Hyper-V to inject STIMER0 interrupts

 arch/x86/hyperv/hv_apic.c      | 9 +++++++++
 arch/x86/hyperv/hv_init.c      | 7 +++++++
 arch/x86/kernel/cpu/mshyperv.c | 2 ++
 drivers/hv/hv.c                | 7 ++++++-
 drivers/hv/hv_common.c         | 5 +++++
 include/asm-generic/mshyperv.h | 1 +
 6 files changed, 30 insertions(+), 1 deletion(-)

-- 
2.25.1
Re: [RFC PATCH V6 0/4 Resend] x86/Hyper-V: Add AMD Secure AVIC for Hyper-V platform
Posted by Wei Liu 1 month, 3 weeks ago
On Wed, Aug 06, 2025 at 08:18:51PM +0800, Tianyu Lan wrote:
> From: Tianyu Lan <tiala@microsoft.com>
[...]
> Tianyu Lan (4):
>   x86/hyperv: Don't use hv apic driver when Secure AVIC is available
>   Drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V
>   x86/hyperv: Don't use auto-eoi when Secure AVIC is available
>   x86/hyperv: Allow Hyper-V to inject STIMER0 interrupts

Are they still RFC? They look like ready to be merged.

Wei
Re: [RFC PATCH V6 0/4 Resend] x86/Hyper-V: Add AMD Secure AVIC for Hyper-V platform
Posted by Tianyu Lan 1 month, 3 weeks ago
On Wed, Aug 13, 2025 at 7:47 AM Wei Liu <wei.liu@kernel.org> wrote:
>
> On Wed, Aug 06, 2025 at 08:18:51PM +0800, Tianyu Lan wrote:
> > From: Tianyu Lan <tiala@microsoft.com>
> [...]
> > Tianyu Lan (4):
> >   x86/hyperv: Don't use hv apic driver when Secure AVIC is available
> >   Drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V
> >   x86/hyperv: Don't use auto-eoi when Secure AVIC is available
> >   x86/hyperv: Allow Hyper-V to inject STIMER0 interrupts
>
> Are they still RFC? They look like ready to be merged.
>
> Wei
Hi Wei:
        Please ignore my previous email. I always ignore something.
AMD Secure AVIC patchset is still in the RFC stage. Is it possible to
accept my patchset before AMD Secure AVIC patchset to be merged?
-- 
Thanks
Tianyu Lan
Re: [RFC PATCH V6 0/4 Resend] x86/Hyper-V: Add AMD Secure AVIC for Hyper-V platform
Posted by Tianyu Lan 1 month, 3 weeks ago
On Wed, Aug 13, 2025 at 7:47 AM Wei Liu <wei.liu@kernel.org> wrote:
>
> On Wed, Aug 06, 2025 at 08:18:51PM +0800, Tianyu Lan wrote:
> > From: Tianyu Lan <tiala@microsoft.com>
> [...]
> > Tianyu Lan (4):
> >   x86/hyperv: Don't use hv apic driver when Secure AVIC is available
> >   Drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V
> >   x86/hyperv: Don't use auto-eoi when Secure AVIC is available
> >   x86/hyperv: Allow Hyper-V to inject STIMER0 interrupts
>
> Are they still RFC? They look like ready to be merged.
>
> Wei
Hi Wei:
            This patchset depends on the AMD Secure AVIC patchset. If we just
add hv_enable_coco_interrupt() as a dummy function.  If It's acceptable,
I may send out  a new version for merge.
-- 
Thanks
Tianyu Lan
Re: [RFC PATCH V6 0/4 Resend] x86/Hyper-V: Add AMD Secure AVIC for Hyper-V platform
Posted by Wei Liu 1 month, 3 weeks ago
On Wed, Aug 13, 2025 at 07:44:09PM +0800, Tianyu Lan wrote:
> On Wed, Aug 13, 2025 at 7:47 AM Wei Liu <wei.liu@kernel.org> wrote:
> >
> > On Wed, Aug 06, 2025 at 08:18:51PM +0800, Tianyu Lan wrote:
> > > From: Tianyu Lan <tiala@microsoft.com>
> > [...]
> > > Tianyu Lan (4):
> > >   x86/hyperv: Don't use hv apic driver when Secure AVIC is available
> > >   Drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V
> > >   x86/hyperv: Don't use auto-eoi when Secure AVIC is available
> > >   x86/hyperv: Allow Hyper-V to inject STIMER0 interrupts
> >
> > Are they still RFC? They look like ready to be merged.
> >
> > Wei
> Hi Wei:
>             This patchset depends on the AMD Secure AVIC patchset. If we just
> add hv_enable_coco_interrupt() as a dummy function.  If It's acceptable,
> I may send out  a new version for merge.

Let's wait for the AMD Secure AVIC patchset to be merged first. You can
then repost without the RFC tag.

Thanks,
Wei

> -- 
> Thanks
> Tianyu Lan
Re: [RFC PATCH V6 0/4 Resend] x86/Hyper-V: Add AMD Secure AVIC for Hyper-V platform
Posted by Tianyu Lan 1 month, 3 weeks ago
On Wed, Aug 13, 2025 at 10:40 PM Wei Liu <wei.liu@kernel.org> wrote:
>
> On Wed, Aug 13, 2025 at 07:44:09PM +0800, Tianyu Lan wrote:
> > On Wed, Aug 13, 2025 at 7:47 AM Wei Liu <wei.liu@kernel.org> wrote:
> > >
> > > On Wed, Aug 06, 2025 at 08:18:51PM +0800, Tianyu Lan wrote:
> > > > From: Tianyu Lan <tiala@microsoft.com>
> > > [...]
> > > > Tianyu Lan (4):
> > > >   x86/hyperv: Don't use hv apic driver when Secure AVIC is available
> > > >   Drivers: hv: Allow vmbus message synic interrupt injected from Hyper-V
> > > >   x86/hyperv: Don't use auto-eoi when Secure AVIC is available
> > > >   x86/hyperv: Allow Hyper-V to inject STIMER0 interrupts
> > >
> > > Are they still RFC? They look like ready to be merged.
> > >
> > > Wei
> > Hi Wei:
> >             This patchset depends on the AMD Secure AVIC patchset. If we just
> > add hv_enable_coco_interrupt() as a dummy function.  If It's acceptable,
> > I may send out  a new version for merge.
>
> Let's wait for the AMD Secure AVIC patchset to be merged first. You can
> then repost without the RFC tag.
>
> Thanks,
> Wei
>
> > --
> > Thanks
> > Tianyu Lan

Sure. I got it.  Thanks for your suggestion.and will update patches soon.
--
Thanks
Tianyu Lan