Hi-- On 2/6/21 7:10 PM, shuo.a....@intel.com wrote: > From: Shuo Liu <shuo.a....@intel.com> > > Add documentation on the following aspects of ACRN: > > 1) A brief introduction on the architecture of ACRN. > 2) I/O request handling in ACRN. > 3) CPUID functions of ACRN.
> --- > diff --git a/Documentation/virt/acrn/io-request.rst > b/Documentation/virt/acrn/io-request.rst > new file mode 100644 > index 000000000000..6cc3ea0fa1f5 > --- /dev/null > +++ b/Documentation/virt/acrn/io-request.rst > @@ -0,0 +1,97 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +I/O request handling > +==================== > + ... > + > +1. I/O request > +-------------- > + > +For each User VM, there is a shared 4-KByte memory region used for I/O > requests > +communication between the hypervisor and Service VM. An I/O request is a > +256-byte structure buffer, which is 'struct acrn_io_request', that is filled > by > +an I/O handler of the hypervisor when a trapped I/O access happens in a User > +VM. ACRN userspace in the Service VM first allocates a 4-KByte page and > passes > +the GPA (Guest Physical Address) of the buffer to the hypervisor. The buffer > is > +used as an array of 16 I/O request slots with each I/O request slot being 256 > +bytes. This array is indexed by vCPU ID. Does this mean that ACRN has a limit of 16 vCPUs ? thanks. -- ~Randy