* [PATCH 0/3] Usermode side patches for in-kernel APIC
@ 2007-05-02 21:53 Gregory Haskins
[not found] ` <20070502214651.16845.19031.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Gregory Haskins @ 2007-05-02 21:53 UTC (permalink / raw)
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Here is the patch series for the usermode side. Note that the last patch is
pretty much experimental, and doesnt appear to be working the way I intended.
Please advise if you know of the right way to do that. It doesnt seem to have
affected anything that I was able to test so far, so I don't know if it
matters or if there is a HALT race condition lurking in there until the signal
handling is fixed.
In any case, you can apply at least the first two and get "level-1" support
running (in kernel LAPIC, QEMU based 8259/IOAPIC).
Note that I abandoned my original patch that kicked off this whole party where
I majorly re-worked QEMU. I figured if that new qemu-irq stuff from QEMU
upstream was coming soon we could just go the #if USE_KVM route for now. We
can make things more elegant when the new infrastructure is in place somewhere
down the road.
As with the kernel side changes, comments/feedback/bug-reports/patches
welcome.
Signed-off-by: Gregory Haskins <ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
-------------------------------------------------------------------------
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/
^ permalink raw reply [flat|nested] 8+ messages in thread[parent not found: <20070502214651.16845.19031.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>]
* [PATCH 1/3] KVM: Updates for compiling in-kernel APIC support with external-modules [not found] ` <20070502214651.16845.19031.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org> @ 2007-05-02 21:53 ` Gregory Haskins 2007-05-02 21:53 ` [PATCH 2/3] KVM: in-kernel-apic modification to QEMU Gregory Haskins ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Gregory Haskins @ 2007-05-02 21:53 UTC (permalink / raw) To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Signed-off-by: Gregory Haskins <ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org> --- kernel/Kbuild | 2 +- kernel/external-module-compat.h | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletions(-) diff --git a/kernel/Kbuild b/kernel/Kbuild index e9bcda7..103a179 100644 --- a/kernel/Kbuild +++ b/kernel/Kbuild @@ -1,5 +1,5 @@ EXTRA_CFLAGS := -I$(src)/include -include $(src)/external-module-compat.h obj-m := kvm.o kvm-intel.o kvm-amd.o -kvm-objs := kvm_main.o mmu.o x86_emulate.o +kvm-objs := kvm_main.o mmu.o x86_emulate.o userint.o kernint.o lapic.o kvm-intel-objs := vmx.o vmx-debug.o kvm-amd-objs := svm.o diff --git a/kernel/external-module-compat.h b/kernel/external-module-compat.h index 6ccaadd..2150ca9 100644 --- a/kernel/external-module-compat.h +++ b/kernel/external-module-compat.h @@ -135,6 +135,13 @@ static inline struct super_block *kvmfs_get_sb( #endif +/* + * hrtimers are not supported in older kernels (not sure where this starts) + */ +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) +#define KVM_NO_HRTIMER 1 +#endif + #include <linux/miscdevice.h> #ifndef KVM_MINOR #define KVM_MINOR 232 ------------------------------------------------------------------------- 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/ ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/3] KVM: in-kernel-apic modification to QEMU [not found] ` <20070502214651.16845.19031.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org> 2007-05-02 21:53 ` [PATCH 1/3] KVM: Updates for compiling in-kernel APIC support with external-modules Gregory Haskins @ 2007-05-02 21:53 ` Gregory Haskins [not found] ` <20070502215327.16845.64.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org> 2007-05-02 21:53 ` [PATCH 3/3] KVM-USER: Add support for in-kernel interrupts to wake-up QEMU Gregory Haskins 2007-05-07 10:53 ` [PATCH 0/3] Usermode side patches for in-kernel APIC Avi Kivity 3 siblings, 1 reply; 8+ messages in thread From: Gregory Haskins @ 2007-05-02 21:53 UTC (permalink / raw) To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Signed-off-by: Gregory Haskins <ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org> --- qemu/hw/apic.c | 17 ++++++++++++++++- qemu/hw/pc.c | 11 +++++++++++ qemu/qemu-kvm.c | 12 +++++------- user/kvmctl.c | 25 +++++++++++++++++++++++-- user/kvmctl.h | 5 +++-- user/main.c | 3 +-- 6 files changed, 59 insertions(+), 14 deletions(-) diff --git a/qemu/hw/apic.c b/qemu/hw/apic.c index 0b73233..a26b96e 100644 --- a/qemu/hw/apic.c +++ b/qemu/hw/apic.c @@ -19,6 +19,11 @@ */ #include "vl.h" +#ifdef USE_KVM +#include "kvmctl.h" +extern kvm_context_t kvm_context; +#endif + //#define DEBUG_APIC //#define DEBUG_IOAPIC @@ -888,10 +893,20 @@ static void ioapic_service(IOAPICState *s) vector = pic_read_irq(isa_pic); else vector = entry & 0xff; - + +#ifdef USE_KVM + if (kvm_allowed) { + kvm_apic_bus_deliver(kvm_context, dest, trig_mode, + dest_mode, delivery_mode, vector); + } else { +#endif apic_get_delivery_bitmask(deliver_bitmask, dest, dest_mode); apic_bus_deliver(deliver_bitmask, delivery_mode, vector, polarity, trig_mode); +#ifdef USE_KVM + } +#endif + } } } diff --git a/qemu/hw/pc.c b/qemu/hw/pc.c index eda49cf..ffcbfc6 100644 --- a/qemu/hw/pc.c +++ b/qemu/hw/pc.c @@ -91,6 +91,9 @@ int cpu_get_pic_interrupt(CPUState *env) { int intno; +#ifdef USE_KVM + if (!kvm_allowed) { +#endif intno = apic_get_interrupt(env); if (intno >= 0) { /* set irq request if a PIC irq is still pending */ @@ -98,10 +101,15 @@ int cpu_get_pic_interrupt(CPUState *env) pic_update_irq(isa_pic); return intno; } + /* read the irq from the PIC */ if (!apic_accept_pic_intr(env)) return -1; +#ifdef USE_KVM + } +#endif + intno = pic_read_irq(isa_pic); return intno; } @@ -483,6 +491,9 @@ static void pc_init1(int ram_size, int vga_ram_size, int boot_device, } register_savevm("cpu", i, 4, cpu_save, cpu_load, env); qemu_register_reset(main_cpu_reset, env); +#ifdef USE_KVM + if (!kvm_allowed) +#endif if (pci_enabled) { apic_init(env); } diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c index 212570a..266c73d 100644 --- a/qemu/qemu-kvm.c +++ b/qemu/qemu-kvm.c @@ -227,9 +227,11 @@ static void load_regs(CPUState *env) sregs.cr3 = env->cr[3]; sregs.cr4 = env->cr[4]; - sregs.apic_base = cpu_get_apic_base(env); + /* These two are no longer used once the in-kernel APIC is enabled */ + sregs.apic_base = 0; + sregs.cr8 = 0; + sregs.efer = env->efer; - sregs.cr8 = cpu_get_apic_tpr(env); kvm_set_sregs(kvm_context, 0, &sregs); @@ -412,7 +414,7 @@ static int try_push_interrupts(void *opaque) (env->eflags & IF_MASK)) { env->interrupt_request &= ~CPU_INTERRUPT_HARD; // for now using cpu 0 - kvm_inject_irq(kvm_context, 0, cpu_get_pic_interrupt(env)); + kvm_inject_isa_irq(kvm_context, cpu_get_pic_interrupt(env)); } return (env->interrupt_request & CPU_INTERRUPT_HARD) != 0; @@ -425,16 +427,12 @@ static void post_kvm_run(void *opaque, struct kvm_run *kvm_run) env->eflags = (kvm_run->if_flag) ? env->eflags | IF_MASK:env->eflags & ~IF_MASK; env->ready_for_interrupt_injection = kvm_run->ready_for_interrupt_injection; - //cpu_set_apic_tpr(env, kvm_run->cr8); - cpu_set_apic_base(env, kvm_run->apic_base); } static void pre_kvm_run(void *opaque, struct kvm_run *kvm_run) { CPUState **envs = opaque, *env; env = envs[0]; - - kvm_run->cr8 = cpu_get_apic_tpr(env); } void kvm_load_registers(CPUState *env) diff --git a/user/kvmctl.c b/user/kvmctl.c index dcdffbf..e5f3e3e 100644 --- a/user/kvmctl.c +++ b/user/kvmctl.c @@ -233,6 +233,7 @@ int kvm_create(kvm_context_t kvm, unsigned long memory, void **vm_mem) int fd = kvm->fd; int zfd; int r; + const int apic_level = 1; struct kvm_memory_region low_memory = { .slot = 3, .memory_size = memory < dosmem ? memory : dosmem, @@ -282,6 +283,12 @@ int kvm_create(kvm_context_t kvm, unsigned long memory, void **vm_mem) MAP_PRIVATE|MAP_FIXED, zfd, 0); close(zfd); + r = ioctl(fd, KVM_ENABLE_KERNEL_PIC, &apic_level); + if (r == -1) { + fprintf(stderr, "kvm_enable_kernel_pic: %m\n"); + return -1; + } + r = ioctl(fd, KVM_CREATE_VCPU, 0); if (r == -1) { fprintf(stderr, "kvm_create_vcpu: %m\n"); @@ -772,12 +779,26 @@ more: return r; } -int kvm_inject_irq(kvm_context_t kvm, int vcpu, unsigned irq) +int kvm_inject_isa_irq(kvm_context_t kvm, unsigned irq) { struct kvm_interrupt intr; intr.irq = irq; - return ioctl(kvm->vcpu_fd[vcpu], KVM_INTERRUPT, &intr); + return ioctl(kvm->vm_fd, KVM_ISA_INTERRUPT, &intr); +} + +int kvm_apic_bus_deliver(kvm_context_t kvm, int dest, int trig_mode, + int dest_mode, int delivery_mode, int vector) +{ + struct kvm_apic_msg msg; + + msg.dest = dest; + msg.trig_mode = trig_mode; + msg.dest_mode = dest_mode; + msg.delivery_mode = delivery_mode; + msg.vector = vector; + + return ioctl(kvm->vm_fd, KVM_APIC_MSG, &msg); } int kvm_guest_debug(kvm_context_t kvm, int vcpu, struct kvm_debug_guest *dbg) diff --git a/user/kvmctl.h b/user/kvmctl.h index 27c010c..2fd5606 100644 --- a/user/kvmctl.h +++ b/user/kvmctl.h @@ -236,11 +236,12 @@ int kvm_set_msrs(kvm_context_t, int vcpu, struct kvm_msr_entry *msrs, int n); * This allows you to simulate an external vectored interrupt. * * \param kvm Pointer to the current kvm_context - * \param vcpu Which virtual CPU should get dumped * \param irq Vector number * \return 0 on success */ -int kvm_inject_irq(kvm_context_t kvm, int vcpu, unsigned irq); +int kvm_inject_isa_irq(kvm_context_t kvm, unsigned irq); +int kvm_apic_bus_deliver(kvm_context_t kvm, int dest, int trig_mode, + int dest_mode, int delivery_mode, int vector); int kvm_guest_debug(kvm_context_t, int vcpu, struct kvm_debug_guest *dbg); /*! diff --git a/user/main.c b/user/main.c index 83fd752..34b3ba9 100644 --- a/user/main.c +++ b/user/main.c @@ -49,7 +49,7 @@ static int test_outb(void *opaque, uint16_t addr, uint8_t value) switch (addr) { case 0xff: // irq injector printf("injecting interrupt 0x%x\n", value); - kvm_inject_irq(kvm, 0, value); + // kvm_inject_irq(kvm, 0, value); break; case 0xf1: // serial if (newline) @@ -116,7 +116,6 @@ static struct kvm_callbacks test_callbacks = { .debug = test_debug, .halt = test_halt, .io_window = test_io_window, - .try_push_interrupts = test_try_push_interrupts, .post_kvm_run = test_post_kvm_run, .pre_kvm_run = test_pre_kvm_run, }; ------------------------------------------------------------------------- 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/ ^ permalink raw reply related [flat|nested] 8+ messages in thread
[parent not found: <20070502215327.16845.64.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>]
* Re: [PATCH 2/3] KVM: in-kernel-apic modification to QEMU [not found] ` <20070502215327.16845.64.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org> @ 2007-05-09 8:16 ` Dor Laor [not found] ` <64F9B87B6B770947A9F8391472E032160BBA5FCB-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Dor Laor @ 2007-05-09 8:16 UTC (permalink / raw) To: Gregory Haskins, kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f > qemu/hw/apic.c | 17 ++++++++++++++++- > qemu/hw/pc.c | 11 +++++++++++ > qemu/qemu-kvm.c | 12 +++++------- > user/kvmctl.c | 25 +++++++++++++++++++++++-- > user/kvmctl.h | 5 +++-- > user/main.c | 3 +-- > 6 files changed, 59 insertions(+), 14 deletions(-) > >diff --git a/qemu/hw/apic.c b/qemu/hw/apic.c >@@ -888,10 +893,20 @@ static void ioapic_service(IOAPICState *s) > vector = pic_read_irq(isa_pic); > else > vector = entry & 0xff; >- >+ >+#ifdef USE_KVM >+ if (kvm_allowed) { For having the option of using kvm with qemu-apic you can use the apic_level variable below and add it to qemu's configuration params. This will be valuable while testing your implementation. >+ kvm_apic_bus_deliver(kvm_context, dest, trig_mode, >+ dest_mode, delivery_mode, vector); >+ } else { >+#endif > apic_get_delivery_bitmask(deliver_bitmask, dest, >dest_mode); > apic_bus_deliver(deliver_bitmask, delivery_mode, > vector, polarity, trig_mode); >+#ifdef USE_KVM >+ } >+#endif >+ > } > } > } .... >diff --git a/user/kvmctl.c b/user/kvmctl.c >index dcdffbf..e5f3e3e 100644 >--- a/user/kvmctl.c >+++ b/user/kvmctl.c >@@ -233,6 +233,7 @@ int kvm_create(kvm_context_t kvm, unsigned long memory, >void **vm_mem) > int fd = kvm->fd; > int zfd; > int r; >+ const int apic_level = 1; > struct kvm_memory_region low_memory = { > .slot = 3, > .memory_size = memory < dosmem ? memory : dosmem, >@@ -282,6 +283,12 @@ int kvm_create(kvm_context_t kvm, unsigned long >memory, void **vm_mem) > MAP_PRIVATE|MAP_FIXED, zfd, 0); > close(zfd); > >+ r = ioctl(fd, KVM_ENABLE_KERNEL_PIC, &apic_level); >+ if (r == -1) { >+ fprintf(stderr, "kvm_enable_kernel_pic: %m\n"); >+ return -1; >+ } >+ > r = ioctl(fd, KVM_CREATE_VCPU, 0); > if (r == -1) { > fprintf(stderr, "kvm_create_vcpu: %m\n"); >@@ -772,12 +779,26 @@ more: > return r; > } > >-int kvm_inject_irq(kvm_context_t kvm, int vcpu, unsigned irq) >+int kvm_inject_isa_irq(kvm_context_t kvm, unsigned irq) > { > struct kvm_interrupt intr; > > intr.irq = irq; >- return ioctl(kvm->vcpu_fd[vcpu], KVM_INTERRUPT, &intr); >+ return ioctl(kvm->vm_fd, KVM_ISA_INTERRUPT, &intr); >+} ------------------------------------------------------------------------- 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/ ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <64F9B87B6B770947A9F8391472E032160BBA5FCB-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>]
* Re: [PATCH 2/3] KVM: in-kernel-apic modification to QEMU [not found] ` <64F9B87B6B770947A9F8391472E032160BBA5FCB-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org> @ 2007-05-09 15:04 ` Gregory Haskins 0 siblings, 0 replies; 8+ messages in thread From: Gregory Haskins @ 2007-05-09 15:04 UTC (permalink / raw) To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Dor Laor >>> On Wed, May 9, 2007 at 4:16 AM, in message <64F9B87B6B770947A9F8391472E032160BBA5FCB-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>, "Dor Laor" <dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org> wrote: > For having the option of using kvm with qemu- apic you can use the > apic_level variable below and add it to qemu's configuration params. > This will be valuable while testing your implementation. Thats a good idea. Thanks Dor! -Greg ------------------------------------------------------------------------- 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/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/3] KVM-USER: Add support for in-kernel interrupts to wake-up QEMU [not found] ` <20070502214651.16845.19031.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org> 2007-05-02 21:53 ` [PATCH 1/3] KVM: Updates for compiling in-kernel APIC support with external-modules Gregory Haskins 2007-05-02 21:53 ` [PATCH 2/3] KVM: in-kernel-apic modification to QEMU Gregory Haskins @ 2007-05-02 21:53 ` Gregory Haskins 2007-05-07 10:53 ` [PATCH 0/3] Usermode side patches for in-kernel APIC Avi Kivity 3 siblings, 0 replies; 8+ messages in thread From: Gregory Haskins @ 2007-05-02 21:53 UTC (permalink / raw) To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Signed-off-by: Gregory Haskins <ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org> --- qemu/vl.c | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/qemu/vl.c b/qemu/vl.c index 7df1c80..de4d342 100644 --- a/qemu/vl.c +++ b/qemu/vl.c @@ -1126,6 +1126,28 @@ void quit_timers(void) #endif } +#ifdef USE_KVM + +static void kvm_interrupt_handler(int host_signum) +{ + printf("kvm interrupt!\n"); + CPUState *env = cpu_single_env; + if (env) + cpu_interrupt(env, CPU_INTERRUPT_EXIT); +} + +void init_kvm_interrupts(void) +{ + struct sigaction act; + + act.sa_flags = 0; + act.sa_handler = kvm_interrupt_handler; + sigaction(33, &act, NULL); + +} + +#endif /* USE_KVM */ + /***********************************************************/ /* character device */ @@ -7444,6 +7466,10 @@ int main(int argc, char **argv) init_timers(); init_timer_alarm(); qemu_aio_init(); +#ifdef USE_KVM + if (kvm_allowed) + init_kvm_interrupts(); +#endif #ifdef _WIN32 socket_init(); ------------------------------------------------------------------------- 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/ ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 0/3] Usermode side patches for in-kernel APIC [not found] ` <20070502214651.16845.19031.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org> ` (2 preceding siblings ...) 2007-05-02 21:53 ` [PATCH 3/3] KVM-USER: Add support for in-kernel interrupts to wake-up QEMU Gregory Haskins @ 2007-05-07 10:53 ` Avi Kivity [not found] ` <463F0544.5070609-atKUWr5tajBWk0Htik3J/w@public.gmane.org> 3 siblings, 1 reply; 8+ messages in thread From: Avi Kivity @ 2007-05-07 10:53 UTC (permalink / raw) To: Gregory Haskins; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Gregory Haskins wrote: > Here is the patch series for the usermode side. Note that the last patch is > pretty much experimental, and doesnt appear to be working the way I intended. > Please advise if you know of the right way to do that. It doesnt seem to have > affected anything that I was able to test so far, so I don't know if it > matters or if there is a HALT race condition lurking in there until the signal > handling is fixed. > > In any case, you can apply at least the first two and get "level-1" support > running (in kernel LAPIC, QEMU based 8259/IOAPIC). > > Note that I abandoned my original patch that kicked off this whole party where > I majorly re-worked QEMU. I figured if that new qemu-irq stuff from QEMU > upstream was coming soon we could just go the #if USE_KVM route for now. We > can make things more elegant when the new infrastructure is in place somewhere > down the road. > > As with the kernel side changes, comments/feedback/bug-reports/patches > welcome. > > These are fine. Of course, new userspace has to work with 2.6.22, so you need to check feature availability. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- 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/ ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <463F0544.5070609-atKUWr5tajBWk0Htik3J/w@public.gmane.org>]
* Re: [PATCH 0/3] Usermode side patches for in-kernel APIC [not found] ` <463F0544.5070609-atKUWr5tajBWk0Htik3J/w@public.gmane.org> @ 2007-05-07 15:13 ` Gregory Haskins 0 siblings, 0 replies; 8+ messages in thread From: Gregory Haskins @ 2007-05-07 15:13 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f >>> On Mon, May 7, 2007 at 6:53 AM, in message <463F0544.5070609-atKUWr5tajBWk0Htik3J/w@public.gmane.org>, Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org> wrote: > Gregory Haskins wrote: >> Here is the patch series for the usermode side. Note that the last patch is >> pretty much experimental, and doesnt appear to be working the way I > intended. >> Please advise if you know of the right way to do that. It doesnt seem to > have >> affected anything that I was able to test so far, so I don't know if it >> matters or if there is a HALT race condition lurking in there until the > signal >> handling is fixed. >> >> In any case, you can apply at least the first two and get "level- 1" support >> running (in kernel LAPIC, QEMU based 8259/IOAPIC). >> >> Note that I abandoned my original patch that kicked off this whole party > where >> I majorly re- worked QEMU. I figured if that new qemu- irq stuff from QEMU >> upstream was coming soon we could just go the #if USE_KVM route for now. We >> can make things more elegant when the new infrastructure is in place > somewhere >> down the road. >> >> As with the kernel side changes, comments/feedback/bug- reports/patches >> welcome. >> >> > > These are fine. Of course, new userspace has to work with 2.6.22, so > you need to check feature availability. Agreed. I also need to make the code be able to dynamically disable the new stuff. Ill hopefully get an update for this soon. ------------------------------------------------------------------------- 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/ ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2007-05-09 15:04 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-02 21:53 [PATCH 0/3] Usermode side patches for in-kernel APIC Gregory Haskins
[not found] ` <20070502214651.16845.19031.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>
2007-05-02 21:53 ` [PATCH 1/3] KVM: Updates for compiling in-kernel APIC support with external-modules Gregory Haskins
2007-05-02 21:53 ` [PATCH 2/3] KVM: in-kernel-apic modification to QEMU Gregory Haskins
[not found] ` <20070502215327.16845.64.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>
2007-05-09 8:16 ` Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160BBA5FCB-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-05-09 15:04 ` Gregory Haskins
2007-05-02 21:53 ` [PATCH 3/3] KVM-USER: Add support for in-kernel interrupts to wake-up QEMU Gregory Haskins
2007-05-07 10:53 ` [PATCH 0/3] Usermode side patches for in-kernel APIC Avi Kivity
[not found] ` <463F0544.5070609-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-07 15:13 ` Gregory Haskins
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox