[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: question about virtio-vsock on xen


  • To: Peng Fan <peng.fan@xxxxxxx>
  • From: Stefano Stabellini <stefano.stabellini@xxxxxxx>
  • Date: Fri, 23 Feb 2024 13:42:10 -0800
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=nxp.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=brzpYEEybsreMV1sY2Ki8Ly4xbWrIx5anpAufpPOS70=; b=hz5hSs4Fc+w4dkQ1bQG58729PRwycpd+d5IgzPSHS2c/rwXYnnwZoMdnDDsf79HiFPhW8E/UDkIQpTPtjHzGSY7dtGWgLFvT0fxLxI88kPrWh5VQaIzkIMtIlp9HBJO0kCtRufrfdzv5250aNCgP86uJ/pzZdSJkwrhlW84o6WoDrMgegomPVHt0CRr+gVSpgOB7hZEyxZJFo+5JKyANNZA1qfwNHt7S0RpiaDjsqr69Ua13LgC0CyH78r8cudMcHIQEL6xvo+JS4eaTmgmh/weZhH/o9XuMPRfwcfLE4rE/HD/BdTnsLcIewxUSJGwNflSD9Linq83STl9DoxLEfA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eS3C1nnct3mCy8hPMmX3wP0s1xMLiiSyYqjCBLByd6gqLvQvDg+V0eJfiuCo2SLxBLclhnz611obQduXayW+EmE4yJCmX0YwJN7BsCmGlxyiKseC7WvF2OjKwsC/tW57RPpVsAWV/uu3y+vsiI7XEknjYujLpMUu34KThKmnxaBeak/MpwexXTjlLm3VkfpnPE8ZT+qYhI57i4suHI3uu0tTPK270EUscoNVe9Sh+g18UQbENG/eZQS4KJ+nUcOzbSmoqv+D8f15+lAz+Gas4vnuhJp//J73+mxn3ZlGE00xLphARHdNtVL4FTwd/8brI/WDhNf7qja3Al1OxNGKeg==
  • Cc: "stefano.stabellini@xxxxxxx" <stefano.stabellini@xxxxxxx>, Julien Grall <julien@xxxxxxx>, "vikram.garhwal@xxxxxxx" <vikram.garhwal@xxxxxxx>, "oleksandr_tyshchenko@xxxxxxxx" <oleksandr_tyshchenko@xxxxxxxx>, Leo Yan <leo.yan@xxxxxxxxxx>, Viresh Kumar <viresh.kumar@xxxxxxxxxx>, "stewart.hildebrand@xxxxxxx" <stewart.hildebrand@xxxxxxx>, "sgarzare@xxxxxxxxxx" <sgarzare@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 23 Feb 2024 21:42:41 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi Peng,

We haven't tried to setup virtio-vsock yet.

In general, I am very supportive of using QEMU for virtio backends. We
use QEMU to provide virtio-net, virtio-block, virtio-console and more.

However, typically virtio-vsock comes into play for VM-to-VM
communication, which is different. Going via QEMU in Dom0 just to have 1
VM communicate with another VM is not an ideal design: it adds latency
and uses resources in Dom0 when actually we could do without it.

A better model for VM-to-VM communication would be to have the VM talk
to each other directly via grant table or pre-shared memory (see the
static shared memory feature) or via Xen hypercalls (see Argo.)

For a good Xen design, I think the virtio-vsock backend would need to be
in Xen itself (the hypervisor).

Of course that is more work and it doesn't help you with the specific
question you had below :-)

For that, I don't have a pointer to help you but maybe others in CC
have.

Cheers,

Stefano


On Fri, 23 Feb 2024, Peng Fan wrote:
> Hi All,
> 
> Has anyone make virtio-vsock on xen work? My dm args as below:
> 
> virtio = [
> 'backend=0,type=virtio,device,transport=pci,bdf=05:00.0,backend_type=qemu,grant_usage=true'
> ]
> device_model_args = [
> '-D', '/home/root/qemu_log.txt',
> '-d', 
> 'trace:*vsock*,trace:*vhost*,trace:*virtio*,trace:*pci_update*,trace:*pci_route*,trace:*handle_ioreq*,trace:*xen*',
> '-device', 
> 'vhost-vsock-pci,iommu_platform=false,id=vhost-vsock-pci0,bus=pcie.0,addr=5.0,guest-cid=3']
> 
> During my test, it always return failure in dom0 kernel in below code:
> 
> vhost_transport_do_send_pkt {
> ...
>                nbytes = copy_to_iter(hdr, sizeof(*hdr), &iov_iter);           
>                      
>                 if (nbytes != sizeof(*hdr)) {                                 
>                       
>                         vq_err(vq, "Faulted on copying pkt hdr %x %x %x 
> %px\n", nbytes, sizeof(*hdr),                        
> __builtin_object_size(hdr, 0), &iov_iter);
>                         kfree_skb(skb);                                       
>                       
>                         break;                                                
>                       
>                 }  
> }
> 
> I checked copy_to_iter, it is copy data to __user addr, but it never pass, 
> the copy to __user addr always return 0 bytes copied.
> 
> The asm code "sttr x7, [x6]" will trigger data abort, the kernel will run
> into do_page_fault, but lock_mm_and_find_vma report it is VM_FAULT_BADMAP,
> that means the __user addr is not mapped, no vma has this addr.
> 
> I am not sure what may cause this. Appreciate if any comments.
> 
> BTW: I tested blk pci, it works, so the virtio pci should work on my setup.
> 
> Thanks,
> Peng.
> 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.