From: Alex Williamson <alex.williamson@hp.com>
To: "Yang, Sheng" <sheng.yang@intel.com>
Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH] kvm: device-assignment: Add PCI option ROM support
Date: Thu, 18 Jun 2009 10:28:41 -0600 [thread overview]
Message-ID: <1245342521.17330.65.camel@bling> (raw)
In-Reply-To: <200906181330.57935.sheng.yang@intel.com>
On Thu, 2009-06-18 at 13:30 +0800, Yang, Sheng wrote:
> On Tuesday 16 June 2009 00:29:17 Alex Williamson wrote:
> > The PCI code already knows about option ROMs, so we just need to
> > mmap some space for it, load it with a copy of the contents, and
> > complete the plubming to the generic code.
> >
> > With this a Linux guest can get access to the ROM contents via
> > /sys/bus/pci/devices/<dev>/rom. This might also enable the BIOS
> > to execute ROMs by loading them dynamically from the device
> > rather than hoping they all fit into RAM.
> >
> The patch looks fine. One question: if guest write to the ROM, I think the
> guest would be killed for QEmu would receive a SIGSEGV? I am not sure if it's
> too severe...
Hi Sheng,
Good thought. I tested this with a simple program that mmaps the ROM
address from /dev/mem and tries to write to it (using setpci to enable
the ROM). The results are a little surprising. On the host, writing to
the ROM causes an NMI and the system dies. On the KVM guest, the write
is happily discarded, neither segfaulting from the mprotect nor
affecting the contents of the ROM. So it seems that something above my
mprotect is discarding the write, and if we did hit it, a qemu segfault
isn't that far from what happens on bare metal.
The one oddity I noticed is that even when the enable bit is clear, the
guest can read the ROM. I don't know that this is actually illegal, vs
returning zeros or ones though. It seems like maybe the generic PCI
code isn't tracking the enable bit. I think that's an independent
problem from this patch though. Thanks,
Alex
next prev parent reply other threads:[~2009-06-18 16:28 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-15 16:29 [PATCH] kvm: device-assignment: Add PCI option ROM support Alex Williamson
2009-06-18 5:30 ` Yang, Sheng
2009-06-18 16:28 ` Alex Williamson [this message]
2009-06-19 7:27 ` Yang, Sheng
2009-06-19 13:44 ` Alex Williamson
2009-06-22 5:32 ` Yang, Sheng
2009-06-22 16:09 ` Alex Williamson
2009-06-23 1:25 ` Yang, Sheng
2009-06-22 8:38 ` Avi Kivity
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=1245342521.17330.65.camel@bling \
--to=alex.williamson@hp.com \
--cc=kvm@vger.kernel.org \
--cc=sheng.yang@intel.com \
/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