From: "Daniel P. Berrange" <berrange-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: David Brown <dmlb2000-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: 2.6.21.1 and kvm-21 just plain stopped...
Date: Tue, 1 May 2007 17:20:28 +0100 [thread overview]
Message-ID: <20070501162028.GC3995@redhat.com> (raw)
In-Reply-To: <9c21eeae0704301145w5051a40fgc87e3f1377ebfbba-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 1462 bytes --]
On Mon, Apr 30, 2007 at 11:45:36AM -0700, David Brown wrote:
> > Host cpu type, host bitness, guest bitness, and qemu command line please.
> >
>
> root@dmlb2010-lappy:~# cat /root/bin/start-debian
> #!/bin/bash
>
> KVER="2.6.18-4-686"
> INITRD_BASE="initrd"
> INITRD_APPEND=".img"
> APPEND="ro root=/dev/hda1"
> DEV=mapper/VolGroup00-debian
> BOOT=mapper/VolGroup00-debian--boot
>
> qemu -kernel "/root/boot/vmlinuz-${KVER}" \
> -initrd "/root/boot/${INITRD_BASE}${INITRD_APPEND}-${KVER}" \
> -append "${APPEND}" \
> -m 512 --no-rtc \
> \
> -usb \
> -soundhw es1370 \
> -net nic,vlan0,macaddr=52:54:56:34:12:00 \
> -net tap,vlan=0,ifname=tap0 \
> -hdb "/dev/$BOOT" \
> /dev/$DEV
> root@dmlb2010-lappy:~#
How big is your initrd image ? There was a QEMU bug which causes the
end of the initrd to be overwritten by the kernel if the initd was
larger than 1 MB IIRC. Upstream QEMU CVS has the patch, but the current
KVM SVN repo does not seem to have it. I'm attaching the patch we applied
to KVM-19's copy of QEMU in Fedora to fix, although it doesn't apply cleanly
to current KVM dev.
Regards,
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
[-- Attachment #2: kvm-19-initrd.patch --]
[-- Type: text/plain, Size: 2923 bytes --]
Index: hw/pc.c
===================================================================
RCS file: /sources/qemu/qemu/hw/pc.c,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -p -r1.71 -r1.72
--- hw/pc.c 5 Mar 2007 19:44:02 -0000 1.71
+++ hw/pc.c 31 Mar 2007 19:41:22 -0000 1.72
@@ -32,9 +32,11 @@
#define LINUX_BOOT_FILENAME "linux_boot.bin"
#define KERNEL_LOAD_ADDR 0x00100000
-#define INITRD_LOAD_ADDR 0x00600000
+#define MAX_INITRD_LOAD_ADDR 0x38000000
#define KERNEL_PARAMS_ADDR 0x00090000
#define KERNEL_CMDLINE_ADDR 0x00099000
+/* Leave a chunk of memory at the top of RAM for the BIOS ACPI tables. */
+#define ACPI_DATA_SIZE 0x10000
static fdctrl_t *floppy_controller;
static RTCState *rtc_state;
@@ -452,6 +454,7 @@ static void pc_init1(int ram_size, int v
char buf[1024];
int ret, linux_boot, initrd_size, i;
ram_addr_t ram_addr, vga_ram_addr, bios_offset, vga_bios_offset;
+ ram_addr_t initrd_offset;
int bios_size, isa_bios_size, vga_bios_size;
PCIBus *pci_bus;
int piix3_devfn = -1;
@@ -599,8 +602,28 @@ static void pc_init1(int ram_size, int v
/* load initrd */
initrd_size = 0;
+ initrd_offset = 0;
if (initrd_filename) {
- initrd_size = load_image(initrd_filename, phys_ram_base + INITRD_LOAD_ADDR);
+ initrd_size = get_image_size (initrd_filename);
+ if (initrd_size > 0) {
+ initrd_offset = (ram_size - initrd_size) & TARGET_PAGE_MASK;
+ /* Leave space for BIOS ACPI tables. */
+ initrd_offset -= ACPI_DATA_SIZE;
+ /* Avoid the last 64k to avoid 2.2.x kernel bugs. */
+ initrd_offset -= 0x10000;
+ if (initrd_offset > MAX_INITRD_LOAD_ADDR)
+ initrd_offset = MAX_INITRD_LOAD_ADDR;
+
+ if (initrd_size > ram_size
+ || initrd_offset < KERNEL_LOAD_ADDR + ret) {
+ fprintf(stderr,
+ "qemu: memory too small for initial ram disk '%s'\n",
+ initrd_filename);
+ exit(1);
+ }
+ initrd_size = load_image(initrd_filename,
+ phys_ram_base + initrd_offset);
+ }
if (initrd_size < 0) {
fprintf(stderr, "qemu: could not load initial ram disk '%s'\n",
initrd_filename);
@@ -608,7 +631,7 @@ static void pc_init1(int ram_size, int v
}
}
if (initrd_size > 0) {
- stl_raw(phys_ram_base + KERNEL_PARAMS_ADDR + 0x218, INITRD_LOAD_ADDR);
+ stl_raw(phys_ram_base + KERNEL_PARAMS_ADDR + 0x218, initrd_offset);
stl_raw(phys_ram_base + KERNEL_PARAMS_ADDR + 0x21c, initrd_size);
}
pstrcpy(phys_ram_base + KERNEL_CMDLINE_ADDR, 4096,
[-- Attachment #3: Type: text/plain, Size: 286 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
[-- Attachment #4: Type: text/plain, Size: 186 bytes --]
_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel
next prev parent reply other threads:[~2007-05-01 16:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-30 16:45 2.6.21.1 and kvm-21 just plain stopped David Brown
[not found] ` <9c21eeae0704300945p26b434c3k9af09f7c452d9cc4-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-04-30 18:12 ` Avi Kivity
[not found] ` <463631A4.5070704-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-30 18:45 ` David Brown
[not found] ` <9c21eeae0704301145w5051a40fgc87e3f1377ebfbba-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-01 6:18 ` Avi Kivity
[not found] ` <4636DBA8.8050906-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-01 16:05 ` David Brown
[not found] ` <9c21eeae0705010905t3646f104ge934e472ecc0d49-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-01 16:13 ` Avi Kivity
2007-05-01 16:20 ` Daniel P. Berrange [this message]
[not found] ` <20070501162028.GC3995-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2007-05-02 0:57 ` David Brown
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=20070501162028.GC3995@redhat.com \
--to=berrange-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=dmlb2000-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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