XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. JamesG
    3. Posts
    J Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 6
    • Posts 68
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: PCIe Pass-through lanes and lane performance

      @TeddyAstie From what I've tried...It won't work at all in Linux.

      It kind of works in Windows, and while I do see some load on the GPU when running something, there's as much if not more load on the CPU. It's not what I expected at least.

      I've never really gamed on PC, and definitely never Linux. My only uses for GPU's have been in media composition which was always on dedicated systems and Nvidia GPUs. More recently I've been doing some AI tasks, again with passed-through NVidia GPUs.

      Side tangent...
      I ran into another workload last night where the app wanted OpenGL...But OpenGL doesn't work with the "normal" VGA adapter in XCP-ng, and I don't have a GPU on that particular pool to try a pass-through. That lead me to VirGL, but it doesn't look like that's gone anywhere.

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      Yep...

      Stripped it all out....Rebooted...

      Set the pcihideback for dom0...Rebooted.

      Verified all devices were assignable.

      Assigned to guest VM, booted...No go.

      Initially the log said it couldn't assign 82:02.0
      So I removed it.
      Then it couldn't assign 82:01.0
      So I removed it.
      Then it couldn't assign 81:00.0
      So I removed it.

      Now the VM works...But we're effectively back to just passing through the GPU itself, and I guess the audio device.

      No functional change.

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      Argh...

      Okay...First up:

      lspci:

      81:00.0 PCI bridge: Intel Corporation Device e2ff (rev 01)
      82:01.0 PCI bridge: Intel Corporation Device e2f0
      82:02.0 PCI bridge: Intel Corporation Device e2f1
      83:00.0 VGA compatible controller: Intel Corporation Device e212
      84:00.0 Audio device: Intel Corporation Device e2f7

      Execute the hide:

      /opt/xensource/libexec/xen-cmdline --set-dom0 "xen-pciback.hide=(0000:81:00.0)(0000:82:01.0)(0000:82:02.0)(0000:83:00.0)(0000:84:00.0)"

      Reboot and verify the hide:

      xl pci-assignable-list
      0000:84:00.0
      0000:82:01.0
      0000:83:00.0
      0000:81:00.0
      0000:82:02.0

      Looks good....make the assignment:

      xe vm-param-set other-config:pci=0/0000:81:00.0,0/0000:82:01.0,0/0000:82:02.0,0/0000:83:00.0,0/0000:84:00.0 uuid=9d76f849-16bf-0414-9072-6904176bbb01

      Verify:

      xe vm-param-list uuid=9d76f849-16bf-0414-9072-6904176bbb01

      other-config (MRW): pci: 0/0000:81:00.0,0/0000:82:01.0,0/0000:82:02.0,0/0000:83:00.0,0/0000:84:00.0; import_task: OpaqueRef:9e15d1aa-5e79-79d9-af81-4dc299725217; xo:9d76f849: {"creation":{"date":"2025-12-16T19:19:14.724Z","template":"1f8728f9-6354-4a68-adc3-222c34f2bb94","user":"ae9cf9c9-bbcc-4dc9-b1bb-d9fb1b657c60"}}; base_template_name: Windows 11; mac_seed: 5891089b-e9ec-3050-30e5-564db3e6e170; install-methods: cdrom

      Starting up the VM results in this:

        "params": [
          "xenopsd internal error: Cannot_add(0000:82:02.0, Device_common.QMP_Error(1, \"{\\\"error\\\":{\\\"class\\\":\\\"GenericError\\\",\\\"desc\\\":\\\"Failed to initialize 11/15, type = 0x1, rc: -1\\\",\\\"data\\\":{}},\\\"id\\\":\\\"qmp-000006-1\\\"}\"))"
        ],
      

      I'm gonna strip it all back, reboot and start over.

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      Nevermind...Typo...Rebooting now to see...

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      @andriy.sultanov First problem...

      /opt/xensource/libexec/xen-cmdline --get-dom0 xen-pciback.hide
      xen-pciback.hide=(0000:81:00.0)(0000:82.01.0)(0000:82:02.0)(0000:83:00.0)(0000:84:00.0)
      
      

      That looks good...

      xl pci-assignable-list
      libxl: error: libxl_pci.c:444:libxl_device_pci_assignable_list: Looks like pciback driver not loaded
      
      

      Not so much...

      I did go ahead and assign those PCI devices to the guest, but of course it won't start, complaining that the pciback driver isn't loaded.

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      @andriy.sultanov Absolutely. I wasn't sure if the old way was incompatible with the new way or not.

      So the old 8.2 method will still work without conflict in 8.3??

      If so, I'll have an answer for you shortly.

      posted in Compute
      J
      JamesG
    • RE: Manual CPU feature Masks (every CPU is a potato)?

      @MajorP93 I'm pretty sure you can migrate between dissimilar pools as long as the CPU architecture is the same. You can't go from Pool A with AMD to Pool B with Intel, but you should be able to go from Pool A AMD to Pool B AMD with the caveat that the CPU generation of the destination pool has to be equal or beyond that of the source pool.

      If I understand it right, Tackyone wants to dumb down all VM's to have the least common denominator CPU instructions so he can migrate any guest to any host. I personally think that's a bad direction, but I understand his desire...Pool a bunch of random systems laying around into a common farm. I think that's a bit too low-end of a goal for Vates to spend any time on myself. That seems exclusively homelab to me and counter to moving forward in the industry.

      posted in Hardware
      J
      JamesG
    • RE: Manual CPU feature Masks (every CPU is a potato)?

      @Tackyone Even with the current AI-induced hardware crunch, yester-year hardware isn't all that hard to come by. Why not just get a pile of systems that simply match? You'll have predictable and identical performance across the whole farm without any CPU features or enhancements being lost or ignored. Besides, in order for all the XCP-ng hosts to work together they (ideally) need shared storage and they have to have identical network configurations. Otherwise you've got slow migrations and network re-mapping every time you move something.

      Just my thought.

      posted in Hardware
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      @poddingue

      I'm in agreement with all of this. I can clearly see the Intel card starting at slot 81 and ending at 84. Unfortunately, in XCP-ng 8.3, only 83 (the "gpu" itself) is visible as an assignable PCI pass-through device. When I pass through just slot 83, I get a dysfunctional result.

      Again...I'm a little out of my expertise here, but my assumption here is that in order to actually get the full GPU to work, I need to get slots 81-84 passed over to the VM.

      Problem...In XCP-ng 8.2, you could mask off PCI devices with the pciback.hide function:

      /opt/xensource/libexec/xen-cmdline --set-dom0 "xen-pciback.hide=(0000:04:01.0)(0000:00:19.0)"
      
      Or in my case:
      
      /opt/xensource/libexec/xen-cmdline --set-dom0 "xen-pciback.hide=(0000:81:00.0)(0000:82.01.0)(0000:82:02.0)(0000:83:00.0)(0000:84:00.0)"
      

      Then you would assign those same PCI devices to the guest VM.

      In 8.3 you do this with an xe command:

      xe pci-list
      
      and
      
      xe pci-disable-dom0-access uuid=<pci uuid>
      

      The bridge devices for the Intel card aren't being included in the pci-list of XCP-ng and are therefore not assignable to guests. For example, running "xe pci-list" on a host shows me this single entry relevant to the Intel card:

      uuid ( RO)           : f3e6842b-ad1b-9e93-dbea-214dde28618a
          vendor-name ( RO): Intel Corporation
          device-name ( RO): Device e212
               pci-id ( RO): 0000:83:00.0
      

      With the new 8.3 method of assigning PCI resources to guest VM's, I don't see how I can fully pass-through the Intel GPU to a guest. I won't necessarily call this a "bug" but it is an unexpected and perhaps edge case behavior that Vates didn't expect.

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      Argh...Correction... 82 shows up as 82:01 and 82:02...

      lspci -vv -s 0000:82:01.0
      82:01.0 PCI bridge: Intel Corporation Device e2f0 (prog-if 00 [Normal decode])
              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
              Latency: 0, Cache Line Size: 64 bytes
              Bus: primary=82, secondary=83, subordinate=83, sec-latency=0
              Memory behind bridge: f7c00000-f7dfffff
              Prefetchable memory behind bridge: 000001f800000000-0000020002ffffff
              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
              BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
              Capabilities: [40] Express (v2) Downstream Port (Slot-), MSI 00
                      DevCap: MaxPayload 256 bytes, PhantFunc 0
                              ExtTag+ RBE+
                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal+ Unsupported-
                              RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
                              MaxPayload 256 bytes, MaxReadReq 512 bytes
                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                      LnkCap: Port #8, Speed 2.5GT/s, Width x1, ASPM L1, Exit Latency L0s <64ns, L1 <1us
                              ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                      LnkCtl: ASPM Disabled; Disabled- CommClk-
                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                      LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, OBFF Not Supported ARIFwd+
                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd+
                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
                               Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                               Compliance De-emphasis: -6dB
                      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                               EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
              Capabilities: [a0] Power Management version 3
                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                      Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
              Capabilities: [94] Subsystem: Intel Corporation Device 0000
              Capabilities: [100 v2] Advanced Error Reporting
                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                      UESvrt: DLP+ SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP+ ECRC- UnsupReq- ACSViol-
                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                      AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
              Capabilities: [220 v1] Access Control Services
                      ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans+
                      ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-
              Kernel driver in use: pcieport
      

      And 82:02...

      lspci -vv -s 0000:82:02.0
      82:02.0 PCI bridge: Intel Corporation Device e2f1 (prog-if 00 [Normal decode])
              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
              Latency: 0, Cache Line Size: 64 bytes
              Bus: primary=82, secondary=84, subordinate=84, sec-latency=0
              Memory behind bridge: f7e00000-f7efffff
              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
              BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
              Capabilities: [40] Express (v2) Downstream Port (Slot-), MSI 00
                      DevCap: MaxPayload 256 bytes, PhantFunc 0
                              ExtTag+ RBE+
                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal+ Unsupported-
                              RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
                              MaxPayload 256 bytes, MaxReadReq 512 bytes
                      DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
                      LnkCap: Port #8, Speed 2.5GT/s, Width x1, ASPM L1, Exit Latency L0s <64ns, L1 <1us
                              ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                      LnkCtl: ASPM Disabled; Disabled- CommClk+
                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                      LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, OBFF Not Supported ARIFwd+
                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
                               Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                               Compliance De-emphasis: -6dB
                      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                               EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
              Capabilities: [a0] Power Management version 3
                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                      Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
              Capabilities: [94] Subsystem: Intel Corporation Device 0000
              Capabilities: [100 v2] Advanced Error Reporting
                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                      UESvrt: DLP+ SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP+ ECRC- UnsupReq- ACSViol-
                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                      AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
              Capabilities: [220 v1] Access Control Services
                      ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans+
                      ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-
              Kernel driver in use: pcieport
      
      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      Alright....I might be seeing something here...From the CLI of the XCP-ng host itself...

      Here's the lspci tree view of interest:

       +-[0000:80]-+-00.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
       |           +-00.2  Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
       |           +-01.0  Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
       |           +-01.1-[81-84]----00.0-[82-84]--+-01.0-[83]----00.0  Intel Corporation Device e212
       |           |                               \-02.0-[84]----00.0  Intel Corporation Device e2f7
       
      

      So PCI slots 81-84 are what I'm interested in...Digging in on 81:

      lspci -vv -s 0000:81:00.0
      81:00.0 PCI bridge: Intel Corporation Device e2ff (rev 01) (prog-if 00 [Normal decode])
              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
              Latency: 0, Cache Line Size: 64 bytes
              Interrupt: pin A routed to IRQ 56
              Region 0: Memory at 20003000000 (64-bit, prefetchable) [size=8M]
              Bus: primary=81, secondary=82, subordinate=84, sec-latency=0
              Memory behind bridge: f7c00000-f7efffff
              Prefetchable memory behind bridge: 000001f800000000-0000020002ffffff
              Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
              BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
                      PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
              Capabilities: [40] Power Management version 3
                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                      Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
              Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
                      Address: 0000000000000000  Data: 0000
                      Masking: 00000000  Pending: 00000000
              Capabilities: [70] Express (v2) Upstream Port, MSI 00
                      DevCap: MaxPayload 256 bytes, PhantFunc 0
                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ SlotPowerLimit 75.000W
                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal+ Unsupported-
                              RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
                              MaxPayload 256 bytes, MaxReadReq 512 bytes
                      DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
                      LnkCap: Port #0, Speed unknown, Width x8, ASPM L1, Exit Latency L0s <4us, L1 <32us
                              ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
                      LnkCtl: ASPM Disabled; Disabled- CommClk+
                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                      LnkSta: Speed 16GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                      DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, OBFF Not Supported
                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                      LnkCtl2: Target Link Speed: Unknown, EnterCompliance- SpeedDis-
                               Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                               Compliance De-emphasis: -6dB
                      LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+
                               EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
              Capabilities: [100 v2] Advanced Error Reporting
                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                      UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                      AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
              Capabilities: [158 v1] #19
              Capabilities: [178 v1] #26
              Capabilities: [1a0 v1] #27
              Capabilities: [1c8 v1] #2a
              Capabilities: [1fc v1] Latency Tolerance Reporting
                      Max snoop latency: 0ns
                      Max no snoop latency: 0ns
              Capabilities: [204 v1] L1 PM Substates
                      L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                                PortCommonModeRestoreTime=10us PortTPowerOnTime=14us
              Capabilities: [220 v1] Vendor Specific Information: ID=0002 Rev=4 Len=100 <?>
              Capabilities: [320 v1] Vendor Specific Information: ID=0001 Rev=1 Len=038 <?>
              Capabilities: [358 v1] #25
              Kernel driver in use: pcieport
      

      Specifically there I see the correct width and speed of the PCIe interface for the card.

      Nothing shows up for 82 (I presume that's a bridge to get to the functions on the card)

      83 is the actual graphics processor itself:

      lspci -vv -s 0000:83:00.0
      83:00.0 VGA compatible controller: Intel Corporation Device e212 (prog-if 00 [VGA controller])
              Subsystem: Intel Corporation Device 1114
              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
              Region 0: Memory at 20002000000 (64-bit, prefetchable) [disabled] [size=16M]
              Region 2: Memory at 1f800000000 (64-bit, prefetchable) [disabled] [size=16G]
              Expansion ROM at f7c00000 [disabled] [size=2M]
              Capabilities: [40] Vendor Specific Information: Len=0c <?>
              Capabilities: [70] Express (v2) Endpoint, MSI 00
                      DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal+ Unsupported-
                              RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
                              MaxPayload 256 bytes, MaxReadReq 512 bytes
                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                      LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                              ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                      LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
                      DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR+, OBFF Not Supported
                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                               Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                               Compliance De-emphasis: -6dB
                      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                               EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
              Capabilities: [ac] MSI: Enable- Count=1/1 Maskable+ 64bit+
                      Address: 0000000000000000  Data: 0000
                      Masking: 00000000  Pending: 00000000
              Capabilities: [d0] Power Management version 3
                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                      Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
              Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
                      ARICap: MFVC- ACS-, Next Function: 0
                      ARICtl: MFVC- ACS-, Function Group: 0
              Capabilities: [110 v1] #00
              Capabilities: [200 v1] Address Translation Service (ATS)
                      ATSCap: Invalidate Queue Depth: 00
                      ATSCtl: Enable-, Smallest Translation Unit: 00
              Capabilities: [420 v1] #15
              Capabilities: [220 v1] #24
              Capabilities: [320 v1] Single Root I/O Virtualization (SR-IOV)
                      IOVCap: Migration-, Interrupt Message Number: 000
                      IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+
                      IOVSta: Migration-
                      Initial VFs: 2, Total VFs: 2, Number of VFs: 0, Function Dependency Link: 00
                      VF offset: 1, stride: 1, Device ID: e212
                      Supported Page Size: 00000553, System Page Size: 00000001
                      Region 0: Memory at 0000020000000000 (64-bit, prefetchable)
                      Region 2: Memory at 000001fc00000000 (64-bit, prefetchable)
                      VF Migration: offset: 00000000, BIR: 0
              Capabilities: [400 v1] Latency Tolerance Reporting
                      Max snoop latency: 0ns
                      Max no snoop latency: 0ns
              Kernel driver in use: pciback
      

      And 84 is the audio portion of the GPU...

      lspci -vv -s 0000:84:00.0
      84:00.0 Audio device: Intel Corporation Device e2f7
              Subsystem: Intel Corporation Device 1114
              Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
              Region 0: Memory at f7e00000 (64-bit, non-prefetchable) [disabled] [size=16K]
              Capabilities: [50] Power Management version 3
                      Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
                      Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
              Capabilities: [c0] Vendor Specific Information: Len=14 <?>
              Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
                      Address: 0000000000000000  Data: 0000
              Capabilities: [80] Express (v2) Endpoint, MSI 00
                      DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
                              ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
                      DevCtl: Report errors: Correctable- Non-Fatal- Fatal+ Unsupported-
                              RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
                              MaxPayload 256 bytes, MaxReadReq 512 bytes
                      DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                      LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                              ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                      LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                              ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                      LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                      DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR+, OBFF Not Supported
                      DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                      LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                               Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                               Compliance De-emphasis: -6dB
                      LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                               EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
              Capabilities: [100 v1] Advanced Error Reporting
                      UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                      UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                      UESvrt: DLP+ SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP+ ECRC- UnsupReq- ACSViol-
                      CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                      CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                      AERCap: First Error Pointer: 1f, GenCap- CGenEn- ChkCap- ChkEn-
              Capabilities: [140 v1] Latency Tolerance Reporting
                      Max snoop latency: 0ns
                      Max no snoop latency: 0ns
      

      As far as XO (from sources) is concerned, I can turn on pass-through for 83, but it doesn't show me 81, 82, or 84.

      Should I just manually block off 81-84 and pass all of those devices to the guest VM?

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      @yannsionneau I appreciate that. I will gladly provide access to the hardware if anybody in development wants to dig in and see what's going on.

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      So I ordered some mini DP dummy plugs and took a look at this further today.

      First thought...Just load Windows on the bare metal and see what the card does.

      No problem. Loaded Win10, loaded the latest drivers, PCIe Gen4x8 lanes. Sweet. At least that works.

      Put the XCP-ng drive back in, booted up, passed-through the GPU to a Win11 guest, updated the drivers, PCIe Gen1x1.

      Ultimately I need to install a Linux distro with a really current kernel on the bare metal and see how it sees the GPU. That might be a good project for tomorrow.

      I think this just comes down to a combination of too new, not well supported hardware with some quirks and somewhat dated code and support in XCP-ng (ReBAR support in guests for example).

      @redakula Is that GPU-z screenshot from a Windows guest VM with the A310 passed through?

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      Not to be a nuisance...But just curious if there are other thoughts on this.

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      @TeddyAstie

      I haven't cleared the PCI pass-through masking in Dom0, but below is the same lspci command from Dom0. I'm pretty sure I'm running the latest 8.3 with all the current patches. This could just be a kernel issue?

      lspci -vvxxxx -s 0000:83:00.0
      83:00.0 VGA compatible controller: Intel Corporation Device e212 (prog-if 00 [VGA controller])
      	Subsystem: Intel Corporation Device 1114
      	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
      	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
      	Region 0: Memory at 20002000000 (64-bit, prefetchable) [disabled] [size=16M]
      	Region 2: Memory at 1f800000000 (64-bit, prefetchable) [disabled] [size=16G]
      	Expansion ROM at f7c00000 [disabled] [size=2M]
      	Capabilities: [40] Vendor Specific Information: Len=0c <?>
      	Capabilities: [70] Express (v2) Endpoint, MSI 00
      		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
      			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
      		DevCtl:	Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported-
      			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
      			MaxPayload 256 bytes, MaxReadReq 512 bytes
      		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
      		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
      			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
      		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
      			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
      		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
      		DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR+, OBFF Not Supported
      		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
      		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
      			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
      			 Compliance De-emphasis: -6dB
      		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
      			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
      	Capabilities: [ac] MSI: Enable- Count=1/1 Maskable+ 64bit+
      		Address: 0000000000000000  Data: 0000
      		Masking: 00000000  Pending: 00000000
      	Capabilities: [d0] Power Management version 3
      		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
      		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
      	Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
      		ARICap:	MFVC- ACS-, Next Function: 0
      		ARICtl:	MFVC- ACS-, Function Group: 0
      	Capabilities: [110 v1] #00
      	Capabilities: [200 v1] Address Translation Service (ATS)
      		ATSCap:	Invalidate Queue Depth: 00
      		ATSCtl:	Enable-, Smallest Translation Unit: 00
      	Capabilities: [420 v1] #15
      	Capabilities: [220 v1] #24
      	Capabilities: [320 v1] Single Root I/O Virtualization (SR-IOV)
      		IOVCap:	Migration-, Interrupt Message Number: 000
      		IOVCtl:	Enable- Migration- Interrupt- MSE- ARIHierarchy+
      		IOVSta:	Migration-
      		Initial VFs: 2, Total VFs: 2, Number of VFs: 0, Function Dependency Link: 00
      		VF offset: 1, stride: 1, Device ID: e212
      		Supported Page Size: 00000553, System Page Size: 00000001
      		Region 0: Memory at 0000020000000000 (64-bit, prefetchable)
      		Region 2: Memory at 000001fc00000000 (64-bit, prefetchable)
      		VF Migration: offset: 00000000, BIR: 0
      	Capabilities: [400 v1] Latency Tolerance Reporting
      		Max snoop latency: 0ns
      		Max no snoop latency: 0ns
      	Kernel driver in use: pciback
      00: 86 80 12 e2 00 00 10 00 00 00 00 03 10 00 00 00
      10: 0c 00 00 02 00 02 00 00 0c 00 00 00 f8 01 00 00
      20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 14 11
      30: 00 00 c0 f7 40 00 00 00 00 00 00 00 ff 00 00 00
      40: 09 70 0c 01 0b 00 00 00 00 00 00 00 00 00 00 00
      50: c0 f9 00 00 00 00 00 00 00 40 00 00 00 00 00 00
      60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      70: 10 ac 02 00 e1 8f 00 10 37 29 00 00 11 0c 40 00
      80: 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00
      90: 00 00 00 00 12 08 13 00 00 10 00 00 02 00 00 00
      a0: 00 00 00 00 00 00 00 00 00 00 00 00 05 d0 80 01
      b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d0: 01 00 03 48 08 00 00 00 00 00 00 00 00 00 00 00
      e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f0: c7 21 80 ff 03 00 00 00 00 00 00 00 00 00 00 00
      100: 0e 00 01 11 00 00 00 00 00 00 00 00 00 00 00 00
      110: 00 00 01 20 00 14 00 00 00 00 00 00 00 00 00 00
      120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      200: 0f 00 01 42 20 00 00 00 00 00 00 00 00 00 00 00
      210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      220: 24 00 01 32 00 f0 07 00 22 0d 00 00 00 00 00 00
      230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      300: 13 00 01 32 00 00 00 81 00 80 00 00 00 00 00 00
      310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      320: 10 00 01 40 06 00 00 00 10 00 00 00 02 00 02 00
      330: 00 00 00 00 01 00 01 00 00 00 12 e2 53 05 00 00
      340: 01 00 00 00 0c 00 00 00 00 02 00 00 0c 00 00 00
      350: fc 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      400: 18 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
      410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      420: 15 00 01 22 00 f0 07 00 22 0e 00 00 00 00 00 00
      430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      
      
      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      @john.c

      Yes indeed. SVM has been enabled as well as SR-IOV and IOMMU.

      That should be all good for full virtualization and support pass-through and SR-IOV features.

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      @anglerfish27 Supermicro H12SSL-i

      I've dabbled with some PCIe settings, but I'm not really getting anywhere.

      Here's a link to the manual:

      https://www.supermicro.com/manuals/motherboard/EPYC7000/MNL-2314.pdf

      Thanks!

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      @redakula

      First, thanks for chiming in. Second...I'll admit that I'm ignorant here. This is not an area that I have any real experience.

      The Intel doc reference (paraphrasing here) "magic lspci" options that will truly show you that the GPU isn't really running in Gen1x1 and that deeper down, its truly working as intended. I wish they would have just included the super-secret magic lspci options needed to show this is the case...But they didn't.

      The best I can see from lspci -vvxxxx is it still only shows Gen1x1

      00:08.0 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics] (prog-if 00 [VGA controller])
      	Subsystem: Intel Corporation Device 1114
      	Physical Slot: 8
      	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
      	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
      	Latency: 0
      	Interrupt: pin ? routed to IRQ 79
      	Region 0: Memory at f1000000 (64-bit, prefetchable) [size=16M]
      	Region 2: Memory at 400000000 (64-bit, prefetchable) [size=16G]
      	Expansion ROM at 000c0000 [disabled] [size=128K]
      	Capabilities: [40] Vendor Specific Information: Len=0c <?>
      	Capabilities: [70] Express (v2) Endpoint, IntMsgNum 0
      		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
      			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0W TEE-IO-
      		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
      			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
      			MaxPayload 128 bytes, MaxReadReq 512 bytes
      		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
      		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
      			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
      		LnkCtl:	ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk-
      			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
      		LnkSta:	Speed 2.5GT/s, Width x1
      			TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
      		DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
      			 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix-
      			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
      			 FRS- TPHComp- ExtTPHComp-
      			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
      		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
      			 AtomicOpsCtl: ReqEn-
      			 IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq-
      			 10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
      		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
      			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
      			 Retimer- 2Retimers- CrosslinkRes: unsupported
      	Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit+
      		Address: 00000000feed7000  Data: 0700
      	Capabilities: [d0] Power Management version 3
      		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
      		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
      	Kernel driver in use: xe
      	Kernel modules: xe
      00: 86 80 12 e2 07 04 10 00 00 00 00 03 00 00 00 00
      10: 0c 00 00 f1 00 00 00 00 0c 00 00 00 04 00 00 00
      20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 14 11
      30: 00 00 00 f2 40 00 00 00 00 00 00 00 ff 00 00 00
      40: 09 70 0c 01 0b 00 00 00 00 00 00 00 00 00 00 00
      50: c0 f9 00 00 00 00 00 00 00 40 00 00 00 00 00 00
      60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      70: 10 ac 02 00 e1 8f 00 00 10 29 00 00 11 0c 40 00
      80: 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00
      90: 00 00 00 00 12 08 13 00 00 00 00 00 02 00 00 00
      a0: 01 00 00 00 00 00 00 00 00 00 00 00 05 d0 81 00
      b0: 00 70 ed fe 00 00 00 00 00 07 00 00 00 00 00 00
      c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      d0: 01 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00
      e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      f0: c7 21 80 ff 03 00 00 00 00 00 00 00 00 00 00 00
      
      

      When I ask the system what it thinks the capabilities are, again I get Gen1x1:

      cat /sys/bus/pci/devices/0000:00:08.0/current_link_speed
      2.5 GT/s PCIe
      cat /sys/bus/pci/devices/0000:00:08.0/current_link_width
      1
      cat /sys/bus/pci/devices/0000:00:08.0/max_link_speed
      2.5 GT/s PCIe
      cat /sys/bus/pci/devices/0000:00:08.0/max_link_width
      1

      I know I'm a bit out in uncharted territory here. I don't think XCP-ng supports ReBAR via pass-through (I think that's on the road-map for XenServer9 and maybe XCP-ng 9 as well), current gen GPUs all want ReBAR support, Intel GPU's are in a mostly experimental/developmental mode and might be having a murky future anyway...

      Anyway...From my completely uninformed and ignorant position, it doesn't look like it's negotiating PCIe properly through XCP-ng.

      posted in Compute
      J
      JamesG
    • RE: PCIe Pass-through lanes and lane performance

      @acebmxer Supermicro server systems. The Eypc CPU's have 128 lanes of PCIe Gen4. The cards are inserted into appropriate slots.

      I just updated the BIOS and BMC code on the server with the Intel GPU. I went through and re-enabled all the SR-IOV stuff and made sure ReBAR was enabled.

      Still, GPU-Z reports that a Windows guest with the Intel GPU passed-through is linked up with a single lane of PCIe gen 1.

      I suppose that could be cosmetic, however passing through the same Intel GPU to a Debian VM has issues when trying to initialize the card on boot and I can't get it to work there at all. It will at least do something in Windows.

      posted in Compute
      J
      JamesG
    • PCIe Pass-through lanes and lane performance

      A curiosity here...

      I've got two (identical) hosts in a pool (2nd Gen Epyc).

      Host 1 has an NVidia Tesla P4 GPU passed-through to a VM.
      Host 2 has an Intel B50 Pro GPU passed-through to a VM.

      I've been attempting to get the Intel GPU running properly in a VM.

      The NVidia GPU is PCIe Gen3 x16.
      The Intel should be PCIe Gen5 x8, but should not have any issues running at PCIe Gen4 x8.

      The NVidia GPU shows up as PCIe Gen3 x16 lanes.
      The Intel GPU shows up as PCIe Gen1 x1 lane (and as such does not work).

      What determines how many of what generation PCIe lanes gets passed through? Is XCP-ng just not sorting out the Intel GPU properly?

      I'm pretty sure the BIOS settings are the same between the two hosts, but I'll see about doing a full comparison between the two.

      Thanks!

      James

      posted in Compute
      J
      JamesG