lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cb75497e-6e24-3b9e-36b2-a80a6478c439@redhat.com>
Date:   Wed, 12 Jan 2022 15:24:13 +0800
From:   Gavin Shan <gshan@...hat.com>
To:     Eric Auger <eauger@...hat.com>, kvmarm@...ts.cs.columbia.edu
Cc:     maz@...nel.org, linux-kernel@...r.kernel.org,
        Jonathan.Cameron@...wei.com, pbonzini@...hat.com, will@...nel.org
Subject: Re: [PATCH v4 00/21] Support SDEI Virtualization

Hi Eric,

On 11/10/21 10:29 PM, Eric Auger wrote:
> 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
> 

Yeah, I used the following command to post the series, but I don't know
why James/Mark are missed. I'm not sure it's git-sendemail issue or not
so far. The issue appears some times on my laptop :)

# git-sendemail --to=<mail0> --cc=<mail1> --cc=<mail2> *.patch

Thanks,
Gavin

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ