xen-troops / meta-xt-prod-devel-rcar

Main Xen Troops product, which is used for day-to-day development and integration
Apache License 2.0
4 stars 14 forks source link

Dev/vladyslav goncharuk/virtio integration #103

Closed svlad-90 closed 1 year ago

svlad-90 commented 1 year ago

The change was checked in the following way:

Item name Status
DomU virtio non-NFS works
DomU virtio NFS works
DomA virtio non-NFS works
DomA virtio NFS ( only NFS for Dom0 and DomU ) works

In all the above cases the following use cases were checked:

Use-case name
Boot
Recover after xl destroy
Recover after the 'systemctl restart domu(a)'
Recover after the 'reboot' command inside DomU(A)

Please, consider, that to have NFS boot in a working state, the following workaround was applied to Xen. The code here was modified to:

if (!paused)
{
    fprintf(stderr, "~~~GVV: Before domain unpause\n");
    sleep(5);
    libxl_domain_unpause(ctx, domid, NULL);
    fprintf(stderr, "~~~GVV: After domain unpause\n");
}

The following fact causes the need for that workaround: Xen does not keep DomU(A) paused until QEMU has set up the backends. The domain is unpaused right away, and in case of a slow NFS boot, the guest domain checks the availability of the virtio devices before the QEMU is able to set them up.

I'm in contact with the xen-troops team ( OTyshchenko ) regarding this workaround. We will try to prepare a more intelligent patch, that does not impact non-virtio use cases. Probably, it'll happen this week.


Also, I've checked the non-virtio build:

Item name Status
DomU non-virtio non-NFS works
DomU non-virtio NFS works
DomA non-virtio non-NFS works
DomA non-virtio NFS ( only NFS for Dom0 and DomU ) works
svlad-90 commented 1 year ago

Hi @lorc, the 'acked-by' line was added to all commits. Let's merge it! ))