From: "Lucio Andrés Illanes Albornoz" <l.illanes@gmx.de>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: Alex Deucher <alexdeucher@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] AMD video card passthrough reset issues
Date: Tue, 2 Dec 2014 17:14:56 +0100 [thread overview]
Message-ID: <20141202171456.5c3477c6@lucio-pc> (raw)
In-Reply-To: <1417533980.6539.11.camel@ul30vt.home>
On Tue, 02 Dec 2014 08:26:20 -0700 Alex Williamson <alex.williamson@redhat.com> wrote:
> All of the Bonaire-based AMD GPUs seems to have issues with reset
> (R7790, R7 260/X). I've tried to engage AMD on this, but haven't gotten
> any response on this topic yet. For devices like this that don't
> support any kind of function level reset (FLR), VFIO will try to do a
> PCI bus reset on guest reboot. This is as close as we can get to how
> the BIOS resets the device on a host reboot. Unfortunately on these
> cards there seems to be some sort of disconnect between the PCI bus
> interface reset and resetting the rest of the GPU. I believe I've even
> seen cases where a PCI bus reset appears to have no affect on the GPU
> when running in VGA mode. My best guess is that some firmware running
> in the card isn't clearing itself on reset an attempting to reload it
> causes errors. Note that a guest can be reset multiple times and the
> device continues to work if the guest is restricted to standard VGA
> drivers (in VGA passthrough mode of course).
My experience is consistent with that description; the bus reset initiated through the hotplug reset interface appears to leave whichever part(s) of my video card in a state the AMD driver is not prepared to handle upon 2nd bootup (e.g. first VM reboot) and thereafter, it's completely gone: endless amounts of IOTLB_INV_TIMEOUT and `Completion-Wait loop timed out' kernel messages and particularly, no VGA output at all when doing primary passthrough (which I no longer require since vgacon isn't too fond of that,) and possibly even hangs upon running lspci (8) afterwards (if I remember correctly, that is.)
I had originally intended to have QEMU trace MMIO in general and PCI{,-E} bus/device traffic (as relevant) in order to establish what arcane incantations Windows could possibly be performing, but that only ended up showing me PCI configuration space read I/O and IRQ reassignments upon disabling my video card; WinDbg/Kd* is far too slow to facilitate tracing PCI{,-E} traffic through breakpoints and were I to possess the Windows Research Kernel source code, speaking completely hypothetically here, I would then unfortunately have to find out that QEMU w/ KVM plus AMD's drivers doesn't go along too well w/ Windows Server 2003. I then figured that having drivers/vfio/pci/* produce that information should ultimately lead me towards the solution but I can't quite see to that just yet; the remove/rescan dance is the only thing that, pragmatically speaking, actually works for me at present.
> In your experiment with removing and rescanning the device, are you
> simply doing 'echo 1 > remove; echo 1 > /sys/bus/pci/rescan'? Thanks,
Yes.
next prev parent reply other threads:[~2014-12-02 16:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-02 12:53 [Qemu-devel] AMD video card passthrough reset issues Lucio Andrés Illanes Albornoz
2014-12-02 15:26 ` Alex Williamson
2014-12-02 16:14 ` Lucio Andrés Illanes Albornoz [this message]
2014-12-08 14:11 ` Lucio Andrés Illanes Albornoz
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=20141202171456.5c3477c6@lucio-pc \
--to=l.illanes@gmx.de \
--cc=alex.williamson@redhat.com \
--cc=alexdeucher@gmail.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).