From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Anthony PERARD <anthony.perard@citrix.com>,
xen-devel@lists.xenproject.org, stefano.stabellini@citrix.com
Subject: Re: qemu-xen-dir + PCI passthrough = BOOM
Date: Wed, 18 Dec 2013 10:22:35 -0500 [thread overview]
Message-ID: <20131218152235.GG4934@phenom.dumpdata.com> (raw)
In-Reply-To: <1387378646.28680.48.camel@kazak.uk.xensource.com>
On Wed, Dec 18, 2013 at 02:57:26PM +0000, Ian Campbell wrote:
> On Wed, 2013-12-18 at 14:48 +0000, Anthony PERARD wrote:
> > On Mon, Dec 16, 2013 at 10:08:16AM -0500, Konrad Rzeszutek Wilk wrote:
> > > On Fri, Dec 06, 2013 at 04:03:10PM +0000, Wei Liu wrote:
> > > > On Fri, Dec 06, 2013 at 04:00:18PM +0000, Wei Liu wrote:
> > > > [...]
> > > > > > Those Xen report something like:
> > > > > > (XEN) page_alloc.c:1460:d0 Over-allocation for domain 46: 131329 >
> > > > > > 131328
> > > > > > (XEN) memory.c:132:d0 Could not allocate order=0 extent: id=46
> > > > > > memflags=0 (62 of 64)
> > > > > >
> > > > > > ?
> > > > > >
> > > > > > (I tryied to reproduce the issue by simply add many emulated e1000 in
> > > > > > QEMU :) )
> > > > > >
> >
> > > -bash-4.1# lspci -s 01:00.0 -v
> > > 01:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
> > > Subsystem: Intel Corporation Gigabit ET Dual Port Server Adapter
> > > Flags: fast devsel, IRQ 16
> > > Memory at fbc20000 (32-bit, non-prefetchable) [disabled] [size=128K]
> > > Memory at fb800000 (32-bit, non-prefetchable) [disabled] [size=4M]
> > > I/O ports at e020 [disabled] [size=32]
> > > Memory at fbc44000 (32-bit, non-prefetchable) [disabled] [size=16K]
> > > Expansion ROM at fb400000 [disabled] [size=4M]
> >
> > BTW, I think this is the issue, the Expansion ROM. qemu-xen will
> > allocate memory for it. Will have maybe have to find another way.
> > qemu-trad those not seems to allocate memory, but I haven't been very
> > far in trying to check that.
>
> This might SeaBIOS, since it is the BIOS which runs the expansion roms.
>
> ROMBIOS didn't run expansion ROMS, instead IIRC you have to extract the
> ones you care about from the device(s) and build them into hvmloader
> (somehow) to be predeployed.
In 'rombios_load_roms' I see:
106 option_rom_phys_addr = etherboot_phys_addr + etherboot_sz;
107 option_rom_sz = pci_load_option_roms(OPTIONROM_PHYSICAL_END,
108 option_rom_phys_addr);
109
110 printf("Option ROMs:\n");
111 if ( vgabios_sz )
112 printf(" %05x-%05x: VGA BIOS\n",
113 VGABIOS_PHYSICAL_ADDRESS,
114 VGABIOS_PHYSICAL_ADDRESS + vgabios_sz - 1);
115 if ( etherboot_sz )
116 printf(" %05x-%05x: Etherboot ROM\n",
117 etherboot_phys_addr,
118 etherboot_phys_addr + etherboot_sz - 1);
119 if ( option_rom_sz )
120 printf(" %05x-%05x: PCI Option ROMs\n",
121 option_rom_phys_addr,
122 option_rom_phys_addr + option_rom_sz - 1);
seems to imply that it sets it up. Doing a git log on rombios
shows this:
commit c2901a5cc44c85a9ceeebd47ff21946bb35ba930
Author: Keir Fraser <keir.fraser@citrix.com>
Date: Tue Mar 31 14:04:50 2009 +0100
hvmloader: ROMBIOS must POST in big real mode, since it supports PMM,
and hence Option ROMs can expect noi segment limit checks.
which would imply that the Option ROMs would be loaded and run.
>
> Could try building a seabios without CONFIG_OPTIONROMS (edit
> tools/firmware/seabios-config) and see if that helps -- although not if
> there is some other essential option rom of course.
>
> That's not the solution but it would help diagnose the issue.
Looking at hvmloader in 'pci_load_option_roms' I see:
165 /*
166 * Currently only scan options from mass storage devices and serial
167 * bus controller (Fibre Channel included).
168 */
169 if ( (class != 0x1) && (class != 0xc) )
170 continue;
Which would imply that the option rom for the NIC is not loaded.
But more interestingly, the hvmloader has this:
136 struct bios_config seabios_config = {
137 .name = "SeaBIOS",
138
139 .image = seabios,
140 .image_size = sizeof(seabios),
141
142 .bios_address = 0x100000 - sizeof(seabios),
143
144 .load_roms = NULL,
145
146 .bios_load = NULL,
147
load_roms and bios_load are not set - so it wouldn't even do it.
It only does it for Bochs BIOS.
>
> Ian.
>
next prev parent reply other threads:[~2013-12-18 15:22 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-04 19:51 qemu-xen-dir + PCI passthrough = BOOM Konrad Rzeszutek Wilk
2013-12-05 12:16 ` Anthony PERARD
2013-12-06 14:49 ` Konrad Rzeszutek Wilk
2013-12-06 15:35 ` Anthony PERARD
2013-12-06 16:00 ` Wei Liu
2013-12-06 16:03 ` Wei Liu
2013-12-16 15:08 ` Konrad Rzeszutek Wilk
2013-12-18 14:48 ` Anthony PERARD
2013-12-18 14:57 ` Ian Campbell
2013-12-18 15:22 ` Konrad Rzeszutek Wilk [this message]
2013-12-18 16:13 ` Ian Campbell
2013-12-18 16:18 ` Konrad Rzeszutek Wilk
2013-12-22 11:25 ` Wu, Feng
2013-12-31 15:30 ` Konrad Rzeszutek Wilk
2014-01-06 9:54 ` Ian Campbell
2014-01-07 0:27 ` Wu, Feng
2014-01-08 19:44 ` Konrad Rzeszutek Wilk
2014-01-09 14:56 ` Anthony PERARD
2014-01-09 15:36 ` Pasi Kärkkäinen
2014-01-09 15:43 ` Pasi Kärkkäinen
2014-01-09 23:54 ` Sander Eikelenboom
2014-01-10 0:17 ` Sander Eikelenboom
2014-01-10 0:22 ` Sander Eikelenboom
2014-01-10 3:28 ` Konrad Rzeszutek Wilk
2014-01-10 15:19 ` Anthony PERARD
2014-01-10 16:05 ` Sander Eikelenboom
2014-01-10 16:25 ` Anthony PERARD
2014-01-10 16:38 ` Sander Eikelenboom
2014-01-10 16:35 ` Konrad Rzeszutek Wilk
2014-01-10 17:38 ` Sander Eikelenboom
2014-01-10 18:01 ` Konrad Rzeszutek Wilk
2014-01-26 0:05 ` Zhang, Yang Z
2014-01-27 12:12 ` Stefano Stabellini
2014-01-27 15:34 ` Zhang, Yang Z
2014-01-27 15:37 ` Stefano Stabellini
2014-01-31 15:23 ` Stefano Stabellini
2014-01-26 2:15 ` Zhang, Yang Z
2014-01-16 6:40 ` Zhang, Yang Z
2014-01-16 11:36 ` Konrad Rzeszutek Wilk
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=20131218152235.GG4934@phenom.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=Ian.Campbell@citrix.com \
--cc=anthony.perard@citrix.com \
--cc=stefano.stabellini@citrix.com \
--cc=xen-devel@lists.xenproject.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).