hi,I found out what crashed kvm when I increased VGA_RAM_SIZE in pc.h. The crash was caused by a really _dirty_ hack in a kvm specific part of vga.c (it took me at least an hour to find this amazing piece of code... at least the "HACK ALERT" was a good hint ;-) ).
I've attached the patch. It works for me (tested with windows xp as guest os @ 1680x1050). As always, please test the patch. I'd highly appreciate it if somebody could test it with linux as guest os.
@Arne: Could you please test the patch with your setup? I hope it works this time...
cheers, Andi
--- kvm-61.orig/qemu/hw/vga.c 2008-02-19 15:58:28.000000000 +0100 +++ kvm-61/qemu/hw/vga.c 2008-02-22 02:43:08.000000000 +0100 @@ -1438,7 +1438,7 @@ long page0, page1, page_min, page_max; vga_draw_line_func *vga_draw_line; /* HACK ALERT */ -#define VGA_BITMAP_SIZE ((8*1024*1024) / 4096 / 8 / sizeof(long)) +#define VGA_BITMAP_SIZE ((VGA_RAM_SIZE) / 4096 / 8 / sizeof(long)) unsigned long bitmap[VGA_BITMAP_SIZE]; #ifndef TARGET_IA64 int r; --- kvm-61.orig/qemu/hw/vga_int.h 2008-02-19 15:58:28.000000000 +0100 +++ kvm-61/qemu/hw/vga_int.h 2008-02-20 19:25:35.000000000 +0100 @@ -30,8 +30,8 @@ /* bochs VBE support */ #define CONFIG_BOCHS_VBE -#define VBE_DISPI_MAX_XRES 1600 -#define VBE_DISPI_MAX_YRES 1200 +#define VBE_DISPI_MAX_XRES 2560 +#define VBE_DISPI_MAX_YRES 1600 #define VBE_DISPI_MAX_BPP 32 #define VBE_DISPI_INDEX_ID 0x0 --- kvm-61.orig/vgabios/vbetables-gen.c 2008-02-19 15:58:28.000000000 +0100 +++ kvm-61/vgabios/vbetables-gen.c 2008-02-20 19:22:48.000000000 +0100 @@ -2,7 +2,7 @@ #include <stdlib.h> #include <stdio.h> -#define VBE_DISPI_TOTAL_VIDEO_MEMORY_MB 8 +#define VBE_DISPI_TOTAL_VIDEO_MEMORY_MB 16 typedef struct { int width; @@ -55,18 +55,27 @@ { 1152, 864, 16 , 0x14a}, { 1152, 864, 24 , 0x14b}, { 1152, 864, 32 , 0x14c}, -{ 1280, 800, 24 , 0x178}, -{ 1280, 800, 32 , 0x179}, -{ 1280, 960, 24 , 0x180}, -{ 1280, 960, 32 , 0x181}, -{ 1280, 960, 24 , 0x182}, -{ 1280, 960, 32 , 0x183}, -{ 1440, 900, 24 , 0x184}, -{ 1440, 900, 32 , 0x185}, -{ 1400, 1050, 24 , 0x186}, -{ 1400, 1050, 32 , 0x187}, -{ 1680, 1050, 24 , 0x188}, -{ 1680, 1050, 32 , 0x189}, +{ 1280, 800, 16 , 0x178}, +{ 1280, 800, 24 , 0x179}, +{ 1280, 800, 32 , 0x17a}, +{ 1280, 960, 16 , 0x17b}, +{ 1280, 960, 24 , 0x17c}, +{ 1280, 960, 32 , 0x17d}, +{ 1440, 900, 16 , 0x17e}, +{ 1440, 900, 24 , 0x17f}, +{ 1440, 900, 32 , 0x180}, +{ 1400, 1050, 16 , 0x181}, +{ 1400, 1050, 24 , 0x182}, +{ 1400, 1050, 32 , 0x183}, +{ 1680, 1050, 16 , 0x184}, +{ 1680, 1050, 24 , 0x185}, +{ 1680, 1050, 32 , 0x186}, +{ 1920, 1200, 16 , 0x187}, +{ 1920, 1200, 24 , 0x188}, +{ 1920, 1200, 32 , 0x189}, +{ 2560, 1600, 16 , 0x18a}, +{ 2560, 1600, 24 , 0x18b}, +{ 2560, 1600, 32 , 0x18c}, { 0, }, };
------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel