Skip to content

Conversation

@MrXinWang
Copy link
Member

This commit enables mmio-related integration test cases on AArch64, including:

  • vhost_user test cases
  • virtio-blk test cases
  • pmem test cases

Also this commit contains a bug fix in creating virtio-blk device. Previously, when creating the FDT, the virtio-blk device was
labeled in the reverse order of address allocation.

Signed-off-by: Henry Wang [email protected]

@MrXinWang MrXinWang force-pushed the arm64_integration_cases branch from 5f9108c to 6f589e7 Compare July 15, 2020 01:36
@MrXinWang MrXinWang mentioned this pull request Jul 15, 2020
8 tasks
@MrXinWang MrXinWang force-pushed the arm64_integration_cases branch 9 times, most recently from 833ef2c to 886926d Compare July 15, 2020 05:18
@MrXinWang MrXinWang marked this pull request as draft July 15, 2020 05:25
@MrXinWang
Copy link
Member Author

Some vhost_user_blk cases pass/fail randomly. Please do not merge this.

@MrXinWang MrXinWang force-pushed the arm64_integration_cases branch 4 times, most recently from b1eb2a6 to 55eab89 Compare July 15, 2020 08:05
@MrXinWang
Copy link
Member Author

MrXinWang commented Jul 15, 2020

Extented the sleep time in test_vhost_user_blk. The random failure of vhost_user_blk test cases was solved on my local machine (10 times running). However still exist in CI machine.

@MrXinWang MrXinWang force-pushed the arm64_integration_cases branch 3 times, most recently from 1e132b3 to 8f91526 Compare July 20, 2020 00:59
@MrXinWang MrXinWang marked this pull request as ready for review July 20, 2020 01:14
Copy link
Member

@rbradford rbradford left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, sorry I had a pending review here waiting for quite some time!

workload_path.push("workloads");

let mut kernel_path = workload_path;
#[cfg(target_arch = "x86_64")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be better to delegate this to a direct_kernel_boot_path()

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes definitely. I've updated the code. Hopefully it makes more sense now :)

@MrXinWang MrXinWang force-pushed the arm64_integration_cases branch 3 times, most recently from 059a476 to 7ed8bf1 Compare July 20, 2020 09:14
// Creates the path for direct kernel boot and return the path.
// For x86_64, this function returns the vmlinux kernel path.
// For AArch64, this function returns the PE kernel path.
fn direct_kernel_boot_path(workloads_dir: PathBuf) -> Option<PathBuf> {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workloads_dir is always the same so you could make this function take () and instead construct the full path here.


#[test]
#[cfg(target_arch = "x86_64")]
fn test_vhost_user_net_self_spawning() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do these tests not work? is vhost-user not supported?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Emmm some vhost_user test cases failed on both my AArch64 dev machine and the CI machine for following two reasons:

  1. Any vhost_user_net case with self-spawning will fail everytime. The VM just cannot be started...

  2. the test_vhost_user_blk_default and test_vhost_user_blk_direct case will randomly fail (1 or 2 fail out of 10). I have literally no idea why this happened. If I run these two cases with exact same configuration and argument on my host manually, it works everytime. However in container the ssh command will randomly fail, leading to the assertion fail. I checked the log and found that the kernel is started....So I am really confused and still debugging this.

As this PR is blocking the PCI related integration test. We will propose another PR after the above bugs are resolved.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rbradford Some failed error log can be found here: https://cloud-hypervisor-jenkins.westus.cloudapp.azure.com/blue/organizations/jenkins/cloud-hypervisor/detail/PR-1463/17/pipeline/137

As this failure is really random so I really don't feel comfortable to open these two cases...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine with tests being disabled for now. I just wondered if this was a particular vhost-user issue but sounds not.

@MrXinWang MrXinWang force-pushed the arm64_integration_cases branch 2 times, most recently from 632d33c to 9d71105 Compare July 20, 2020 09:54
@MrXinWang MrXinWang force-pushed the arm64_integration_cases branch 2 times, most recently from 35da711 to 0f1ce63 Compare July 20, 2020 10:00
Copy link
Member

@rbradford rbradford left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can merge when green.

This commit enables some mmio-related integration test cases on
AArch64, including:
* some vhost_user test cases
* virtio-blk test cases
* pmem test cases

Also this commit contains a bug fix in creating virtio-blk device.
Previously, when creating the FDT, the virtio-blk device was
labeled in the reverse order of address allocation.

Signed-off-by: Henry Wang <[email protected]>
@MrXinWang MrXinWang force-pushed the arm64_integration_cases branch from 0f1ce63 to b6e6d16 Compare July 20, 2020 10:16
@rbradford rbradford merged commit f449aec into cloud-hypervisor:master Jul 20, 2020
@MrXinWang MrXinWang deleted the arm64_integration_cases branch June 4, 2021 07:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants