qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [Bug 795866] Re: pci passthrough doe sn´t work


From: steo
Subject: [Qemu-devel] [Bug 795866] Re: pci passthrough doe sn´t work
Date: Sat, 11 Jun 2011 09:42:45 -0000

lspci - output on guest:

00:04.0 Multimedia video controller: Micronas Semiconductor Holding AG Device 
0720 (rev 01)
        Subsystem: Micronas Semiconductor Holding AG Device dd00
        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 29
        Region 0: Memory at f2030000 (32-bit, non-prefetchable) [size=64K]
        Region 1: Memory at f2040000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: <access denied>
        Kernel driver in use: ngene
        Kernel modules: ngene

00:05.0 Multimedia video controller: Micronas Semiconductor Holding AG Device 
0720 (rev 01)
        Subsystem: Micronas Semiconductor Holding AG Device dd00
        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+
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at f2050000 (32-bit, non-prefetchable) [size=64K]
        Region 1: Memory at f2060000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: <access denied>
        Kernel modules: ngene


IRQ 11 not working.
IRQ 29 working

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/795866

Title:
  pci passthrough doesn´t work

Status in QEMU:
  New

Bug description:
  Hi all,

  I have some problems passing through a pci device to kvm guest.
  First I have to say that I´m using the latest kvm-kernel und qemu-kvm from 
git-tree (Date 11.06.2011).

  I want´t to passthrough this device to guest:

  lspci-output:

  02:00.0 Multimedia video controller: Micronas Semiconductor Holding AG
  Device 0720 (rev 01)

  So at first I have bind the driver to psi-stub:

  modprobe -r kvm-intel
  modprobe -r kvm
  echo "18c3 0720" > /sys/bus/pci/drivers/pci-stub/new_id
  echo 0000:02:00.0  > /sys/bus/pci/devices/0000:02:00.0/driver/unbind
  echo 0000:02:00.0  > /sys/bus/pci/drivers/pci-stub/bind
  modprobe kvm
  modprobe kvm-intel

  Then I have assigned device to guest:
  -device pci-assign,host=02:00.0

  When I start the guest. The device succesfully get´s an msi-IRQ on
  host-system:

  cat /proc/interrupt output:

   32:          0          0          0          0   PCI-MSI-edge
  kvm_assigned_msi_device

  
  On guest device is visibel:

  lspci output:
  00:04.0 Multimedia video controller: Micronas Semiconductor Holding AG Device 
0720 (rev 01)

  
  Sometimes the device (on guest) get´s an IRQ between 10-16:

  00:05.0 Multimedia video controller: Micronas Semiconductor Holding AG Device 
0720 (rev 01)
          Subsystem: Micronas Semiconductor Holding AG Device dd00
          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+
          Interrupt: pin A routed to IRQ 11
          Region 0: Memory at f2050000 (32-bit, non-prefetchable) [size=64K]
          Region 1: Memory at f2060000 (32-bit, non-prefetchable) [size=64K]
          Capabilities: [58] Express (v1) Endpoint, MSI 00
                  DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, 
L1 <1us
                          ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
                  DevCtl: Report errors: Correctable- Non-Fatal- Fatal- 
Unsupported-
                          RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                          MaxPayload 128 bytes, MaxReadReq 128 bytes
                  DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- 
TransPend-
                  LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency 
L0 unlimited, L1 unlimited
                          ClockPM- Suprise- LLActRep- BwNot-
                  LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- 
CommClk+
                          ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                  LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- 
DLActive- BWMgmt- ABWMgmt-
          Capabilities: [40] Power Management version 2
                  Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                  Status: D0 PME-Enable- DSel=0 DScale=0 PME-
          Capabilities: [48] Message Signalled Interrupts: Mask- 64bit- 
Queue=0/0 Enable-
                  Address: 00000000  Data: 0000
          Kernel modules: ngene

  
  In this case the kernel-modul (ngene) can not access the device:

  dmesg | grep ngene

  [   69.977900] ngene 0000:00:05.0: PCI INT A -> Link[LNKA] -> GSI 11 (level, 
high) -> IRQ 11
  [   69.977909] ngene: Found Linux4Media cineS2 DVB-S2 Twin Tuner (v5)
  [   69.978962] ngene 0000:00:05.0: setting latency timer to 64
  [   69.979118] ngene: Device version 1
  [   69.979129] ngene 0000:00:05.0: firmware: requesting ngene_18.fw
  [   69.980884] ngene: Loading firmware file ngene_18.fw.
  [   71.981052] ngene: Command timeout cmd=01 prev=00
  [   71.981205] host_to_ngene (c000): 01 00 00 00 00 00 00 00
  [   71.981457] ngene_to_host (c100): 00 00 00 00 00 00 00 00
  [   71.981704] dev->hosttongene (ec902000): 01 00 00 00 00 00 00 00
  [   71.981963] dev->ngenetohost (ec902100): 00 00 00 00 00 00 00 00
  [   73.985111] ngene: Command timeout cmd=02 prev=00
  [   73.985415] host_to_ngene (c000): 02 04 00 d0 00 04 00 00
  [   73.985684] ngene_to_host (c100): 00 00 00 00 00 00 00 00
  [   73.985931] dev->hosttongene (ec902000): 02 04 00 d0 00 04 00 00
  [   73.986191] dev->ngenetohost (ec902100): 00 00 00 00 00 00 00 00
  [   73.986568] ngene 0000:00:05.0: PCI INT A disabled
  [   73.986584] ngene: probe of 0000:00:05.0 failed with error -1

  
  Sometimes the device (on guest) gets an msi-irq f. e. IRQ 29.
  Then kernel-modul (ngene) can succesfully load the driver and all works fine.

  
  Short to say:

  HOST  GUEST           STATUS
  MSI-IRQ       MSI-IRQ         ALL FINE
  MSI-IRQ IOAPIC-IRQ    DOESN´t WORK

  with modinfo I had a look at the kernel-modul if there is way to force
  msi, but without success.

  But I think IRQ between (10-16) should also work because when I load the 
kernel-modul on host with IRQ (10-16)
  it works. (Device only get´s an MSI-IRQ If I start the vm to passthrough)

  Do anyone know where can be the problem?

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/795866/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]