Commit Graph

7685 Commits

Author SHA1 Message Date
Yifan Liu
05460f151a hv: Serialize WBINVD using wbinvd_lock
As mentioned in previous patch, wbinvd utilizes the vcpu_make_request
and signal_event call pair to stall other vcpus. Due to the fact that
these two calls are not thread-safe, we need to avoid concurrent call to
this API pair.

This patch adds wbinvd lock to serialize wbinvd emulation.

Tracked-On: #7887
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-07-14 09:05:37 +08:00
Yifan Liu
745e70fb06 hv: Change sched_event back to boolean-based implementation
Commit d575edf79a changes the internal
implementation of wait_event and signal_event to use a counter instead
of a boolean value.

The background was:
ACRN utilizes vcpu_make_request and signal_event pair to shoot down
other vcpus and let them wait for signals. vcpu_make_request eventually
leads to target vcpu calling wait_event.

However vcpu_make_request/signal_event pair was not thread-safe,
and concurrent calls of this pair of API could lead to problems.
One such example is the concurrent wbinvd emulation, where vcpus may
concurrently issue vcpu_make_request/signal_event to synchronize wbinvd
emulation.

d575edf commit uses a counter in internal implementation of
wait_event/signal_event to avoid data races.

However by using a counter, the wait/signal pair now carries semantics of
semaphores instead of events. Semaphores require caller to carefully
plan their calls instead of multiply signaling any number of times to the same
event, which deviates from the original "event" semantics.

This patch changes the API implementation back to boolean-based, and
re-resolve the issue of concurrent wbinvd in next patch.

This also partially reverts commit 10963b04d1,
which was introduced because of the d575edf.

Tracked-On: #7887
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2022-07-14 09:05:37 +08:00
Shiqing Gao
c2b9dbd160 doc: update the documentation according to "iasl" refinement
This patch updates the documentation according to the refinement on
the detection and the version verification of "iasl".

Tracked-On: #7880

Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
2022-07-13 14:01:01 +08:00
Shiqing Gao
3eb1237db3 config_tools: verify "iasl" version against IASL_MIN_VER
To avoid hardcoding the minimum "iasl" version in multiple places, IASL_MIN_VER
is defined in the top-level Makefile and is passed to config_tools.

This patch verifies "iasl" version against IASL_MIN_VER directly in
config_tools.

Tracked-On: #7880

Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
Reviewed-by: Wang, Yu1 <yu1.wang@intel.com>
2022-07-13 14:01:01 +08:00
Shiqing Gao
3f0fae81b2 config_tools: use ASL_COMPILER as the path to the "iasl" compiler
At build time (on the *dev* machine), config_tools depends on "iasl" to
generate the binary of ACPI tables for pre-launched VMs.

This patch does:
- pass ASL_COMPILER to config_tools
  By default, ASL_COMPILER is initialized by "which iasl" at build time.
  User could override it by specifying ASL_COMPILER as the build option,
  like below:
    make BOARD=xxxx SCENARIO=yyyy ASL_COMPILER=/usr/local/bin/iasl

- use ASL_COMPILER as the path to the "iasl" compiler in config_tools

v1 -> v2:
 - add a check to make sure ASL_COMPILER is initialized to a value

Tracked-On: #7880

Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
Reviewed-by: Wang, Yu1 <yu1.wang@intel.com>
2022-07-13 14:01:01 +08:00
Shiqing Gao
59b6d7b404 dm: verify the "iasl" version
This patch does:
- define IASL_MIN_VER in the top-level Makefile and pass it Device Model
- verify the "iasl" version at run time
  if "iasl" version is older than IASL_MIN_VER, refuse to launch the
  post-launched VM and exit directly.

Tracked-On: #7880

Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2022-07-13 14:01:01 +08:00
Shiqing Gao
cc309bd973 dm: refine the detection of "iasl" utility
At run time (on the *target* machine), acrn-dm depends on "iasl" to build
the ACPI tables for post-launched VMs.

This patch does:
- remove the dependency on ASL_COMPILER, which would only be used at build time
- add a new acrn-dm parameter "--iasl <iasl_compiler_path>"
  If "--iasl <iasl_compiler_path>" is specified as the acrn-dm parameter,
  acrn-dm uses <iasl_compiler_path> as the path to the "iasl" compiler;
  otherwise, "which iasl" is used to detect the "iasl" compiler.

  If "iasl" is not found at run time, refuse to launch the post-launched VM
  and exit directly.

v2 -> v3:
 - use "strlen" rather than "strncmp" to check whether asl_compiler
   has been set or not

v1 -> v2:
 - remove "iasl_param" and "with_iasl_param" to simplify the logic

Tracked-On: #7880

Signed-off-by: Victor Sun <victor.sun@intel.com>
Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2022-07-13 14:01:01 +08:00
Ziheng Li
7cffac359b config-tools: refine memory allocation for pre-launch vm
Fixed a logic error in one line of code in
misc/config_tools/static_allocators/memory_allocator.py.

Tracked-On: #7838
Signed-off-by: Ziheng Li <ziheng.li@intel.com>
2022-07-13 11:29:39 +08:00
Geoffroy Van Cutsem
84ef1ec381 doc: add README.rst to misc/hv_prebuild
Add a basic README.rst to the misc/hv_prebuild folder to give a brief
explanation as to what is in there and to help users navigating to that folder
determine if they should care or not.

Tracked-On: #5580
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2022-07-12 17:33:49 +08:00
Yuanyuan Zhao
d8761ed7f0 config_tools: hide required checkbox's & drop-down box label
Required fields with a checkbox or drop-down box will potentially
cause confusion. So hide the label when display them.

Tracked-On: #7864
Signed-off-by: Yuanyuan Zhao <yuanyuan.zhao@linux.intel.com>
2022-07-11 17:48:23 +08:00
Weiyi Feng
8adf40293c config_tools: try to fix dirty form data
try to fix dirty form data

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-07-11 14:20:19 +08:00
Weiyi Feng
47337f55f5 config_tools: fix new working folder cancel button
fix new working folder cancel button

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-07-11 14:20:19 +08:00
Chenli Wei
7be26940f7 misc: refine the assert of duplicate IO port
The current code judges an empty vm_name as a normal vm_name and assert
two endpoints with null name use the same IO port.

There was another which check wether the vm_name of endpoint is null, so
this patch break the assert if get null vm_name.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
2022-07-08 10:00:57 +08:00
David B. Kinder
4aa871effc doc: elementpath version must be 2.5.0 in the GSG
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-07-07 13:12:41 -07:00
Kunhui-Li
aeab5a29ae config_tools: update loading msr driver logic
load msr driver if not found cpu number.

Tracked-On: #6689
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2022-07-07 16:50:20 +08:00
Qiang Zhang
95c4d18423 hv: compile out unused function if CONFIG_MULTIBOOT2 is disabled
When CONFIG_MULTIBOOT2 is disabled, 'create_service_vm_efi_mmap_desc' is
unused and build fails because [-Werror=unused-function] is set.

boot/guest/bzimage_loader.c:188:17: error: 'create_service_vm_efi_mmap_desc' defined but not used [-Werror=unused-function]
  188 | static uint16_t create_service_vm_efi_mmap_desc(struct acrn_vm *vm, struct efi_memory_desc *efi_mmap_desc)
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Tracked-On: #7634
Signed-off-by: Qiang Zhang <qiang4.zhang@linux.intel.com>
2022-07-07 11:25:31 +08:00
Ziheng Li
1615c7346f doc: update upgrading_configuration.rst
Adjusted the order of <your scenario xml> and
--launch <your launch xml> when merged data from
the launch XML to the scenario XML.

Signed-off-by: Ziheng Li <ziheng.li@intel.com>
2022-07-05 10:35:54 -07:00
Geoffroy Van Cutsem
ff07ccae0f Makefile: remove old samples (Apollo Lake)
Remove sample files and launch scripts related to the Apollo Lake (APL)
platform since ACRN no longer supports it. Clean the Makefile as well to not
install these files on the target system.

Tracked-On: #6175
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2022-07-05 10:08:40 +08:00
Geoffroy Van Cutsem
873ddbb969 Remove "All Rights Reserved" string from license header
One had escaped from the global cleaning that commit 8b16be918 did.

Tracked-On: #7254
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2022-07-04 16:17:05 +08:00
David B. Kinder
21af4e459b doc: remove images no longer referenced
We deleted documents but didn't delete the images they used.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-30 22:23:41 -07:00
Conghui
18af997373 dm: virtio-console: change STDIO BE attribute
Fix the log format problem in devicemodel when using virtio-console with
'stdio' configuration.
In virtio-console, it will change the STDIO's attributes, and will case
the log message after that not align.
e.g:
	for (i=0; i<3; i++)
		printf('test\n');

	The original output would be like this:

	test
	    test
	        test

	After add 'OPOST' to oflag of STDIO, the output would be like this:

	test
	test
	test

	(OPOST - Enable implementation-defined output processing)

Tracked-On: #7860
Signed-off-by: Conghui <conghui.chen@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
2022-06-30 17:42:44 +08:00
Kunhui-Li
c7ca50131c doc: update GSG picture
update GSG picture.

Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2022-06-29 22:27:47 -07:00
David B. Kinder
a90d8e5114 doc: fix gsg instructions for building the acrn-kernel
You need to be in the acrn-kernel directory in order to ``run make
distclean``  Also, remove mention of 6 VMs ...

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 22:12:11 -07:00
szhen11
9a060ca897 version:3.1-unstable
Signed-off-by: szhen11 <shuang.zheng@intel.com>
2022-06-30 10:06:07 +08:00
David B. Kinder
deb377a586 doc: add link to configurator debian package in tag assets
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 18:07:20 -07:00
David B. Kinder
e2216bfaf2 doc: update release notes 3.0 year
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 17:40:02 -07:00
David B. Kinder
bac00cdec8 doc: add 3.0 to /latest header note
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 17:37:51 -07:00
David B. Kinder
becec0ab44 doc: add 3.0 release docs to menu choice
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 17:01:37 -07:00
David B. Kinder
5be506f5b2 doc: more edits for final 3.0 release notes
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 16:22:49 -07:00
David B. Kinder
b787f3ba7d doc: update acrn-kernel repo tag
acrn-kernel tag (for v3.0 hypervisor) should be acrn-v3.0

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 12:49:49 -07:00
David B. Kinder
beb27b3189 doc: update release notes for v3.0
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 12:28:57 -07:00
David B. Kinder
258f42440a doc: update GSG with Configurator debian download
Add instructions for downloading the configurator debian package and
installing it.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 12:28:38 -07:00
Kunhui-Li
74a67fbcd4 doc: update GSG
1. add link for ACRN configurator
2. update deb name.
3. update the patch of launch script.
4. update Python package dependencies.

Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2022-06-29 09:05:41 -07:00
jackwhich
7d7c541615 config-tools: Fix release_3.0 vecow hybrid not working properly
Fix release_3.0 tgl-vecow-spc-7100-Corei7 hybrid not working properly

Tracked-On: #7371
Signed-off-by: zhongzhenx.liu <zhongzhenx.liu@intel.com>
2022-06-29 13:53:42 +08:00
Junjie Mao
fb3e3fcd3e config_tools: mark os_config item as required in scenario XML
Following the same logic of commit 59c7077e2 ("config_tools: remove
minOccurs from items that have default values"), this patch marks the
config item os_config, which is a collection of guest OS settings, as
required since subitems of it either have default values or are optional.

Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-06-29 13:53:42 +08:00
Weiyi Feng
35b8d53af3 config_tools: fix configForm character display issue
fix configForm character display issue

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-06-29 13:53:42 +08:00
Kunhui-Li
b5b6503248 config_tools: add default value for virtio console
add default value for virtio console

Tracked-On: #6690
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2022-06-29 13:53:42 +08:00
Junjie Mao
541e9304f6 config_tools: remove minOccurs from items that have default values
With the default population stage today, the `default` and `minOccurs=0`
attributes are typically mutually exclusive:

  * A config item with a `default` attribute is guaranteed to exist after
    populating default values, making the `minOccurs` attribute meaningless.

  * A config item with a `minOccurs=0` attribute allows that item not to be
    present even after default values are populated.

This patch removes the `minOccurs=0` attributes from some config items that have
their default values recently added. This allows the default value populator to
fill in those items as expected if a user does not provide them explicitly.

Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-06-29 13:53:42 +08:00
Geoffroy Van Cutsem
c75965f1c8 acrn_config: update text when loading the Configurator
Update the text that shows up when loading the ACRN Configurator.

Tracked-On: #6690
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
Co-authored-by: David Kinder <david.b.kinder@intel.com>
2022-06-29 13:53:42 +08:00
Weiyi Feng
e3848feabf config_tools: disable cpu_affinity realtime vcpu column checkbox
disable cpu_affinity realtime vcpu column checkbox

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-06-29 13:53:42 +08:00
Weiyi Feng
92f5c67af6 config_tools: set CAT's standard vm RTCore to standard group
set CAT's standard vm RTCore to standard group

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-06-29 13:53:42 +08:00
Weiyi Feng
342e8c05f6 config_tools: refine cat widget
refine cat widget

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-06-29 13:53:42 +08:00
Kunhui-Li
9f7c4b6bab config_tools: add default value for some elements
1. add default value for some elements.
2. update shared.xml for generic_board.

Tracked-On: #6690
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2022-06-29 13:53:42 +08:00
Chenli Wei
33086d5638 misc: fix PCI vUART issue
The current code can't config PCI vUART by a unified HV Config and there
is a conflict between the HV vUART Config and PCI vUART Config.

This patch use PCI vUART Config to replace the HV vUART Config when the
vUART connection type is PCI and modify the launch scenario to make sure
the BDF is correct when user launch post launched VMs.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
2022-06-29 13:53:42 +08:00
Junjie Mao
40225337d2 config-tools: fix assertions against scenario XML
This patch fixes the following issues in the existing scenario schema
assertions:

  1. The assertion that ensures the existence of pCPU affinity in all
     pre- and post-launched VMs does not count the pCPU settings under a
     VM properly.

  2. The assertion that ensures the presence of CAT settings of a defined
     VM is no longer needed as it was originally designed to capture
     configurator issues.

Tracked-On: #6690
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-06-29 13:53:42 +08:00
Chenli Wei
d43a141f85 misc: add assert to check the missing of CLOS MASK
The current UI there is an issue which have not sync and save the VMs
to RDT element, these issue will cause the missing of num_pclosids and
the HV can't start.

This patch add assert to check the the missing of CLOS MASK.
The UI issue will be fix by another patch.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
2022-06-29 13:53:42 +08:00
Chenli Wei
2efa77c86d misc: set the communication vUART default type to PCI
The current code use the legacy as the default type of communication
vUART, these were only 4 standard vUART ports, others should config by
the /etc/serial.conf, so this patch change the default type to PCI
which could be used without config files.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@linux.intel.com>
2022-06-29 13:53:42 +08:00
David B. Kinder
dff6a31844 config: update error message when no serial console and debug build type
DX improvement to configurator UI error message

Tracked-On: #5692

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-06-29 13:53:42 +08:00
Junjie Mao
5a01fa1a7a FIXME: packaging: generate a grub entry for shared scenario by default
The debian package created by misc/packaging today is supposed to add an
entry into grub.cfg for the installed hypervisor. Unfortunately, that is
done only when the given scenario XML is named shared, partitioned, hybrid
or hybrid_rt. In the rest of the cases, no entry is added while the default
boot option is still changed to ACRN_deb_multiboot2 which does not exist.

As a short-term workaround, this patch adjusts the branching structure of
the postinst script so that a grub entry is always generated. The entry for
shared scenario is chosen as the default if the scenario XML has a name
other than partitioned, hybrid or hybrid_rt.

This is a workaround only for release 3.0. In future releases we should
migrate to the dpkg-buildpackage using the scripts under debian/.

Tracked-On: #7778
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-06-29 13:53:42 +08:00
Weiyi Feng
b816a5ca09 config_tools: open scenario document in new window
open scenario document in new window

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-06-29 13:53:42 +08:00