lkml.org 
[lkml]   [2021]   [Nov]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v4 00/21] Support SDEI Virtualization
    From
    Date
    Hi Gavin,

    On 8/15/21 2:19 AM, Gavin Shan wrote:
    > On 8/15/21 10:13 AM, Gavin Shan wrote:
    >> This series intends to virtualize Software Delegated Exception Interface
    >> (SDEI), which is defined by DEN0054A. It allows the hypervisor to deliver
    >> NMI-alike event to guest and it's needed by asynchronous page fault to
    >> deliver page-not-present notification from hypervisor to guest. The code
    >> and the required qemu changes can be found from:
    >>
    >>     https://developer.arm.com/documentation/den0054/latest
    >>     https://github.com/gwshan/linux    ("kvm/arm64_sdei")
    >>     https://github.com/gwshan/qemu     ("kvm/arm64_sdei")
    >>
    >> The SDEI event is identified by a 32-bits number. Bits[31:24] are used
    >> to indicate the SDEI event properties while bits[23:0] are identifying
    >> the unique number. The implementation takes bits[23:22] to indicate the
    >> owner of the SDEI event. For example, those SDEI events owned by KVM
    >> should have these two bits set to 0b01. Besides, the implementation
    >> supports SDEI events owned by KVM only.
    >>
    >> The design is pretty straightforward and the implementation is just
    >> following the SDEI specification, to support the defined SMCCC intefaces,
    >> except the IRQ binding stuff. There are several data structures
    >> introduced.
    >> Some of the objects have to be migrated by VMM. So their definitions are
    >> split up for VMM to include the corresponding states for migration.
    >>
    >>     struct kvm_sdei_kvm
    >>        Associated with VM and used to track the KVM exposed SDEI events
    >>        and those registered by guest.
    >>     struct kvm_sdei_vcpu
    >>        Associated with vCPU and used to track SDEI event delivery. The
    >>        preempted context is saved prior to the delivery and restored
    >>        after that.
    >>     struct kvm_sdei_event
    >>        SDEI events exposed by KVM so that guest can register and enable.
    >>     struct kvm_sdei_kvm_event
    >>        SDEI events that have been registered by guest.
    >>     struct kvm_sdei_vcpu_event
    >>        SDEI events that have been queued to specific vCPU for delivery.
    >>
    >> The series is organized as below:
    >>
    >>     PATCH[01]    Introduces template for smccc_get_argx()
    >>     PATCH[02]    Introduces the data structures and infrastructure
    >>     PATCH[03-14] Supports various SDEI related hypercalls
    >>     PATCH[15]    Supports SDEI event notification
    >>     PATCH[16-17] Introduces ioctl command for migration
    >>     PATCH[18-19] Supports SDEI event injection and cancellation
    >>     PATCH[20]    Exports SDEI capability
    >>     PATCH[21]    Adds self-test case for SDEI virtualization
    >>
    >
    > [...]
    >
    > I explicitly copied James Morse and Mark Rutland when posting the series,
    > but something unknown went wrong. I'm including them here to avoid
    > reposting the whole series.
    I don't see James nor Mark included here either

    Eric
    >
    > Thanks,
    > Gavin
    >
    > _______________________________________________
    > kvmarm mailing list
    > kvmarm@lists.cs.columbia.edu
    > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
    >

    \
     
     \ /
      Last update: 2021-11-10 15:32    [W:5.722 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site