Commit Graph

1109 Commits

Author SHA1 Message Date
Junjie Mao ae2a78eb0e config_tools: drop version constraints on elementpath and xmlschema
After commit f8f1689a8 ("config_tools: do not apply distinct-values on a
union of node-set"), it has been confirmed that the reported build issue no
longer exists when using the latest elementpath (2.5.0) and
xmlschema (1.10.0). So this patch removes the version constraints in
requirements.txt.

Tracked-On: #7372
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-05-09 17:46:59 +08:00
Yifan Liu a12edaaab2 misc: configurator: Disable steps until prior step completed
Step 2 should be available after board is imported/created, and step
3 should follow step 2.

Tracked-On: #7435
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
2022-05-09 11:25:11 +08:00
Weiyi Feng 5172bbf760 config_tools: fix can't find deb in build stage issue
fix can't find deb in build stage issue

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-05-09 09:56:01 +08:00
Kunhui-Li 8d78136ffb config_tools: add logic for virtio_framework in launch script
If the user select "Kernel based (Virtual Host)" in virtio_framework
entry, the "vhost" string will be added to the dm parameter.
The generated launch script will look like below:
"virtio-net tap=WaaG,vhost,mac_seed=${mac:0:17}-POST_STD_VM1"

Tracked-On: #6690
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-05-09 09:26:16 +08:00
Kunhui-Li cceb169347 config_tools: update the text format of backend_device_file
Currently, the “backend_device_file” entry is a text combination of the
elements `//device-classes/inputs/input/name` and `//device-classes/inputs/input/phys`.
The format <name>:<phys> is shown in UI and the generated launch scripts.

However, we find ":" in some device physical path in adl-s-crb platform,
this will result in script can't correctly distinguish <name> and <phys> by a colon.
And we are not sure if colon will be found in the name variable in the future.

So this patch updates the text format of backend_device_file to
"Device name: xxx, Device physical path: xxx"
And the new text format will be shown in the UI and the generated launch script.

Tracked-On: #6690
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
2022-05-09 09:26:16 +08:00
Weiyi-Feng 06b942f5eb config_tools: Add vue-json-schema-form and advanced custom component for IVSHMEM field
1. add Vue devtools support
2. update project dependencies
3. refactor configurator source code tree for private library hook
4. fix build issue
5. dynamic load scenario JSON schema(fix cache issue)
6. add vjsf 1.12.2 (latest) for private package dependencies
7. remove vjsf unnecessary files
8. use private vjsf as configurator dependencies
9. Add custom IVSHMEM_REGION widget
10. add a script to populate default values
11. get default values before export scenario xml
12. specify widgets in XML schema
13. add missing vjsf license file
14. populate default values to empty nodes
15. when user clicks save button, update formData with each field default value
16. fix when the user clicks the save button will collapse configFom
17. add success message for saving scenario XML

vue-json-schema-form 1.12.2 (latest)link: b30ea7c2d6/packages/lib

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-05-08 15:52:28 +08:00
Calvin Zhang e36b615fe1 misc: configurator: Config usb mediator devices in dropdown list
Support detecting connected usb devices in board_inspector and list them
in the usb mediator configuration menu.

Tracked-On: #7424
Signed-off-by: Calvin Zhang <calvinzhang.cool@gmail.com>
2022-05-07 17:37:03 +08:00
Conghui 2d66ba4d40 config-tools: add warning message
Add warning message when users select a new board for an existing
configuration.

Tracked-On: #7413
Signed-off-by: Conghui <conghui.chen@intel.com>
2022-05-07 15:31:35 +08:00
Conghui 292978aff1 config-tools: bugfix for deleting Service VM
When deleting Service VM, Post-launched VMs also need to be deleted.

Tracked-On: #7413
Signed-off-by: Conghui <conghui.chen@intel.com>
2022-05-07 15:31:35 +08:00
Conghui ab51dcdab4 config-tools: show confirm info for deleting VMs
Show different confirm windows for Service_VM and other VMs.

Tracked-On: #7413
Signed-off-by: Conghui <conghui.chen@intel.com>
2022-05-07 15:31:35 +08:00
Conghui 02c8043ff9 config-tools: change tab color
change tab color

Tracked-On: #7413
Signed-off-by: Conghui <conghui.chen@intel.com>
2022-05-07 15:31:35 +08:00
Conghui 5a3b38f778 config-tools: add confirm message
Add confirm message when saveing scenario and launch scripts.

Tracked-On: #7413

Signed-off-by: Conghui <conghui.chen@intel.com>
2022-05-07 15:31:35 +08:00
Yifan Liu 33c506427e misc: configurator: Bugfix: misplaced enum property
During conversion from xml to scenario.json, elements with "maxOccurs"
property is processed as json array, and (most) properties of that elements
goes to the json array. However the "enum" property should belong to the
array item, not the array itself.

Tracked-On: #7421
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
2022-05-07 13:12:40 +08:00
Yifan Liu bf656a1141 misc: configurator: Bugfix: Incorrect DynamicEnum type
Currently dynamicEnum hook returns all available options (enums) as a
list of strings. However in some cases strings need to be converted to
target types.

One example is CPU affinity. The dynamicEnum should produce a list of
all available pCPUIDs (a list of integers), instead of a list of
strings.

This patch adds a converter in get_enum to do the type conversion.

Tracked-On: #7420
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
2022-05-07 13:12:40 +08:00
Yifan Liu 35dc60192f misc: configurator: Re-assign VMID based on load order
Previously if user creates a shared scenario and adds a pre-launched VM,
the pre-launched VM will be assigned a VMID that's greater than service
VM, which will be blocked by scenario validation.

This patch re-assigns the VMID before saving as scenario XMLs based on
their load order. The UI-only VM name will have no impact on VMID that's
actually written to scenario XML.

Tracked-On: #7419
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
2022-05-07 13:12:40 +08:00
Yifan Liu ee3a527464 misc: configurator: Open folder callback bugfix
Open folder callback should append a path split after selecting working
folder, same way as it did with default one.

Tracked-On: #7418
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
2022-05-07 13:12:40 +08:00
Ziheng Li 8bdbedd6cf config-tools:Board Inspector Behaviors Improvement
1.Temporarily store the log in the form of tempfile,
and the temporary file will be deleted after the summary log information is displayed.
2.Now, the logs will be printed when they generated as well.

Tracked-On: #6689
Signed-off-by: Ziheng Li <ziheng.li@intel.com>
2022-05-07 11:25:44 +08:00
Kunhui-Li 019ae24c94 config_tools: update the hugepage algorithm
update the hugepages algorithm as the following steps.
1. calculate the total hugepages of service vm using the formula.
   "total memory - the memory consumed by pre-launched VMs - 3G
   -1G(memory need by service vm supporting virtio gpu)
   -300M*num(number of virtio gpu instance)"
2. calculate hugepage 2M/1G based post-launched vm memory setting.
3. correct the 2M/1G hugepages with the total hugepages in step 1.
   "correct_mb, correct_gb= math.modf(total hugepages - the memory
    consumed by Post_launched vm)
    hugepages_1gb = hugepages_1gb + correct_gb
    hugepages_2mb = hugepages_2mb + math.ceil(correct_mb*1024/2)"

Tracked-On: #7301
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-05-07 10:51:10 +08:00
jackwhich 9aa373aa3a config-tools: Update board.xml file based on board inspector modification
Update board.xml file according to board inspector modification
for removing nowait parameter in cmdline by commit: 4b81a2d89

Tracked-On: #7371
Signed-off-by: zhongzhenx.liu <zhongzhenx.liu@intel.com>
2022-05-07 09:45:51 +08:00
Calvin Zhang 257b04f9ce misc: deb: Fix the ServiceVM kernel line in ACRN grub entry
After replacing partitioned ACRN deb with shared deb, the stale
multiboot module for ACPI1.bin was left in ACRN grub entry because it
was taken as kernel image.

Tracked-On: #7400
Signed-off-by: Calvin Zhang <calvinzhang.cool@gmail.com>
2022-05-07 09:11:23 +08:00
Zhou, Wu 1f20d5e7a0 config-tools: board_inspector deb appends kernel CMDLINE
Currently installing board_inspector deb would overwrite the grub
default kernel CMDLINE GRUB_CMDLINE_LINUX_DEFAULT. This could lose
some useful kernel args configured by user.

This patch is to change the 'overwrite' operation to 'append'.

Simply appending new CMDLINE to GRUB_CMDLINE_LINUX_DEFAULT could
not work. We need to remove duplicated args, and keep the args in
its origin order.

Tracked-On: #7402

Signed-off-by: Zhou, Wu <wu.zhou@intel.com>
2022-05-06 15:08:33 +08:00
Conghui 9669cc1c58 config-tools: add alert for non-exist file
Add alert when importing an non-exist scenario file

Tracked-On: #7413
Signed-off-by: Conghui <conghui.chen@intel.com>
2022-05-06 13:39:27 +08:00
hangliu1 1540d3479f config tool:add vmname in launch script
add vmname in generated launched script by a comment

Tracked-On: #7410
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-05-06 09:09:25 +08:00
hangliu1 0c5f7b5985 config tool:add restriction for some parameters
add value restriction for memory size and max pt irq entry

Tracked-On: #7407
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-05-05 16:50:22 +08:00
hangliu1 fd76e342ef config tool: add schema check for cpu_affinity
cpu_affinity is required field for non-service vm,
add the check in case user misconfig it.

Tracked-On: #7405
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-05-05 15:51:59 +08:00
David B. Kinder 69f8f6dcdc doc: fix malformed virtio gpu device description
xs:documentation content has an indented line that causes the reST
formatting of the generated content to be off (leading spaces on lines
are significant to reST formatting).

Tracked-On: #5692

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-05-03 15:43:18 +08:00
Zhou, Wu 4b81a2d89a config-tools: remove 'nomwait' from board_inspector's requirement
This patch is about the bug that VMs can't idle.

ACRN enables VM's C-state by extracting host's C-state table.
The C-state table has two types of interfaces: system-IO and mwait. VMs
just need one of them. ACRN can support both.

Currently we are telling users to use the system-IO type. That is, by
adding 'nomwait intel_idle.max_cstate=0' to host Linux's CMD line when
using board_inspector. (The reaseon we were using system-IO is that
mwait was buggy on Apollo Lake.)

But recent tests show that system-IO is somehow buggy. Linux c-state
driver(no matter intel_cstate or acpi_cstate) fails to enter idle state
with system-IO. This can always be reproduced on native environments.
MPERF counters show CPU cores are not in real idle state as expected.

To enable C-state in VMs, we have to switch to mwait.
As ACRN has already supported both system-IO and mwait, we don't have
to modify any code. We just need to tell user to use mwait instead of
system-IO.
That is, don't add 'nomwait intel_idle.max_cstate=0' to host Linux's
CMD line when using board_inspector. Just add 'intel_idle.max_cstate=0'

Due to the Apollo Lake's mwait bug, 'nomwait' is still needed for
Apollo Lake as an exception.

Tracked-On: #7371

Reviewed-by: Junjie Mao <junjie.mao@intel.com>
Signed-off-by: Zhou, Wu <wu.zhou@intel.com>
2022-04-30 17:06:23 +08:00
lirui34 b7f50ef980 config_tools: Add virtio_device example for all the platforms
We should add virtio_devices network / block / console nodes
to the generic_board scenario xmls.
But now we found some of the hybrid / hybrid_rt even the shared xml
are missing virtio devices block nodes, or not user will generate
invalid launch scripts.

Tracked-On: #7392
Signed-off-by: lirui34 <ruix.li@intel.com>
2022-04-29 17:50:31 +08:00
Junjie Mao f8f1689a88 config_tools: do not apply distinct-values on a union of node-set
The latest version of the elementpath library (i.e. 2.5.0) fails to
evaluate an XPATH which feeds a union of node sets to the `distinct-values`
function. An exception will be raised in such case, which eventually causes
the hypervisor build to fail.

This patch removes the usage of `distinct-values` function in the
XPATH. This may cause some additional delays to the evaluation of the
assertion, but at least will not impact the build even the latest versions
of the Python libraries are used.

Tracked-On: #7372
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2022-04-28 15:36:11 +08:00
Chenli Wei 3b4841b91d misc: fix the issue of create hv node
There was an issue of create hv node by clos module, the direct cause
is the create logic and the indirect cause is these modules of
static_allocators was not sorted before run which cause some platform
have issue and CI could not found.

So this patch fix the create issue and sorted the modules list to make
sure all these platform could work well and get the same allocation.xml

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
2022-04-28 13:42:54 +08:00
Ziheng Li 92c9252f4c [acrn-configuration tool] make scenario shared file error cp error
Fixed the error that the "'chmod +x ./build/acrn_release_deb/DEBIAN/preinst'"
command and "sed -i \'s/\r//\' ./build/acrn_release_deb/DEBIAN/preinst" command
are still executed when there is no "./build/acrn_release_deb/DEBIAN/preinst"
file after build.

Tracked-On: projectacrn#7383
Signed-off-by: Ziheng Li <ziheng.li@intel.com>
2022-04-28 10:10:55 +08:00
Weiyi-Feng c544ac98bc config_tools: fix document typo
fix document typo

Tracked-On: #6691
Signed-off-by: Weiyi Feng weiyix.feng@intel.com

Co-authored-by: David Kinder <david.b.kinder@intel.com>
2022-04-27 12:54:47 +08:00
Weiyi Feng f9cb5edc7e config_tools: update configurator document and build script
1. update configurator document.
2. fix build script doesn't generate allchecks.xsd issue.
3. add open_devtools command, now we can get detail debug info in prod.
4. remove vconsole component, which will cause some strange js runtime issue in Linux.

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-04-27 12:54:47 +08:00
Ziheng Li c9e982557b [acrn-deb] install_compile_package function is not consistent with gsg
Remove misc/packaging/install_uSoS.py,
because there's no use for this script.

Tracked-On: projectacrn#7370
Signed-off-by: Ziheng Li  <ziheng.li@intel.com>
2022-04-27 10:33:34 +08:00
Ziheng Li 21d5a2f8ee [acrn-configuration tool] make scenario shared file error cp error
Fixed the problem that the "'cp %s %s' % (source, target), cur_dir" command
is still executed when there is no ACPI_VM.bin file after build.

Tracked-On: projectacrn#7366
Signed-off-by: Ziheng Li <ziheng.li@intel.com>
2022-04-27 01:10:29 +08:00
Geoffroy Van Cutsem e748842da0 config_tools: add 'configurator' to error message
A new target is available to the gen_acrn_deb.py script, namely
'configurator'. The error message in case the user passes an incorrect target
provides the valid option but did not mention this new 'configurator' target.

Tracked-On: #7367
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2022-04-26 17:36:21 +08:00
Qiang Zhang b894b89f41 board_inspector: transform non-viewable characters in brand string
Some cpu reports a brand string with non-viewable characters. While XML
string value can not contain NULL bytes or control characters.

So replace non-viewable characters in brand string with spaces.

Tracked-On: #7365
Signed-off-by: Qiang Zhang <qiang4.zhang@linux.intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-04-26 16:35:43 +08:00
Yifan Liu 26cab008e8 misc: config_tools: Add Check for RTVM pCPU assignment
Previously we have checks to make sure pre-launched RTVM does not share
pCPU with others. This patch extends this check to all RTVMs.

Tracked-On: #7361
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
2022-04-26 13:42:13 +08:00
hangliu1 b49facb61d config tool: add d3hot_reset in launch script
add d3hot_reset in launch script when USB xhci is selected
for passthrough device

Tracked-On: #7363
Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-26 12:58:27 +08:00
Weiyi Feng 38f79d986b config_tools: fix build issue
fix build issue

Tracked-On: #6691
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-04-26 09:22:57 +08:00
David B. Kinder aa170a3d11 doc: update acrn:title for uniqueness and context clarity
Make small changes to DX-friendly acrn:title names to make them unique
across the options and to provide meaningful names when shown out of
context in the config option documentation.

Tracked-On: #5692

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2022-04-25 09:10:47 -07:00
Weiyi Feng 696ba31be8 config_tools: refactor configurator for web page cache issue
refactor configurator for web page cache issue

Tracked-On: #7356
Signed-off-by: Weiyi Feng <weiyix.feng@intel.com>
2022-04-25 18:13:12 +08:00
Conghui 8e61d417db configurator: bugfix for removing Service VM
When removing Service VM from UI, the post-launched VMs should also be
removed.
Besides, add a warning window when removing Service VM.

Tracked-On: #7349
Signed-off-by: Conghui <conghui.chen@intel.com>
Reviewed-by:  Weiyi Feng <weiyix.feng@intel.com>
2022-04-25 13:16:46 +08:00
Kunhui-Li 15e83758d6 config_tools: update upgrader.py script for virtio
1. add virtio gpu logic in upgrader.py script.
2. fix the upgraded virtio elements issue.
3. add the logic to remove the element with empty value in xml file
to use the default value.

Tracked-On: #7301
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-04-25 10:19:24 +08:00
Kunhui-Li 68f88a4bc9 config_tools: update virtio console to support multiple console sockets
this patch updates virtio console in schema and launch script generation
logic to support multiple console sockets. And check the schema and launch
script, now we support multiple console/input/network/block, multiple gpu is
not supported in schema.

Tracked-On: #6690
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-04-25 10:19:24 +08:00
hangliu1 e63a17a7c8 config tool:Fix tap name filter error
when tap name is number, it will lead to failure of
adding tap dev, fix it.

Tracked-On: #7351

Signed-off-by: hangliu1 <hang1.liu@linux.intel.com>
2022-04-24 18:17:57 +08:00
Chenli Wei c962eaa3c9 misc: refine XMLs for new RDT design
After we redesign the RDT, we should update our XMLs for these new
schema format.

This patch remove all 'CLOS_MASK' of RDT region which will be create
by user setting.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
2022-04-24 16:52:24 +08:00
Chenli Wei 4807385fe2 misc: refine cache config
The current RDT setting requires users to calculate the CLOS mask and
the details, it is not a user-friendly setting.

So we redesigned RDT, users can easily specify the cache of each vcpu
for VMs.

This patch add an RDT region element for schema, calculate and generate
all the mask and rdt parameters by config tool to generates rdt_info
struct for board.c.

Tracked-On: #6690
Signed-off-by: Chenli Wei <chenli.wei@intel.com>
2022-04-24 16:52:24 +08:00
Conghui c25de24a92 config-tools: remove board and scenario attributes
Remove board and scenario attributes from scenario XMLs

Tracked-On: #7345
Signed-off-by: Conghui <conghui.chen@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-04-24 13:53:32 +08:00
Conghui c0fd2e9ce0 config-tools: tiny fix in upgrader
Do not copy the 'board' and 'scenario' in <acrn-config> to the new xml.

Tracked-On: #7345
Signed-off-by: Conghui <conghui.chen@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2022-04-24 13:53:32 +08:00