[kvm-devel] Working on an entry-level project
Hi, I'm interested in working on one of the entry-level projects on the TODO list to get my feet wet with the code. My preference is allowing CPU features to be passed to the guest. So I two things: I want to check if anyone is working on these already and if not can someone please expand a little on what is wanted? Any feedback or pointers on what features would be most useful is also welcome. Thanks, Cam - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Working on an entry-level project
Cam Macdonell wrote: > Hi, > > I'm interested in working on one of the entry-level projects on the TODO > list to get my feet wet with the code. My preference is allowing CPU > features to be passed to the guest. So I two things: I want to check > if anyone is working on these already and if not can someone please > expand a little on what is wanted? Any feedback or pointers on what > features would be most useful is also welcome. > > Thanks, > Cam > sorry, but patch for that feature was already wrote by someone. but you are more than welcome to try/ask about something else. - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Working on an entry-level project
Izik Eidus wrote: > Cam Macdonell wrote: >> Hi, >> >> > sorry, but patch for that feature was already wrote by someone. > > but you are more than welcome to try/ask about something else. Ah, I should've searched the list. Is there another project of similar scope that would be of use? Thanks, Cam - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Working on an entry-level project
Cam Macdonell wrote: Izik Eidus wrote: > Cam Macdonell wrote: >> Hi, >> >> > sorry, but patch for that feature was already wrote by someone. > > but you are more than welcome to try/ask about something else. Ah, I should've searched the list. Is there another project of similar scope that would be of use? You may choose the interactivity improvements:in http://kvm.qumranet.com/kvmwiki/TODO Dor - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Working on an entry-level project
Dor Laor wrote: > Cam Macdonell wrote: > > You may choose the interactivity improvements:in > http://kvm.qumranet.com/kvmwiki/TODO > Dor Thanks Dor, I'll look into it. Beyond the description, can you elaborate on the problem with frame rate during interactivity? Is the a simple test that reveals the problem? Related to that, what is the status of VMGL's (http://www.cs.toronto.edu/~andreslc/xen-gl/) integration with KVM or QEMU? Has anyone tried it? I've found some pages that refer to QEMU and VMGL but nothing definitive. Cam - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Working on an entry-level project
Dor Laor wrote: > Cam Macdonell wrote: >> > It's a simple test, when there are keyboard/mouse/display changes keep > the refresh rate high. When there are no changes start decrease the rate > until a minimum > reached. The performance benefit should also be checked since if it > minimal there's no use for this optimization. >> Related to that, what is the status of VMGL's >> (http://www.cs.toronto.edu/~andreslc/xen-gl/) integration with KVM or >> QEMU? Has anyone tried it? I've found some pages that refer to QEMU >> and VMGL but nothing definitive. >> > Go ahead, there claim it can work with qemu. Try first with qemu since > it is the repository to contribute the code to. > KVM will inherit it from qemu. Is there a way to test with QEMU that is not painfully slow? Cam - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Working on an entry-level project
Cam Macdonell wrote: > > > Dor Laor wrote: >> Cam Macdonell wrote: >> >> You may choose the interactivity improvements:in >> http://kvm.qumranet.com/kvmwiki/TODO >> Dor > > Thanks Dor, I'll look into it. Beyond the description, can you > elaborate on the problem with frame rate during interactivity? Is the > a simple test that reveals the problem? > It's a simple test, when there are keyboard/mouse/display changes keep the refresh rate high. When there are no changes start decrease the rate until a minimum reached. The performance benefit should also be checked since if it minimal there's no use for this optimization. > Related to that, what is the status of VMGL's > (http://www.cs.toronto.edu/~andreslc/xen-gl/) integration with KVM or > QEMU? Has anyone tried it? I've found some pages that refer to QEMU > and VMGL but nothing definitive. > Go ahead, there claim it can work with qemu. Try first with qemu since it is the repository to contribute the code to. KVM will inherit it from qemu. > Cam > - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Working on an entry-level project
Cam Macdonell wrote: > Dor Laor wrote: >> Cam Macdonell wrote: >>> >> It's a simple test, when there are keyboard/mouse/display changes >> keep the refresh rate high. When there are no changes start decrease >> the rate until a minimum >> reached. The performance benefit should also be checked since if it >> minimal there's no use for this optimization. >>> Related to that, what is the status of VMGL's >>> (http://www.cs.toronto.edu/~andreslc/xen-gl/) integration with KVM >>> or QEMU? Has anyone tried it? I've found some pages that refer to >>> QEMU and VMGL but nothing definitive. >>> >> Go ahead, there claim it can work with qemu. Try first with qemu >> since it is the repository to contribute the code to. >> KVM will inherit it from qemu. > > Is there a way to test with QEMU that is not painfully slow? > > Cam maybe using kqemu, i guess you can work on kvm, if you keep checking that it still work on qemu. - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] Working on an entry-level project
On Sat, 13 Oct 2007 12:39:15 +0200 Izik Eidus <[EMAIL PROTECTED]> wrote: > Cam Macdonell wrote: > > Dor Laor wrote: > >> Cam Macdonell wrote: > >>> > >> It's a simple test, when there are keyboard/mouse/display changes > >> keep the refresh rate high. When there are no changes start > >> decrease the rate until a minimum > >> reached. The performance benefit should also be checked since if > >> it minimal there's no use for this optimization. Even if it doesn't bring any performance benefits, I think that having a smoothly moving mouse cursor is useful, if you intend to run a desktop operating system inside QEMU. The current refresh rate QEMU uses is quite low and the mouse interactivity is poor in comparison with vmware + vmware tools. I am currently using the attached patch to improve the mouse interactivity - it shortens the screen refresh interval to 10 ms when the mouse or keyboard is active, and returns to 30 ms after a 100 ms inactivity period. Regards, -- Jindrich Makovicka diff -ur kvm-45.orig/qemu/sdl.c kvm-45/qemu/sdl.c --- kvm-45.orig/qemu/sdl.c 2007-10-02 10:36:33.0 +0200 +++ kvm-45/qemu/sdl.c 2007-10-07 08:32:38.0 +0200 @@ -47,6 +47,8 @@ static int guest_cursor = 0; static int guest_x, guest_y; static SDL_Cursor *guest_sprite = 0; +static int decimate_counter = 0; +static int idle_counter = 0; static void sdl_update(DisplayState *ds, int x, int y, int w, int h) { @@ -347,17 +349,24 @@ vga_hw_update(); } +#define SDL_IDLE_THRESHOLD 10 +#define SDL_DECIMATE 3 + static void sdl_refresh(DisplayState *ds) { SDL_Event ev1, *ev = &ev1; int mod_state; +int was_idle = 1; if (last_vm_running != vm_running) { last_vm_running = vm_running; sdl_update_caption(); } -vga_hw_update(); +if (idle_counter < SDL_IDLE_THRESHOLD || decimate_counter == 0) + vga_hw_update(); + +decimate_counter = (decimate_counter + 1) % SDL_DECIMATE; while (SDL_PollEvent(ev)) { switch (ev->type) { @@ -366,6 +375,7 @@ break; case SDL_KEYDOWN: case SDL_KEYUP: + was_idle = 0; if (ev->type == SDL_KEYDOWN) { if (!alt_grab) { mod_state = (SDL_GetModState() & gui_grab_code) == @@ -476,6 +486,7 @@ } break; case SDL_MOUSEMOTION: + was_idle = 0; if (gui_grab || kbd_mouse_is_absolute() || absolute_enabled) { sdl_send_mouse_event(0); @@ -483,6 +494,7 @@ break; case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONUP: + was_idle = 0; { SDL_MouseButtonEvent *bev = &ev->button; if (!gui_grab && !kbd_mouse_is_absolute()) { @@ -515,6 +527,13 @@ break; } } + +if (was_idle) { + if (idle_counter < SDL_IDLE_THRESHOLD) + idle_counter++; +} else { + idle_counter = 0; +} } static void sdl_fill(DisplayState *ds, int x, int y, int w, int h, uint32_t c) @@ -627,6 +646,7 @@ ds->dpy_fill = sdl_fill; ds->mouse_set = sdl_mouse_warp; ds->cursor_define = sdl_mouse_define; +ds->refresh_interval = 10; sdl_resize(ds, 640, 400); sdl_update_caption(); diff -ur kvm-45.orig/qemu/vl.c kvm-45/qemu/vl.c --- kvm-45.orig/qemu/vl.c 2007-10-02 10:36:33.0 +0200 +++ kvm-45/qemu/vl.c 2007-10-07 08:34:01.0 +0200 @@ -142,7 +142,7 @@ #define DEFAULT_RAM_SIZE 128 #endif /* in ms */ -#define GUI_REFRESH_INTERVAL 30 +#define DEFAULT_GUI_REFRESH_INTERVAL 30 /* Max number of USB devices that can be specified on the commandline. */ #define MAX_USB_CMDLINE 8 @@ -4918,6 +4918,7 @@ ds->dpy_update = dumb_update; ds->dpy_resize = dumb_resize; ds->dpy_refresh = dumb_refresh; +ds->refresh_interval = DEFAULT_GUI_REFRESH_INTERVAL; } /***/ @@ -6913,7 +6914,7 @@ { DisplayState *ds = opaque; ds->dpy_refresh(ds); -qemu_mod_timer(ds->gui_timer, GUI_REFRESH_INTERVAL + qemu_get_clock(rt_clock)); +qemu_mod_timer(ds->gui_timer, display_state.refresh_interval + qemu_get_clock(rt_clock)); } struct vm_change_state_entry { diff -ur kvm-45.orig/qemu/vl.h kvm-45/qemu/vl.h --- kvm-45.orig/qemu/vl.h 2007-10-02 10:36:33.0 +0200 +++ kvm-45/qemu/vl.h 2007-10-07 08:33:36.0 +0200 @@ -970,6 +970,7 @@ int height; void *opaque; QEMUTimer *gui_timer; +int refresh_interval; void (*dpy_update)(struct DisplayState *s, int x, int y, int w, int h); void (*dpy_resize)(struct DisplayState *s, int w, int h); - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/___
Re: [kvm-devel] Working on an entry-level project
Jindrich Makovicka wrote: > On Mon, 15 Oct 2007 08:33:43 -0600 > Cam Macdonell <[EMAIL PROTECTED]> wrote: > >> Jindrich Makovicka wrote: >>> On Sat, 13 Oct 2007 12:39:15 +0200 >>> >>> Even if it doesn't bring any performance benefits, I think that >>> having a smoothly moving mouse cursor is useful, if you intend to >>> run a desktop operating system inside QEMU. The current refresh >>> rate QEMU uses is quite low and the mouse interactivity is poor in >>> comparison with vmware >>> + vmware tools. >>> >>> I am currently using the attached patch to improve the mouse >>> interactivity - it shortens the screen refresh interval to 10 ms >>> when the mouse or keyboard is active, and returns to 30 ms after a >>> 100 ms inactivity period. >>> >> Hi Jindrich, >> >> Thanks for posting this. Is there a particular guest that you find >> best demonstrates this? > > IMO any guest that uses the mouse. I use KVM to run WindowsXP, > where the effect is clearly visible, but it will be the same in XWindow. Hi Jindrich, Sorry for the delay in getting on this. I notice your patch stalls the system when -vnc is used. Do you have any idea why? I'll look into it, but I thought I should check with you first. Thanks, Cam - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel