Re: [PATCH v9 00/18] HSM driver for ACRN hypervisor
From: Greg Kroah-Hartman
Date: Tue Feb 09 2021 - 05:10:38 EST
On Sun, Feb 07, 2021 at 11:10:22AM +0800, shuo.a.liu@xxxxxxxxx wrote:
> From: Shuo Liu <shuo.a.liu@xxxxxxxxx>
>
> ACRN is a Type 1 reference hypervisor stack, running directly on the bare-metal
> hardware, and is suitable for a variety of IoT and embedded device solutions.
>
> ACRN implements a hybrid VMM architecture, using a privileged Service VM. The
> Service VM manages the system resources (CPU, memory, etc.) and I/O devices of
> User VMs. Multiple User VMs are supported, with each of them running Linux,
> Android OS or Windows. Both Service VM and User VMs are guest VM.
>
> Below figure shows the architecture.
>
> Service VM User VM
> +----------------------------+ | +------------------+
> | +--------------+ | | | |
> | |ACRN userspace| | | | |
> | +--------------+ | | | |
> |-----------------ioctl------| | | | ...
> |kernel space +----------+ | | | |
> | | HSM | | | | Drivers |
> | +----------+ | | | |
> +--------------------|-------+ | +------------------+
> +---------------------hypercall----------------------------------------+
> | ACRN Hypervisor |
> +----------------------------------------------------------------------+
> | Hardware |
> +----------------------------------------------------------------------+
>
> There is only one Service VM which could run Linux as OS.
>
> In a typical case, the Service VM will be auto started when ACRN Hypervisor is
> booted. Then the ACRN userspace (an application running in Service VM) could be
> used to start/stop User VMs by communicating with ACRN Hypervisor Service
> Module (HSM).
>
> ACRN Hypervisor Service Module (HSM) is a middle layer that allows the ACRN
> userspace and Service VM OS kernel to communicate with ACRN Hypervisor
> and manage different User VMs. This middle layer provides the following
> functionalities,
> - Issues hypercalls to the hypervisor to manage User VMs:
> * VM/vCPU management
> * Memory management
> * Device passthrough
> * Interrupts injection
> - I/O requests handling from User VMs.
> - Exports ioctl through HSM char device.
> - Exports function calls for other kernel modules
>
> ACRN is focused on embedded system. So it doesn't support some features.
> E.g.,
> - ACRN doesn't support VM migration.
> - ACRN doesn't support vCPU migration.
>
> This patch set adds the HSM to the Linux kernel.
> I also added a simple example to launch a small guest (with several instructions
> as payload) on ACRN with demonstration ioctl usage.
>
> The basic ARCN support was merged to upstream already.
> https://lore.kernel.org/lkml/1559108037-18813-3-git-send-email-yakui.zhao@xxxxxxxxx/
Thanks for sticking with this, now merged to my tree.
thanks,
greg k-h