Commit Graph

4610 Commits

Author SHA1 Message Date
Deb Taylor
62c2778a5b Doc: Fixed spelling error in the acrn_config_tool file.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-10 09:23:01 +08:00
Deb Taylor
c54ffa800f Doc: Style and grammar edits to GSG for ACRN Industry Scenario.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-10 09:22:48 +08:00
Deb Taylor
63ea135bad Doc: Grammar updates to ACRN Config Tool doc.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-10 09:22:34 +08:00
Victor Sun
123aadea7c doc: update some xml elements description
Signed-off-by: Victor Sun <victor.sun@intel.com>
2020-01-10 09:22:20 +08:00
Shuang Zheng
db43a7b870 doc: update getting start guide about clear linux version and ootb commands
Signed-off-by: Shuang Zheng <shuang.zheng@intel.com>
2020-01-10 09:22:01 +08:00
fangfang.shen
9e3b713b3f doc: change version info
Signed-off-by: fangfang.shen <fangfang.shen@intel.com>
2020-01-10 09:21:46 +08:00
fuzhongl
f9721e297d Doc: releasenotes_1.5 update
adding this information to releasenotes:
Update to use ACRNGT GOP to install Windows

Signed-off-by: fuzhongl <fuzhong.liu@intel.com>
2020-01-10 09:21:32 +08:00
Deb Taylor
777ca4304b Doc: Grammar update to arcn_ootd.rst.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-10 09:21:18 +08:00
fuzhongl
2c2bd9cd3b Doc: document update base on release_v1.5
Signed-off-by: fuzhongl <fuzhong.liu@intel.com>
2020-01-10 09:21:03 +08:00
Deb Taylor
6ec5db627d Doc: Grammatical edits to RN 1.5.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-10 09:20:44 +08:00
fuzhongl
5e3e33486e Doc: releasenotes_1.5
Signed-off-by: fuzhongl <fuzhong.liu@intel.com>
2020-01-10 09:20:30 +08:00
Geoffroy Van Cutsem
e149f6dc0c doc: fix wrong Docker container image in tutorial
Fix the name of the Docker Container image that is used to build the kernel
for an RTVM (Preempt-RT kernel) when that image was built by the user
him/herself.

Tracked-On: #4322
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-01-10 09:20:12 +08:00
Deb Taylor
2f3546b6fa Doc: Added missing period in run_kata_containers file.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:26:05 +08:00
lirui34
70a2847e70 doc: Update some of the wrong path in acrn configuration tool doc.
Signed-off-by: lirui34 <ruix.li@intel.com>
2020-01-03 13:25:52 +08:00
Geoffroy Van Cutsem
be3c7f99d2 doc: add more details to the Kata Containers with ACRN tutorial
* Add more details about Kata Containers and ACRN in the introduction
* Adjust and correct some of the instructions

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-01-03 13:25:39 +08:00
Deb Taylor
2d53d029ba Doc: Added Whiskey Lake specs to hardware ref page
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:25:26 +08:00
wenlingz
a5dbf41641 remove no support OS parts and add whl build
Signed-off-by: wenlingz <wenling.zhang@intel.com>
2020-01-03 13:25:13 +08:00
Conghui Chen
3660ff44d9 DOC: Content edits to CPU Sharing doc
Signed-off-by: Conghui Chen <conghui.chen@intel.com>
2020-01-03 13:25:01 +08:00
Deb Taylor
4ad3c814f4 Doc: Content edits to Running Kata containers on a Service VM doc
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:24:49 +08:00
Deb Taylor
799b1bae9d Doc: More edits to CPU Sharing doc.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:24:36 +08:00
Deb Taylor
55975688ad Doc: Add v1.5 release menu choice.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:24:22 +08:00
Deb Taylor
6fc8aa2151 Doc: Content edit to cpu-sharing page
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:24:09 +08:00
Deb Taylor
6d6eab40e2 Doc: Content edit to rt_industry document.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:23:56 +08:00
lirui34
a0c8f5845c doc: Add tutorial about how to launch kata vm.
Signed-off-by: lirui34 <ruix.li@intel.com>
2020-01-03 13:23:44 +08:00
fenglin.hu
10e0e33d8f doc: modify Configuration Tools
Signed-off-by: fenglin.hu <fenglin.hu@intel.com>
2020-01-03 13:23:32 +08:00
Conghui Chen
bb91377b7f doc: add document for cpu sharing
Add document and usage for cpu sharing.

Signed-off-by: Conghui Chen <conghui.chen@intel.com>
2020-01-03 13:23:18 +08:00
Deb Taylor
da1267b2d5 Doc: Content edits to Using WaaG VM on ACRN
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:23:06 +08:00
Deb Taylor
11cdaad03a Doc: Content edits to the introduction/index file.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:22:52 +08:00
Deb Taylor
5fe2573218 Doc: Content edits to the acrntrace README file.
Signed-off-by: Deb Taylor <deb.taylor@intel.com>
2020-01-03 13:22:22 +08:00
Yuan Liu
c4e6924d66 doc: add windows 10 activation
Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
2020-01-03 13:22:09 +08:00
Jian Jun Chen
0d78ca597a doc: Update WaaG GSG to use ACRNGT GOP to install Windows
Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
2020-01-03 13:21:57 +08:00
Geoffroy Van Cutsem
a368512afe doc: add a little info on how to configure the boot options
Add a little information (at least pointers) as to how one can change the VM
(Pre-launched, Service or User) boot options.

Tracked-On: #3758
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-01-03 13:21:45 +08:00
Yonghua Huang
eed89a051f doc:debug feature is disabled by default
Update guidance to build ACRN from source,
as debug feature is disabled by default in Makefile.

 'RELEASE' shall be 0 if debug feature is required.

Tracked-On: #4222
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
2020-01-03 13:21:33 +08:00
Geoffroy Van Cutsem
8956f6d8f7 doc: add new dependency to Clear Linux ACRN builder container
Since commit 9e9e1f61, a new build dependency on the NUMA library has been
introduced. We therefore need to add the `devpkg-numactl` bundle to our
Dockerfile used to build the Clear Linux "ACRN builder" container image.

Tracked-On: #4175
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2020-01-03 11:48:54 +08:00
Jian Jun Chen
5bf1f04ad7 hv: instr_emul: add emulation for 0xf6 test instruction
It is found that 0xf6 test instruction is used to access MMIO in
Windows. This patch added emulation for 0xf6 test instruction.

Tracked-On: #4310
Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
2019-12-30 09:26:05 +08:00
Victor Sun
ee74737fd2 HV: search rsdp from e820 acpi reclaim region
Per ACPI 6.2 spec, chapter 5.2.5.2 "Finding the RSDP on UEFI Enabled Systems":

In Unified Extensible Firmware Interface (UEFI) enabled systems, a pointer to
the RSDP structure exists within the EFI System Table. The OS loader is provided
a pointer to the EFI System Table at invocation. The OS loader must retrieve the
pointer to the RSDP structure from the EFI System Table and convey the pointer
to OSPM, using an OS dependent data structure, as part of the hand off of
control from the OS loader to the OS.

So when ACRN boot from direct mode on a UEFI enabled system, hypervisor might
be failed to get rsdp by seaching rsdp in legacy EBDA or 0xe0000~0xfffff region,
but it still have chance to get rsdp by seaching it in e820 ACPI reclaimable
region with some edk2 based BIOS.

The patch will search rsdp from e820 ACPI reclaim region When failed to get
rsdp from legacy region.

Tracked-On: #4301

Signed-off-by: Victor Sun <victor.sun@intel.com>
Reviewed-by: Fei Li <fei1.li@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-12-25 15:06:20 +08:00
Wei Liu
578a7ab4e0 acrn-config: remove pcpu3 from vm1 in SDC scenario
Currently kata vm is supported in SDC scenario by default, both vm1
and kata vm would share pcpu id 3 for vcpu affinity even when cpu
sharing is not enabled.
Remove pcpu id 3 from vm1 in SDC scenario config xmls.

Tracked-On: #4286
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-12-23 10:25:00 +08:00
Li Fei1
7d27c4bcb7 hv: vpci: restore PCI BARs when doing AF FLR
ACRN hypervisor should trap guest doing PCI AF FLR. Besides, it should save some states
before doing the FLR and restore them later, only BARs values for now.
This patch will trap guest Conventional PCI Advanced Features Control Register write
operation if the device supports Conventional PCI Advanced Features Capability and
check whether it wants to do device AF FLR. If it does, call pdev_do_flr to do the job.

Tracked-On: #3465
Signed-off-by: Li Fei1 <fei1.li@intel.com>
2019-12-20 13:09:42 +08:00
Li Fei1
bb06f6f9bb hv: vpci: restore PCI BARs when doing PCIe FLR
ACRN hypervisor should trap guest doing PCIe FLR. Besides, it should save some states
before doing the FLR and restore them later, only BARs values for now.
This patch will trap guest Device Capabilities Register write operation if the device
supports PCI Express Capability and check whether it wants to do device FLR. If it does,
call pdev_do_flr to do the job.

Tracked-On: #3465
Signed-off-by: Li Fei1 <fei1.li@intel.com>
2019-12-20 13:09:42 +08:00
Conghui Chen
92ed860187 hv: hotfix for xsave
In current code, XCR0 and XSS are not in default value during vcpu
launch, it will result in a warning in Linux:

     WARNING: CPU: 0 PID: 0 at arch/x86/kernel/fpu/xstate.c:614
     fpu__init_system_xstate+0x43a/0x878

 For security reason, we set XCR0 and XSS with feature bitmap get from
 CPUID, and run XRSTORS in context switch in. This make sure the XSAVE
 area to be fully in initiate state.
 But, before enter guest for the first time, XCR0 and XSS should be set to
 default value, as the guest kernel assume it.

Tracked-On: #4278
Signed-off-by: Conghui Chen <conghui.chen@intel.com>
2019-12-19 15:25:12 +08:00
Peter Fang
067d8536b2 OVMF release v1.5
- Upgrade OpenSSL to 1.1.1d - cherry-picked the following commits from master:
  - 4d613feee5 - CryptoPkg/OpensslLib.inf: list OpenSSL local header
    "ms/uplink.h" (2019-12-02) <Laszlo Ersek>
  - b49a6c8f80 - CryptoPkg/OpensslLib: improve INF file consistency
    (2019-12-02) <Laszlo Ersek>
  - 1bcc65b9a1 - CryptoPkg: Upgrade OpenSSL to 1.1.1d (2019-11-05) <Shenglei
    Zhang>
  - 9f4fbd56d4 - CryptoPkg/OpensslLib: Update process_files.pl to generate .h
    files (2019-10-30) <Shenglei Zhang>
  - 8906f076de - CryptoPkg/OpensslLib: Add missing header files in INF file
    (2019-08-16) <Shenglei Zhang>
  - 51f7a3e6c5 - CryptoPkg/OpensslLib: Exclude err_all.c in process_files.pl
    (2019-06-25) <Xiaoyu Lu>
  - b86fbe1f98 - CryptoPkg/OpensslLib: disable autoload-config for OpenSSL
    (2019-06-21) <Xiaoyu Lu>
  - 20d2e5a125 - CryptoPkg/OpensslLib: fix build break caused by missing
    library (2019-06-06) <Wang, Jian J>
  - 0a1b13fd4d - CryptoPkg/OpensslLib: fix VS2017 build failure (2019-06-05)
    <Wang, Jian J>
  - 456dd8b99f - CryptoPkg: Upgrade OpenSSL to 1.1.1b (2019-06-03) <XiaoyuX
    Lu>
  - b739678918 - CryptoPkg/OpensslLib: Add functions for upgrading
    OpenSSL1_1_1b (2019-06-03) <XiaoyuX Lu>
  - 5db2fbff23 - CryptoPkg/OpensslLib: Prepare for upgrading OpenSSL
    (2019-06-03) <XiaoyuX Lu>
  - 7eee048894 - CryptoPkg/OpensslLib: Exclude unnecessary files in
    process_files.pl (2019-06-03) <Xiaoyu Lu>
  - 6fcc3d68eb - CryptoPkg/OpensslLib: Modify process_files.pl for upgrading
    OpenSSL (2019-06-03) <Xiaoyu Lu>
  - a18f784cfd - Upgrade OpenSSL to 1.1.0j (2018-12-21) <Jian J Wang>
- Security hardening for OVMF build

Tracked-On: #4273
Signed-off-by: Peter Fang <peter.fang@intel.com>
2019-12-19 09:32:32 +08:00
Wei Liu
9b71c5cdb3 acrn-config: add 'logger_setting' into launch script
Add missed definition of 'logger_setting' into launch script.

Tracked-On: #3854
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-12-19 09:28:42 +08:00
Wei Liu
be6c685176 acrn-config: refine mount device for virtio-blk
Previous launch config tool doesn't handle the situation that
'virtio-blk' is set with rootfs partition with rootfs image,
in such scenario, VM would be failed to start when launching
This patch refine the mount device while use rootfs partiton and image
from vritio block device.

Tracked-On: #4248
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-12-19 09:28:42 +08:00
Kaige Fu
686d776313 HV: Remove INIT signal notification related code
We don't use INIT signal notification method now. This patch
removes them.

Tracked-On: #3886
Acked-by: Eddie Dong <eddie.dong@intel.com>
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
2019-12-16 16:54:30 +08:00
Kaige Fu
d7eb14c511 HV: Use NMI to replace INIT signal for lapic-pt VMs S5
We have implemented a new notification method using NMI.
So replace the INIT notification method with the NMI one.
Then we can remove INIT notification related code later.

Tracked-On: #3886
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
2019-12-16 16:54:30 +08:00
Kaige Fu
29b7aff59f HV: Use NMI-window exiting to address req missing issue
There is a window where we may miss the current request in the
notification period when the work flow is as the following:

      CPUx +                   + CPUr
           |                   |
           |                   +--+
           |                   |  | Handle pending req
           |                   <--+
           +--+                |
           |  | Set req flag   |
           <--+                |
           +------------------>---+
           |     Send NMI      |  | Handle NMI
           |                   <--+
           |                   |
           |                   |
           |                   +--> vCPU enter
           |                   |
           +                   +

So, this patch enables the NMI-window exiting to trigger the next vmexit
once there is no "virtual-NMI blocking" after vCPU enter into VMX non-root
mode. Then we can process the pending request on time.

Tracked-On: #3886
Acked-by: Eddie Dong <eddie.dong@intel.com>
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
2019-12-16 16:54:30 +08:00
Kaige Fu
d26d8bec01 HV: Don't make NMI injection req when notifying vCPU
The NMI for notification should not be inject to guest. So,
this patch drops NMI injection request when we use NMI
to notify vCPUs. Meanwhile, ACRN doesn't support vNMI well
and there is no well-designed way to check if the NMI is
for notification or for guest now. So, we take all the NMIs as
notificaton NMI for hard rtvm temporarily. It means that the
hard rtvm will never receive NMI with this patch applied.

TODO: vNMI support is not ready yet. we will add it later.

Tracked-On: #3886
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
2019-12-16 16:54:30 +08:00
Kaige Fu
24c2c0ecc0 HV: Use NMI to kick lapic-pt vCPU's thread
ACRN hypervisor needs to kick vCPU off VMX non-root mode to do some
operations in hypervisor, such as interrupt/exception injection, EPT
flush etc. For non lapic-pt vCPUs, we can use IPI to do so. But, it
doesn't work for lapic-pt vCPUs as the IPI will be injected to VMs
directly without vmexit.

Without the way to kick the vCPU off VMX non-root mode to handle pending
request on time, there may be fatal errors triggered.
1). Certain operation may not be carried out on time which may further
    lead to fatal errors. Taking the EPT flush request as an example, once we
    don't flush the EPT on time and the guest access the out-of-date EPT,
    fatal error happens.
2). ACRN now will send an IPI with vector 0xF0 to target vCPU to kick the vCPU
    off VMX non-root mode if it wants to do some operations on target vCPU.
    However, this way doesn't work for lapic-pt vCPUs. The IPI will be delivered
    to the guest directly without vmexit and the guest will receive a unexpected
    interrupt. Consequently, if the guest can't handle this interrupt properly,
    fatal error may happen.

The NMI can be used as the notification signal to kick the vCPU off VMX
non-root mode for lapic-pt vCPUs. So, this patch uses NMI as notification signal
to address the above issues for lapic-pt vCPUs.

Tracked-On: #3886
Acked-by: Eddie Dong <eddie.dong@intel.com>
Signed-off-by: Kaige Fu <kaige.fu@intel.com>
2019-12-16 16:54:30 +08:00
Wei Liu
2342271348 acrn-config: add 'tap_' perfix for virtio-net
UOS would be failed to get ip address, add 'tap_' perfix for virtio-net
name setting.

Tracked-On: #4255
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-12-16 16:54:09 +08:00
Wei Liu
6383394b89 acrn-config: enable log_setting in all vm
enable log_setting for all vm.

Tracked-On: #3854
Signed-off-by: Wei Liu <weix.w.liu@intel.com>
Acked-by: Victor Sun <victor.sun@intel.com>
2019-12-16 16:54:09 +08:00