Commit Graph

143 Commits

Author SHA1 Message Date
Henry Wang
877a537bf7 docs/arm64: Document the hardware constraints
There is a corner case of using the Cloud Hypervisor on AArch64:
If the VM is started on a device where RAM is limited, and if the user
allocates nearly as much memory for the guest as is still free on the
host, we need to enable the swap memory.

This commit documented this corner case with explanation.

Also, this commit corrects the hardware requirement of the GIC interrupt
controller for running the Cloud Hypervisor on AArch64, accroding to
[1].

Fixes: https://github.com/cloud-hypervisor/cloud-hypervisor/issues/3419

Signed-off-by: Henry Wang <Henry.Wang@arm.com>

[1] https://www.kernel.org/doc/html/latest/virt/kvm/devices/arm-vgic-its.html
2021-12-28 21:00:43 +08:00
Henry Wang
bb6c93d5df docs: device_model: Document how to assign device to PCI segment
Signed-off-by: Henry Wang <Henry.Wang@arm.com>
2021-12-06 09:29:49 +00:00
Sebastien Boeuf
9b0fe505ca ci: Update the OVMF version the tests rely on
Bumping the OVMF binary version along with UEFI documentation to
reflect the latest set of patches on top of tianocore/edk2 'master'
branch, which can be found on the Cloud Hypervisor fork on 'ch' branch.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-12-04 23:04:32 +01:00
Henry Wang
8f4de45937 README: AArch64: Improve getting started section
Current `Getting Started` section only contains steps for the x86_64
platform, as we have a documentation doing the same thing for AArch64,
we can point users to the correct documentation.

Also, this commit modifies the `docs/arm64.md` to fit the documentation
style within the project.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
2021-12-02 14:24:38 +00:00
Ziye Yang
ef1ac5c670 docs/vfio-user: Add more description on NVMe Device part
Add more info on how to set up SPDK NVMe-oF tgt for vfio-user usage
in NVMe device example part.

Signed-off-by: Ziye Yang <ziye.yang@intel.com>
2021-11-22 11:34:42 -08:00
Ziye Yang
80bbc47147 docs: Fix the typo in hotplug.md
This simple patch just fixes the typo in hotplug.md

Signed-off-by: Ziye Yang <ziye.yang@intel.com>
2021-11-17 10:21:07 +00:00
Sebastien Boeuf
8c737793d6 docs: Add documentation for TDX
Creating some brief documentation for TDX, summarizing the links on
where to find more information about TDX, as well as how to run Cloud
Hypervisor on it.

Fixes #3318

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-11-16 22:42:45 +00:00
Sebastien Boeuf
533e47f26b docs: Update VFIO documentation
Fixing a few inconsistencies and extending the document to tackle
multiple devices use case, as well as having multiple devices under the
same IOMMU group.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-11-16 11:46:41 +01:00
Sebastien Boeuf
e6e58e6d66 docs: Replace Cloud-Hypervisor with Cloud Hypervisor syntax
The proper way to refer to the project is "Cloud Hypervisor" without the
hyphen in the middle. On the other hand, if one refers to the binary
name, it is "cloud-hypervisor".

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-11-15 17:27:23 +01:00
Sebastien Boeuf
7c53896f11 docs: Add documentation for CPU parameter
This new document describes the available options for the parameter
`--cpus`, how to use them and what is their usage.

Fixes #3317

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-11-15 17:27:23 +01:00
Ziye Yang
be79a80361 docs: Update vhost-user-blk-testing.md
The purpose is to add more info while running
spdk vhost tgt. For example, adding more info
(total_size, block_size) to describe the meaning
on creating malloc bdev inside spdk vhost tgt.

Signed-off-by: Ziye Yang <ziye.yang@intel.com>
2021-11-12 09:40:29 +00:00
Sebastien Boeuf
b81d758c41 option_parser: Expect commas instead of colons for lists
The elements of a list should be using commas as the correct delimiter
now that it is supported. Deprecate use of colons as delimiter.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-11-09 08:59:59 +01:00
Willen Yang
4c9a88db87 docs: update arm64.md
fix the typo in "### Booting the guest VM" section.

Signed-off-by: Willen Yang <willenyang@gmail.com>
2021-10-25 10:26:58 +08:00
Henry Wang
dd6f07da23 docs: Add notes for PCI device hotplug on AArch64
Signed-off-by: Henry Wang <Henry.Wang@arm.com>
2021-09-29 17:37:43 +01:00
Li Yu
0468598fa3 docs: update prefault in memory
Update introduction of option `prefault`.

In addition, this commit also did the following:
- Rearrange options, synchronize order with `config.rs`.
- Break long lines in `hugepages`.
- Update old example of `hugepages` in memory zone.

Signed-off-by: Li Yu <liyu.yukiteru@bytedance.com>
2021-09-29 09:01:22 -07:00
Michael Zhao
da8eecc797 docs: Describe about virtio-iommu with FDT
Added a section in "Usage" chapter of "iommu.md" to introduce the
special behavior when virtio-iommu is working with FDT on AArch64.

Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2021-09-17 12:19:46 +02:00
Henry Wang
4d52a84ef7 docs: api: Add documentation for vm.power-button
Signed-off-by: Henry Wang <Henry.Wang@arm.com>
2021-09-03 10:27:52 -07:00
Bo Chen
001ee6794c docs: Update the live-migration documentation
To enable live-migration for vhost-user devices, we now always shutdown
the source VM when the migration is completed. This patch reflects this
change in the documentation.

Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-08-26 06:01:16 -07:00
Rob Bradford
b075aada8c docs: Fix the command order in the vfio-user docs
The test image file needs to be created before creating the filesystem
on it.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-08-25 09:47:58 -07:00
Wei Liu
af3bdb452a docs: amend CSM build instructions
I found a few issues when following the instructions.

Signed-off-by: Wei Liu <liuwe@microsoft.com>
2021-08-16 11:00:36 -07:00
Rob Bradford
ea5a050341 docs: Improve vfio-user documentation
Change the block size to the standard 512 byte sector size to that
disk images can be used (since their partition tables will be specified
in terms of 512 byte sectors.)

Also remove the hugepages=on option from the command line as it is not
necessary.

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-08-12 14:14:34 +01:00
Rob Bradford
0bad764462 docs: Add vm.add-user-device to API documentation
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-08-12 13:19:04 +01:00
Rob Bradford
e7893b9a97 docs: Update vfio-user.md documentation to describe hotplug
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-08-12 13:19:04 +01:00
Henry Wang
bcae6c41e3 vmm, doc: Forbid same memory zone in multiple NUMA nodes
It is forbidden that the same memory zone belongs to more than one
NUMA node. This commit adds related validation to the `--numa`
parameter to prevent the user from specifying such configuration.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
2021-08-12 10:49:02 +02:00
Rob Bradford
d3b32b3d6d docs: Add documentation on experimental vfio-user support
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-08-10 16:01:00 +01:00
Anatol Belski
b02df13af9 doc: Stop advertizing QCOW usage at some places in doc
Replacing QCOW mentions with other viable options. There is still
docs/custom-image.md which talks about creating QCOW, however it
might be more convenient to be touched when the actual changes
are indeed there.

Related to #1985.

Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2021-08-05 09:24:45 +02:00
Yu Li
9106afae38 docs: Add more information of hugepages.
Add missing option of hugepage_size in argument of memory,
and add some details about lacking huge pages.

Signed-off-by: Yu Li <liyu.yukiteru@bytedance.com>
2021-07-26 11:01:15 -07:00
Henry Wang
ea0918e5e8 docs, scripts: Use upstream edk2 for AArch64
The edk2 upstream has already suppoorted AArch64 Cloud Hypervisor,
and hence we can use upstream edk2 in CI and doc.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
2021-07-09 15:36:37 +02:00
Sebastien Boeuf
6b710209b1 numa: Add optional sgx_epc_sections field to NumaConfig
This new option allows the user to define a list of SGX EPC sections
attached to a specific NUMA node.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-07-09 14:45:30 +02:00
Sebastien Boeuf
3987026997 docs: Fix errors regarding NUMA documentation
A few fixes to the NUMA documentation as there were some mistakes in
there.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-07-09 14:45:30 +02:00
Sebastien Boeuf
9aedabe11e sgx: Add mandatory id field to SgxEpcConfig
In order to uniquely identify each SGX EPC section, we introduce a
mandatory option `id` to the `--sgx-epc` parameter.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-07-09 14:45:30 +02:00
Michael Zhao
54c552f90d docs: Update arm64 doc
Simplified the build instruction on arm64.
And the binary built with default option can be used for both UEFI and
direct-kernel test.

Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2021-06-24 13:13:27 +01:00
Michael Zhao
b546afd196 docs: Update arm64 document
Adjusted the document structure and added ACPI related content.

Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2021-06-22 09:36:27 -07:00
Sebastien Boeuf
07f3075773 vmm: device_manager: Tie PCI bus to NUMA node 0
Make sure the unique PCI bus is tied to the default NUMA node 0, and
update the documentation to let the users know about this special case.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-06-17 16:08:46 +02:00
Bo Chen
8a22b2987f docs: Add documentation for live migration
Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-06-10 12:07:14 +02:00
Sebastien Boeuf
9dba097224 ci: Update guest cloud image by installing "stress" utility
Some new integration tests will require the "stress" binary to be
present in the guest in order to run correctly.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-06-09 14:34:55 +01:00
Anatol Belski
01e2826f26 tests: Implement disk hotplug test
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2021-05-19 10:39:46 +02:00
Dayu Liu
8160c2884b docs: Fix some typos in docs and comments
Fix some typos or misspellings without functional change.

Signed-off-by: Dayu Liu <liu.dayu@zte.com.cn>
2021-05-18 17:19:12 +01:00
Bo Chen
ac2469077f docs: Update documentation vhost-user-net-testing.md
Updated the obsoleted instructions and scripts, based on Open vSwitch
v2.13.1, DPDK stable v19.11.3, and Cloud Hypervisor v15.0 (on Ubuntu
20.04.1).

Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-05-06 09:22:28 +02:00
Bo Chen
db66cb6e9b docs: Update documentation vhost-user-blk-testing.md
Updated the obsoleted path of `vhost` the in spdk folder and fixed some
formatting issues.

Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-05-04 22:18:35 +02:00
Mikko Ylinen
3b18caf229 sgx: update virt EPC device path and docs
The latest kvm-sgx code has renamed sgx_virt_epc device node
to sgx_vepc. Update cloud-hypervisor code and documentation to
follow this.

Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
2021-04-30 16:16:01 +02:00
Sebastien Boeuf
235eb5225a docs: Cleanup virtio-fs documentation
Update obsolete information from the virtio-fs documentation.

Fixes #2538

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-04-28 11:42:41 +02:00
Sebastien Boeuf
3ffc655a38 docs: Update VFIO binding instructions
With recent kernels, it is now expected to use "bind" control from the
sysfs in order to bind a specific device to the vfio-pci driver.

The use of "new_id" is still required but it is only needed once per
device type. Let's say you want to bind two virtio-net devices, you will
need to add the device_id:vendor_id pair through "new_id", while you
will be required to use "bind" for each device.

Fixes #2545

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-04-28 11:42:33 +02:00
Rob Bradford
71d68e4f90 docs: Update virtio-fs documentation regarding kernel support
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-04-28 09:02:01 +02:00
Muminul Islam
dbd8629fad docs: Fix cpu parameter in networking doc
Signed-off-by: Muminul Islam <muislam@microsoft.com>
2021-04-27 08:47:45 +02:00
Muminul Islam
884d528b31 docs: Auto format networking doc
Signed-off-by: Muminul Islam <muislam@microsoft.com>
2021-04-27 08:47:45 +02:00
Anatol Belski
8614a0ab2f doc: Add note on net dev hotplug to windows.md
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2021-04-23 14:24:04 +01:00
Alyssa Ross
37a2c13a90 docs: use relative links between cloud-hypervisor docs
This way, the links can be navigated locally, not just on GitHub.

Signed-off-by: Alyssa Ross <hi@alyssa.is>
2021-04-13 10:57:44 +01:00
Anatol Belski
e1cc702327 memory_manager: Fix address range calculation in MemorySlot
The MCRS method returns a 64-bit memory range descriptor. The
calculation is supposed to be done as follows:

max = min + len - 1

However, every operand is represented not as a QWORD but as combination
of two DWORDs for high and low part. Till now, the calculation was done
this way, please see also inline comments:

max.lo = min.lo + len.lo //this may overflow, need to carry over to high
max.hi = min.hi + len.hi
max.hi = max.hi - 1 // subtraction needs to happen on the low part

This calculation has been corrected the following way:

max.lo = min.lo + len.lo
max.hi = min.hi + len.hi + (max.lo < min.lo) // check for overflow
max.lo = max.lo - 1 // subtract from low part

The relevant part from the generated ASL for the MCRS method:
```
Method (MCRS, 1, Serialized)
{
    Acquire (MLCK, 0xFFFF)
    \_SB.MHPC.MSEL = Arg0
    Name (MR64, ResourceTemplate ()
    {
	QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
	    0x0000000000000000, // Granularity
	    0x0000000000000000, // Range Minimum
	    0xFFFFFFFFFFFFFFFE, // Range Maximum
	    0x0000000000000000, // Translation Offset
	    0xFFFFFFFFFFFFFFFF, // Length
	    ,, _Y00, AddressRangeMemory, TypeStatic)
    })
    CreateQWordField (MR64, \_SB.MHPC.MCRS._Y00._MIN, MINL)  // _MIN: Minimum Base Address
    CreateDWordField (MR64, 0x12, MINH)
    CreateQWordField (MR64, \_SB.MHPC.MCRS._Y00._MAX, MAXL)  // _MAX: Maximum Base Address
    CreateDWordField (MR64, 0x1A, MAXH)
    CreateQWordField (MR64, \_SB.MHPC.MCRS._Y00._LEN, LENL)  // _LEN: Length
    CreateDWordField (MR64, 0x2A, LENH)
    MINL = \_SB.MHPC.MHBL
    MINH = \_SB.MHPC.MHBH
    LENL = \_SB.MHPC.MHLL
    LENH = \_SB.MHPC.MHLH
    MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */
    MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */
    If ((MAXL < MINL))
    {
	MAXH += One /* \_SB_.MHPC.MCRS.MAXH */
    }

    MAXL -= One
    Release (MLCK)
    Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */
}
```

Fixes #1800.

Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2021-04-12 16:20:19 +02:00
Anatol Belski
3f5ecbd326 tests: Extend Windows guest CPU hotplug test and update doc
Both changes aim to document the absence of the CPU hot-remove
functionality on Windows.

Closes #2457.

Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2021-04-07 14:44:29 +01:00