From: Philipp Hahn <hahn@univention.de>
To: qemu-devel@nongnu.org, Anthony Liguori <anthony@codemonkey.ws>
Cc: dann frazier <dann.frazier@canonical.com>
Subject: Re: [Qemu-devel] [PATCH] e1000: Don't set the Capabilities List bit
Date: Fri, 19 Oct 2012 11:59:24 +0200 [thread overview]
Message-ID: <201210191159.29855.hahn@univention.de> (raw)
In-Reply-To: <1316635586-4586-1-git-send-email-dann.frazier@canonical.com>
[-- Attachment #1: Type: text/plain, Size: 2578 bytes --]
Hello,
On Wednesday 21 September 2011 22:06:25 dann frazier wrote:
> The Capabilities Pointer is NULL, so this bit shouldn't be set. The state
> of this bit doesn't appear to change any behavior on Linux/Windows versions
> we've tested, but it does cause Windows' PCI/PCI Express Compliance Test to
> balk.
...
> +++ b/hw/e1000.c
> @@ -1151,8 +1151,6 @@ static int pci_e1000_init(PCIDevice *pci_dev)
...
> - /* TODO: we have no capabilities, so why is this bit set? */
> - pci_set_word(pci_conf + PCI_STATUS, PCI_STATUS_CAP_LIST);
I think that change introduced a upgrade problem:
We have several VMs initially setup with qemu-0.12 and 0.14. Over the time of
years we've created lots of snapshots, which we'd like to keep.
Now it's time to upgrade qemu(-kvm) on our hosts to qemu-1.1.2, but trying to
load the old save states failes with
qemu: warning: error while loading state for instance 0x0 of
device '0000:00:03.0/e1000'
I traced it down to get_pci_config_device() failung for the e1000, because of
that changed bit:
(gdb) print /x config@256
$23 = {0x86, 0x80, 0xe, 0x10, 0x7, 0x0, 0x18, 0x0, 0x3, 0x0, 0x0, 0x2, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf2, 0x41, 0xc0, 0x0 <repeats 22 times>, 0xf4,
0x1a, 0x0, 0x11, 0x0, 0x0, 0x4, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0xb, 0x1, 0x0 <repeats 194 times>}
(gdb) print /x *s->config@256
$25 = {0x86, 0x80, 0xe, 0x10, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x2, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0 <repeats 23 times>, 0xf4, 0x1a,
0x0, 0x11, 0x0 <repeats 13 times>, 0x1, 0x0 <repeats 194 times>}
Since cmask[PCI_STATUS=6] = PCI_STATUS_CAP_LIST=0x10 marks that bit as
unmodifiable, the functions returns an error and aborts loading the saved
state.
Is this problem known?
Is such an upgrade of qemu supposed to work?
Has somebody an idea how to fix this issue?
Sincerely
Philipp Hahn
PS: It would be nice if the error message could indicate an error because of
an incompatible PCI configuration. I had a very similar problem with the
rtl8139 card, where the ROM size was changed due to the upgrade from
etherboot to iPXE.
PPS: It's slightly confusing to get a 'warning' message starting with 'error
loading ...'
--
Philipp Hahn Open Source Software Engineer hahn@univention.de
Univention GmbH be open. fon: +49 421 22 232- 0
Mary-Somerville-Str.1 D-28359 Bremen fax: +49 421 22 232-99
http://www.univention.de/
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2012-10-19 9:59 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-21 20:06 [Qemu-devel] [PATCH] e1000: Don't set the Capabilities List bit dann frazier
2011-09-23 16:06 ` Anthony Liguori
2012-10-19 9:59 ` Philipp Hahn [this message]
2012-10-19 11:02 ` Philipp Hahn
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=201210191159.29855.hahn@univention.de \
--to=hahn@univention.de \
--cc=anthony@codemonkey.ws \
--cc=dann.frazier@canonical.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).