From: Jan Kiszka <jan.kiszka@web.de>
To: Bug 795866 <795866@bugs.launchpad.net>
Cc: qemu-devel@nongnu.org, kvm <kvm@vger.kernel.org>
Subject: Re: [Bug 795866] [NEW] pci passthrough doesn´t work
Date: Sat, 11 Jun 2011 11:21:07 +0200 [thread overview]
Message-ID: <4DF33383.30307@web.de> (raw)
In-Reply-To: <20110611090523.29022.40154.malonedeb@soybean.canonical.com>
[-- Attachment #1: Type: text/plain, Size: 5411 bytes --]
On 2011-06-11 11:05, steo wrote:
> Public bug reported:
>
> 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?
Does '-device pci-assign,host=02:00.0,prefer_msi=off' help?
>
> ** Affects: qemu
> Importance: Undecided
> Status: New
>
You filed against the wrong component, device assignment is a qemu-kvm
feature, not yet one of qemu.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Jan Kiszka <jan.kiszka@web.de>
To: Bug 795866 <795866@bugs.launchpad.net>
Cc: qemu-devel@nongnu.org, kvm <kvm@vger.kernel.org>
Subject: Re: [Qemu-devel] [Bug 795866] [NEW] pci passthrough doesn´t work
Date: Sat, 11 Jun 2011 11:21:07 +0200 [thread overview]
Message-ID: <4DF33383.30307@web.de> (raw)
In-Reply-To: <20110611090523.29022.40154.malonedeb@soybean.canonical.com>
[-- Attachment #1: Type: text/plain, Size: 5411 bytes --]
On 2011-06-11 11:05, steo wrote:
> Public bug reported:
>
> 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?
Does '-device pci-assign,host=02:00.0,prefer_msi=off' help?
>
> ** Affects: qemu
> Importance: Undecided
> Status: New
>
You filed against the wrong component, device assignment is a qemu-kvm
feature, not yet one of qemu.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
next prev parent reply other threads:[~2011-06-11 9:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-11 9:05 [Qemu-devel] [Bug 795866] [NEW] pci passthrough doesn´t work steo
2011-06-11 9:21 ` Jan Kiszka [this message]
2011-06-11 9:21 ` Jan Kiszka
2011-06-11 9:41 ` [Qemu-devel] [Bug 795866] " steo
2011-06-11 9:42 ` steo
2017-03-07 22:19 ` Thomas Huth
2017-05-07 4:17 ` Launchpad Bug Tracker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DF33383.30307@web.de \
--to=jan.kiszka@web.de \
--cc=795866@bugs.launchpad.net \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.