XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    USB Passthrough speed issue

    Scheduled Pinned Locked Moved XCP-ng
    16 Posts 4 Posters 1.4k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J Offline
      Joe_dev @olivierlambert
      last edited by

      @olivierlambert
      Sorry for the delay.
      Shortly after posting this, I installed Proxmox for testing. In the same configuration, I was able to pass through just the USB TPU, and the speed was reported as 5000M. Though in other systems the Coral's Inference speed was around 10ms, and in this configuration It was about 18ms.
      I decided to pass through the USB controller, and was able to get my Inference speed down to 8ms.
      I then decided to install XCP-NG 8.3R2, and do the same.
      First thing I noticed, none of the USB controllers showed up in the list to have them passed though. So I passed the USB controller though manually from the command line, then associated it with the VM. I am currently unable to start the VM due to this error:
      INTERNAL_ERROR(xenopsd internal error: Cannot_add(0000:00:14.0, Xenctrlext.Unix_error(30, "1: Operation not permitted")))

      Is that similar to this issue?
      https://xcp-ng.org/forum/topic/2583/xcp-ng-8-1-pcie-onboard-usb-controller-passthrough-does-not-work

      Please let me know if there is any hope, or if you need any additional information.
      Thank you,

      Joe

      1 Reply Last reply Reply Quote 0
      • olivierlambertO Offline
        olivierlambert Vates 🪐 Co-Founder CEO
        last edited by

        Have you double checked your PCI passthrough config is OK? (the device should be invisible in the Dom0)

        J 1 Reply Last reply Reply Quote 0
        • J Offline
          Joe_dev @olivierlambert
          last edited by Joe_dev

          @olivierlambert I believe so, thats when it would show up in this list?

          [12:36 xcp-ng-test ~]# xl pci-assignable-list
          0000:00:14.0
          

          To be complete, these are the commands that I ran to add that adapter to my VM:

          /opt/xensource/libexec/xen-cmdline --set-dom0 "xen-pciback.hide=(0000:00:14.0)"
          xl pci-assignable-list  (to make sure it was there)
          reboot
          xe vm-param-set other-config:pci=0/0000:00:14.0 uuid=54836e04-7bee-9f34-16f7-51c7bf2fb96a
          

          Here is its listing in lspci:

          00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
          
          1 Reply Last reply Reply Quote 0
          • olivierlambertO Offline
            olivierlambert Vates 🪐 Co-Founder CEO
            last edited by

            I wonder if the USB chip is within the CPU SoC or not 🤔 (and this could cause issues).
            @Teddy-Astie those commands sounds fine by me, do you spot anything wrong?

            1 Reply Last reply Reply Quote 0
            • TS79T Offline
              TS79 @Joe_dev
              last edited by TS79

              Hi @Joe_dev

              I'm no expert on this, but one thing I noticed is that on your host, the driver shows as "xhci" (which is the USB 3.x controller interface standard), whereas in the VM the driver is showing as "ehci" (which is the USB 2.x interface) and therefore has the 480Mbps bandwidth limitation.

              Sadly I've got little to no experience with USB or PCIe passthrough (haven't had to use them yet), but hopefully this can point someone in the right direction to troubleshoot. My guess is, either the VM's OS has a limitation, or there's a VM setting at XCP-ng level, or the XCP-ng host itself has a setting or device passthrough challenge. 🤷 Sorry I can't be more helpful.

              EDIT: I just plugged a USB 3.0 storage device into my XCP-ng host, went to the VM settings and added a VUSB device from the PUSB. Within Xen Orchestra, the USB device shows as 5000Mbps speed, but within the VM it shows as 480Mbps. VM's OS is Ubuntu 22.04.5. I'm going to test on a newer Ubuntu 24.04 version - will reply on this thread.

              1 Reply Last reply Reply Quote 0
              • TS79T Offline
                TS79
                last edited by

                Tried on Ubuntu 24.04 with kernel 6, same result: host and XCP/XOA show the device as xhci 5000Mbps, guest VM shows the device as ehci 480Mbps.

                I don't have any time to fiddle, and some of this seems hardware specific, but some brief searching on keywords with Linux, EHCI, XHCI, etc. seem to mention a few possibilities: kernel driver being loaded wrong, guest EUFI vs BIOS (where BIOS initialises the device as USB 2.0), host BIOS (disabling legacy USB support - but this may endanger keyboard/mouse inputs), or host IOMMU settings.

                1 Reply Last reply Reply Quote 0
                • olivierlambertO Offline
                  olivierlambert Vates 🪐 Co-Founder CEO
                  last edited by

                  It's maybe due to the USB passthrough itself, we probably need to ask internally.

                  TS79T 1 Reply Last reply Reply Quote 0
                  • TS79T Offline
                    TS79 @olivierlambert
                    last edited by

                    @olivierlambert Any idea who can be tagged here to ask internally (I assume you meant someone from the Vates team) 🙂

                    1 Reply Last reply Reply Quote 0
                    • olivierlambertO Offline
                      olivierlambert Vates 🪐 Co-Founder CEO
                      last edited by

                      Yes you assumed correctly and right now IDK who could take a look at this as it's a bit less a priority vs other stuff. Maybe we could ask @andyhhp if he's aware about the specifics of USB passthrough mechanism.

                      1 Reply Last reply Reply Quote 1
                      • N Offline
                        nuts23
                        last edited by

                        I encountered this yesterday as well. It seems as though this is a Xen issue: https://wiki.xenproject.org/wiki/Xen_USB_Passthrough

                        USB will only pass-through as USB 2.0, you will need to pass-through PCI for the entire USB controller, unfortunately that wasn't available for my on-board USB controller, so I think you have to have a secondary USB controller either on-board or as a add-in card.

                        1 Reply Last reply Reply Quote 0
                        • olivierlambertO Offline
                          olivierlambert Vates 🪐 Co-Founder CEO
                          last edited by

                          I'm adding this in our "list of things" to check.

                          J 1 Reply Last reply Reply Quote 0
                          • J Offline
                            Joe_dev @olivierlambert
                            last edited by

                            Thank you all with your assistance with this, I truly appreciate it!
                            I have a cheap Inateck card that I picked up on amazon, which I was not able to get working correctly in either XCP-NG or Proxmox.
                            Does anyone have a recommendation for a USB 3.0 card that is known to work?
                            If not, I can do some searching, but figured I would ask.
                            Thanks!

                            J 1 Reply Last reply Reply Quote 0
                            • J Offline
                              Joe_dev @Joe_dev
                              last edited by

                              Just to close the loop on this for anyone who might run into the same issue.
                              I picked up a StarTech.com PEXUSB3S7 7 Port PCI Express USB 3.0 Card and passed the whole card through and it works great.
                              getting the same Inference speed in Frigate as I do using Proxmox.

                              1 Reply Last reply Reply Quote 1
                              • olivierlambertO Offline
                                olivierlambert Vates 🪐 Co-Founder CEO
                                last edited by

                                Thanks for your feedback. In the meantime, I will plan a "spike" to investigate the status of USB speed on passthrough.

                                1 Reply Last reply Reply Quote 1
                                • First post
                                  Last post