All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-08-12  4:03 ` Zhang, Xiantao
  0 siblings, 0 replies; 18+ messages in thread
From: Zhang, Xiantao @ 2009-08-12  4:03 UTC (permalink / raw)
  To: avi; +Cc: kvm-ia64, kvm

[-- Attachment #1: Type: text/plain, Size: 11902 bytes --]

>From 2d3d6cf55f7fecd9a9fd7c764e43b1ee56c7eebb Mon Sep 17 00:00:00 2001
From: Xiantao Zhang <xiantao.zhang@intel.com>
Date: Wed, 12 Aug 2009 11:39:33 +0800
Subject: [PATCH] qemu-kvm: fix ia64 build breakage

fix some configure issues.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
---
 Makefile.target         |   14 ++--
 configure               |    2 +-
 qemu-kvm-ia64.c         |  180 +++++++++++++++--------------------------------
 qemu-kvm.c              |    2 +-
 target-ia64/kvm.c       |  154 ++++++++++++++++++++++++++++++++++++++++
 target-ia64/libkvm.h    |    2 -
 target-ia64/op_helper.c |    5 +-
 7 files changed, 224 insertions(+), 135 deletions(-)
 create mode 100644 target-ia64/kvm.c

diff --git a/Makefile.target b/Makefile.target
index aeda3fe..bab1318 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -44,7 +44,7 @@ all: $(PROGS)
 # cpu emulator library
 libobj-y = exec.o cpu-exec.o host-utils.o
 ifeq ($(NO_CPU_EMULATION), 1)
-libobj-y += fack-exec.o
+libobj-y += fake-exec.o
 else
 libobj-y += translate-all.o translate.o 
 endif
@@ -57,7 +57,12 @@ libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o
 libobj-y += op_helper.o helper.o
 libobj-$(CONFIG_NEED_MMU) += mmu.o
 
+ifeq ($(TARGET_ARCH), i386)
 libobj-$(CONFIG_KVM) += kvm-tpr-opt.o
+endif
+ifeq ($(TARGET_ARCH), ia64)
+libobj-$(CONFIG_KVM) += firmware.o
+endif
 libobj-$(CONFIG_KVM) += qemu-kvm-helper.o
 
 libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
@@ -220,7 +225,7 @@ LIBS+=-lpci
 endif
 
 # Hardware support
-obj-ia64-y += ide.o pckbd.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
+obj-ia64-y += ide.o pckbd.o vga.o $(sound-obj-y) dma.o isa-bus.o
 obj-ia64-y += fdc.o mc146818rtc.o serial.o i8259.o ipf.o
 obj-ia64-y += cirrus_vga.o parallel.o acpi.o piix_pci.o
 obj-ia64-y += usb-uhci.o
@@ -322,11 +327,6 @@ obj-sh4-y += ide.o
 obj-m68k-y = an5206.o mcf5206.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o
 obj-m68k-y += m68k-semi.o dummy_m68k.o
 
-ifeq ($(TARGET_ARCH), ia64)
-firmware.o: firmware.c
-	$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
-endif
-
 main.o vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
 
 vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
diff --git a/configure b/configure
index 719d26a..509d851 100755
--- a/configure
+++ b/configure
@@ -2198,7 +2198,7 @@ case "$target_arch2" in
     fi
 esac
 case "$target_arch2" in
-  i386|x86_64|ppcemb|ppc|ppc64)
+  i386|x86_64|ia64|ppcemb|ppc|ppc64)
     # Make sure the target and host cpus are compatible
     if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
       \( "$target_arch2" = "$cpu" -o \
diff --git a/qemu-kvm-ia64.c b/qemu-kvm-ia64.c
index 062fbd4..e6e8884 100644
--- a/qemu-kvm-ia64.c
+++ b/qemu-kvm-ia64.c
@@ -1,147 +1,81 @@
-#include "config.h"
-#include "config-host.h"
-
+/*
+ * libkvm-ia64.c :Kernel-based Virtual Machine control library for ia64.
+ *
+ * This library provides an API to control the kvm hardware virtualization
+ * module.
+ *
+ * Copyright (C) 2006 Qumranet
+ *
+ * Authors:
+ *
+ *  Avi Kivity <avi@qumranet.com>
+ *  Yaniv Kamay <yaniv@qumranet.com>
+ *
+ * Copyright (C) 2007 Intel
+ * Added by : Zhang Xiantao <xiantao.zhang@intel.com>
+ *
+ * This work is licensed under the GNU LGPL license, version 2.
+ *
+ */
+
+#include "libkvm.h"
+#include <errno.h>
+#include <sys/ioctl.h>
 #include <string.h>
+#include <unistd.h>
+#include <stropts.h>
+#include <sys/mman.h>
+#include <stdio.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
 
-#include "hw/hw.h"
-#include "qemu-kvm.h"
-#include <pthread.h>
-#include <sys/utsname.h>
-#include <sys/io.h>
-
-
-
-int kvm_arch_qemu_create_context(void)
-{
-    return 0;
-}
-
-void kvm_arch_load_regs(CPUState *env)
+int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes,
+			void **vm_mem)
 {
-}
+	int r;
 
+	r = kvm_init_coalesced_mmio(kvm);
+	if (r < 0)
+		return r;
 
-void kvm_arch_save_regs(CPUState *env)
-{
+	return 0;
 }
 
-int kvm_arch_init_vcpu(CPUState *cenv)
+int kvm_arch_run(kvm_vcpu_context_t vcpu)
 {
-    return 0;
-}
+	int r = 0;
 
-int kvm_arch_halt(void *opaque, kvm_vcpu_context_t vcpu)
-{
-    CPUState *env = cpu_single_env;
-    env->hflags |= HF_HALTED_MASK;
-    return 1;
-}
+	switch (vcpu->run->exit_reason) {
+		default:
+			r = 1;
+			break;
+	}
 
-void kvm_arch_pre_kvm_run(void *opaque, CPUState *env)
-{
-}
-
-void kvm_arch_post_kvm_run(void *opaque, CPUState *env)
-{
-}
-
-int kvm_arch_has_work(CPUState *env)
-{
-    return 1;
-}
-
-int kvm_arch_try_push_interrupts(void *opaque)
-{
-    return 1;
-}
-
-void kvm_arch_update_regs_for_sipi(CPUState *env)
-{
+	return r;
 }
 
-int kvm_arch_insert_sw_breakpoint(CPUState *current_env,
-                                  struct kvm_sw_breakpoint *bp)
+void kvm_show_code(kvm_vcpu_context_t vcpu)
 {
-    return -EINVAL;
+	fprintf(stderr, "kvm_show_code not supported yet!\n");
 }
 
-int kvm_arch_remove_sw_breakpoint(CPUState *current_env,
-                                  struct kvm_sw_breakpoint *bp)
+void kvm_show_regs(kvm_vcpu_context_t vcpu)
 {
-    return -EINVAL;
+	fprintf(stderr,"kvm_show_regs not supportted today!\n");
 }
 
-int kvm_arch_insert_hw_breakpoint(target_ulong addr,
-				  target_ulong len, int type)
-{
-    return -ENOSYS;
-}
-
-int kvm_arch_remove_hw_breakpoint(target_ulong addr,
-				  target_ulong len, int type)
-{
-    return -ENOSYS;
-}
-
-void kvm_arch_remove_all_hw_breakpoints(void)
-{
-}
-
-int kvm_arch_debug(struct kvm_debug_exit_arch *arch_info)
+int kvm_create_memory_alias(kvm_context_t kvm,
+			    uint64_t phys_start,
+			    uint64_t len,
+			    uint64_t target_phys)
 {
     return 0;
 }
 
-void kvm_arch_update_guest_debug(CPUState *env, struct kvm_guest_debug *dbg)
-{
-}
-
-void kvm_arch_save_mpstate(CPUState *env)
-{
-#ifdef KVM_CAP_MP_STATE
-    int r;
-    struct kvm_mp_state mp_state;
-
-    r = kvm_get_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
-    if (r < 0)
-        env->mp_state = -1;
-    else
-        env->mp_state = mp_state.mp_state;
-#endif
-}
-
-void kvm_arch_load_mpstate(CPUState *env)
-{
-#ifdef KVM_CAP_MP_STATE
-    struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
-
-    /*
-     * -1 indicates that the host did not support GET_MP_STATE ioctl,
-     *  so don't touch it.
-     */
-    if (env->mp_state != -1)
-        kvm_set_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
-#endif
-}
-
-void kvm_arch_cpu_reset(CPUState *env)
-{
-    if (kvm_irqchip_in_kernel(kvm_context)) {
-#ifdef KVM_CAP_MP_STATE
-	kvm_reset_mpstate(env->kvm_cpu_state.vcpu_ctx);
-#endif
-    } else {
-	env->interrupt_request &= ~CPU_INTERRUPT_HARD;
-	env->halted = 1;
-    }
-}
-
-void kvm_arch_do_ioperm(void *_data)
-{
-    struct ioperm_data *data = _data;
-    ioperm(data->start_port, data->num, data->turn_on);
-}
-
-void kvm_arch_process_irqchip_events(CPUState *env)
+int kvm_destroy_memory_alias(kvm_context_t kvm, uint64_t phys_start)
 {
+	return 0;
 }
diff --git a/qemu-kvm.c b/qemu-kvm.c
index b59e403..a4e314a 100644
--- a/qemu-kvm.c
+++ b/qemu-kvm.c
@@ -2171,7 +2171,6 @@ void kvm_set_phys_mem(target_phys_addr_t start_addr, ram_addr_t size,
         }
         if (must_use_aliases_target(start_addr))
             return;
-#endif
         while (size > 0) {
             p = find_mapping(start_addr);
             if (p) {
@@ -2186,6 +2185,7 @@ void kvm_set_phys_mem(target_phys_addr_t start_addr, ram_addr_t size,
             }
         }
         return;
+#endif
     }
 
     r = kvm_is_containing_region(kvm_context, start_addr, size);
diff --git a/target-ia64/kvm.c b/target-ia64/kvm.c
new file mode 100644
index 0000000..d01f634
--- /dev/null
+++ b/target-ia64/kvm.c
@@ -0,0 +1,154 @@
+#include "config.h"
+#include "config-host.h"
+
+#include <string.h>
+
+#include "hw/hw.h"
+#include "qemu-kvm.h"
+#include <pthread.h>
+#include <sys/utsname.h>
+#include <sys/io.h>
+
+
+
+int kvm_arch_qemu_create_context(void)
+{
+    return 0;
+}
+
+void kvm_arch_load_regs(CPUState *env)
+{
+}
+
+
+void kvm_arch_save_regs(CPUState *env)
+{
+}
+
+int kvm_arch_qemu_init_env(CPUState *cenv)
+{
+    return 0;
+}
+
+int kvm_arch_halt(void *opaque, kvm_vcpu_context_t vcpu)
+{
+    CPUState *env = cpu_single_env;
+    env->hflags |= HF_HALTED_MASK;
+    return 1;
+}
+
+void kvm_arch_pre_kvm_run(void *opaque, CPUState *env)
+{
+}
+
+void kvm_arch_post_kvm_run(void *opaque, CPUState *env)
+{
+}
+
+int kvm_arch_has_work(CPUState *env)
+{
+    return 1;
+}
+
+int kvm_arch_try_push_interrupts(void *opaque)
+{
+    return 1;
+}
+
+void kvm_arch_update_regs_for_sipi(CPUState *env)
+{
+}
+
+int kvm_arch_insert_sw_breakpoint(CPUState *current_env,
+                                  struct kvm_sw_breakpoint *bp)
+{
+    return -EINVAL;
+}
+
+int kvm_arch_remove_sw_breakpoint(CPUState *current_env,
+                                  struct kvm_sw_breakpoint *bp)
+{
+    return -EINVAL;
+}
+
+int kvm_arch_insert_hw_breakpoint(target_ulong addr,
+				  target_ulong len, int type)
+{
+    return -ENOSYS;
+}
+
+int kvm_arch_remove_hw_breakpoint(target_ulong addr,
+				  target_ulong len, int type)
+{
+    return -ENOSYS;
+}
+
+void kvm_arch_remove_all_hw_breakpoints(void)
+{
+}
+
+int kvm_arch_debug(struct kvm_debug_exit_arch *arch_info)
+{
+    return 0;
+}
+
+void kvm_arch_update_guest_debug(CPUState *env, struct kvm_guest_debug *dbg)
+{
+}
+
+void kvm_arch_save_mpstate(CPUState *env)
+{
+#ifdef KVM_CAP_MP_STATE
+    int r;
+    struct kvm_mp_state mp_state;
+
+    r = kvm_get_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
+    if (r < 0)
+        env->mp_state = -1;
+    else
+        env->mp_state = mp_state.mp_state;
+#endif
+}
+
+void kvm_arch_load_mpstate(CPUState *env)
+{
+#ifdef KVM_CAP_MP_STATE
+    struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
+
+    /*
+     * -1 indicates that the host did not support GET_MP_STATE ioctl,
+     *  so don't touch it.
+     */
+    if (env->mp_state != -1)
+        kvm_set_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
+#endif
+}
+
+void kvm_arch_cpu_reset(CPUState *env)
+{
+    if (kvm_irqchip_in_kernel(kvm_context)) {
+#ifdef KVM_CAP_MP_STATE
+	kvm_reset_mpstate(env->kvm_cpu_state.vcpu_ctx);
+#endif
+    } else {
+	env->interrupt_request &= ~CPU_INTERRUPT_HARD;
+	env->halted = 1;
+    }
+}
+
+void kvm_arch_do_ioperm(void *_data)
+{
+    struct ioperm_data *data = _data;
+    ioperm(data->start_port, data->num, data->turn_on);
+}
+
+void kvm_arch_process_irqchip_events(CPUState *env)
+{
+}
+
+int kvm_arch_init_vcpu(CPUState *env)
+{
+    return 0;
+}
+
+#include"qemu-kvm-ia64.c"
diff --git a/target-ia64/libkvm.h b/target-ia64/libkvm.h
index 417f7f1..8e2d413 100644
--- a/target-ia64/libkvm.h
+++ b/target-ia64/libkvm.h
@@ -18,8 +18,6 @@
 #ifndef KVM_IA64_H
 #define KVM_IA64_H
 
-#include "libkvm-all.h"
-
 extern int kvm_page_size;
 
 #define PAGE_SIZE kvm_page_size
diff --git a/target-ia64/op_helper.c b/target-ia64/op_helper.c
index d51525a..3c2e1a2 100644
--- a/target-ia64/op_helper.c
+++ b/target-ia64/op_helper.c
@@ -42,7 +42,6 @@ CPUState *cpu_ia64_init(const char *cpu_model)
     cpu_exec_init(env);
     cpu_reset(env);
     if (kvm_enabled()) {
-        kvm_qemu_init_env(env);
         kvm_init_vcpu(env);
     }
     return env;
@@ -102,3 +101,7 @@ void tlb_fill (target_ulong addr, int is_write, int is_user, void *retaddr)
 {
     return;
 }
+
+void helper_cpuid(void)
+{
+}
-- 
1.6.0

[-- Attachment #2: 0003-qemu-kvm-fix-ia64-build-breakage.patch --]
[-- Type: application/octet-stream, Size: 11399 bytes --]

From 2d3d6cf55f7fecd9a9fd7c764e43b1ee56c7eebb Mon Sep 17 00:00:00 2001
From: Xiantao Zhang <xiantao.zhang@intel.com>
Date: Wed, 12 Aug 2009 11:39:33 +0800
Subject: [PATCH] qemu-kvm: fix ia64 build breakage

fix some configure issues.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
---
 Makefile.target         |   14 ++--
 configure               |    2 +-
 qemu-kvm-ia64.c         |  180 +++++++++++++++--------------------------------
 qemu-kvm.c              |    2 +-
 target-ia64/kvm.c       |  154 ++++++++++++++++++++++++++++++++++++++++
 target-ia64/libkvm.h    |    2 -
 target-ia64/op_helper.c |    5 +-
 7 files changed, 224 insertions(+), 135 deletions(-)
 create mode 100644 target-ia64/kvm.c

diff --git a/Makefile.target b/Makefile.target
index aeda3fe..bab1318 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -44,7 +44,7 @@ all: $(PROGS)
 # cpu emulator library
 libobj-y = exec.o cpu-exec.o host-utils.o
 ifeq ($(NO_CPU_EMULATION), 1)
-libobj-y += fack-exec.o
+libobj-y += fake-exec.o
 else
 libobj-y += translate-all.o translate.o 
 endif
@@ -57,7 +57,12 @@ libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o
 libobj-y += op_helper.o helper.o
 libobj-$(CONFIG_NEED_MMU) += mmu.o
 
+ifeq ($(TARGET_ARCH), i386)
 libobj-$(CONFIG_KVM) += kvm-tpr-opt.o
+endif
+ifeq ($(TARGET_ARCH), ia64)
+libobj-$(CONFIG_KVM) += firmware.o
+endif
 libobj-$(CONFIG_KVM) += qemu-kvm-helper.o
 
 libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
@@ -220,7 +225,7 @@ LIBS+=-lpci
 endif
 
 # Hardware support
-obj-ia64-y += ide.o pckbd.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
+obj-ia64-y += ide.o pckbd.o vga.o $(sound-obj-y) dma.o isa-bus.o
 obj-ia64-y += fdc.o mc146818rtc.o serial.o i8259.o ipf.o
 obj-ia64-y += cirrus_vga.o parallel.o acpi.o piix_pci.o
 obj-ia64-y += usb-uhci.o
@@ -322,11 +327,6 @@ obj-sh4-y += ide.o
 obj-m68k-y = an5206.o mcf5206.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o
 obj-m68k-y += m68k-semi.o dummy_m68k.o
 
-ifeq ($(TARGET_ARCH), ia64)
-firmware.o: firmware.c
-	$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
-endif
-
 main.o vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
 
 vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
diff --git a/configure b/configure
index 719d26a..509d851 100755
--- a/configure
+++ b/configure
@@ -2198,7 +2198,7 @@ case "$target_arch2" in
     fi
 esac
 case "$target_arch2" in
-  i386|x86_64|ppcemb|ppc|ppc64)
+  i386|x86_64|ia64|ppcemb|ppc|ppc64)
     # Make sure the target and host cpus are compatible
     if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
       \( "$target_arch2" = "$cpu" -o \
diff --git a/qemu-kvm-ia64.c b/qemu-kvm-ia64.c
index 062fbd4..e6e8884 100644
--- a/qemu-kvm-ia64.c
+++ b/qemu-kvm-ia64.c
@@ -1,147 +1,81 @@
-#include "config.h"
-#include "config-host.h"
-
+/*
+ * libkvm-ia64.c :Kernel-based Virtual Machine control library for ia64.
+ *
+ * This library provides an API to control the kvm hardware virtualization
+ * module.
+ *
+ * Copyright (C) 2006 Qumranet
+ *
+ * Authors:
+ *
+ *  Avi Kivity <avi@qumranet.com>
+ *  Yaniv Kamay <yaniv@qumranet.com>
+ *
+ * Copyright (C) 2007 Intel
+ * Added by : Zhang Xiantao <xiantao.zhang@intel.com>
+ *
+ * This work is licensed under the GNU LGPL license, version 2.
+ *
+ */
+
+#include "libkvm.h"
+#include <errno.h>
+#include <sys/ioctl.h>
 #include <string.h>
+#include <unistd.h>
+#include <stropts.h>
+#include <sys/mman.h>
+#include <stdio.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
 
-#include "hw/hw.h"
-#include "qemu-kvm.h"
-#include <pthread.h>
-#include <sys/utsname.h>
-#include <sys/io.h>
-
-
-
-int kvm_arch_qemu_create_context(void)
-{
-    return 0;
-}
-
-void kvm_arch_load_regs(CPUState *env)
+int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes,
+			void **vm_mem)
 {
-}
+	int r;
 
+	r = kvm_init_coalesced_mmio(kvm);
+	if (r < 0)
+		return r;
 
-void kvm_arch_save_regs(CPUState *env)
-{
+	return 0;
 }
 
-int kvm_arch_init_vcpu(CPUState *cenv)
+int kvm_arch_run(kvm_vcpu_context_t vcpu)
 {
-    return 0;
-}
+	int r = 0;
 
-int kvm_arch_halt(void *opaque, kvm_vcpu_context_t vcpu)
-{
-    CPUState *env = cpu_single_env;
-    env->hflags |= HF_HALTED_MASK;
-    return 1;
-}
+	switch (vcpu->run->exit_reason) {
+		default:
+			r = 1;
+			break;
+	}
 
-void kvm_arch_pre_kvm_run(void *opaque, CPUState *env)
-{
-}
-
-void kvm_arch_post_kvm_run(void *opaque, CPUState *env)
-{
-}
-
-int kvm_arch_has_work(CPUState *env)
-{
-    return 1;
-}
-
-int kvm_arch_try_push_interrupts(void *opaque)
-{
-    return 1;
-}
-
-void kvm_arch_update_regs_for_sipi(CPUState *env)
-{
+	return r;
 }
 
-int kvm_arch_insert_sw_breakpoint(CPUState *current_env,
-                                  struct kvm_sw_breakpoint *bp)
+void kvm_show_code(kvm_vcpu_context_t vcpu)
 {
-    return -EINVAL;
+	fprintf(stderr, "kvm_show_code not supported yet!\n");
 }
 
-int kvm_arch_remove_sw_breakpoint(CPUState *current_env,
-                                  struct kvm_sw_breakpoint *bp)
+void kvm_show_regs(kvm_vcpu_context_t vcpu)
 {
-    return -EINVAL;
+	fprintf(stderr,"kvm_show_regs not supportted today!\n");
 }
 
-int kvm_arch_insert_hw_breakpoint(target_ulong addr,
-				  target_ulong len, int type)
-{
-    return -ENOSYS;
-}
-
-int kvm_arch_remove_hw_breakpoint(target_ulong addr,
-				  target_ulong len, int type)
-{
-    return -ENOSYS;
-}
-
-void kvm_arch_remove_all_hw_breakpoints(void)
-{
-}
-
-int kvm_arch_debug(struct kvm_debug_exit_arch *arch_info)
+int kvm_create_memory_alias(kvm_context_t kvm,
+			    uint64_t phys_start,
+			    uint64_t len,
+			    uint64_t target_phys)
 {
     return 0;
 }
 
-void kvm_arch_update_guest_debug(CPUState *env, struct kvm_guest_debug *dbg)
-{
-}
-
-void kvm_arch_save_mpstate(CPUState *env)
-{
-#ifdef KVM_CAP_MP_STATE
-    int r;
-    struct kvm_mp_state mp_state;
-
-    r = kvm_get_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
-    if (r < 0)
-        env->mp_state = -1;
-    else
-        env->mp_state = mp_state.mp_state;
-#endif
-}
-
-void kvm_arch_load_mpstate(CPUState *env)
-{
-#ifdef KVM_CAP_MP_STATE
-    struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
-
-    /*
-     * -1 indicates that the host did not support GET_MP_STATE ioctl,
-     *  so don't touch it.
-     */
-    if (env->mp_state != -1)
-        kvm_set_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
-#endif
-}
-
-void kvm_arch_cpu_reset(CPUState *env)
-{
-    if (kvm_irqchip_in_kernel(kvm_context)) {
-#ifdef KVM_CAP_MP_STATE
-	kvm_reset_mpstate(env->kvm_cpu_state.vcpu_ctx);
-#endif
-    } else {
-	env->interrupt_request &= ~CPU_INTERRUPT_HARD;
-	env->halted = 1;
-    }
-}
-
-void kvm_arch_do_ioperm(void *_data)
-{
-    struct ioperm_data *data = _data;
-    ioperm(data->start_port, data->num, data->turn_on);
-}
-
-void kvm_arch_process_irqchip_events(CPUState *env)
+int kvm_destroy_memory_alias(kvm_context_t kvm, uint64_t phys_start)
 {
+	return 0;
 }
diff --git a/qemu-kvm.c b/qemu-kvm.c
index b59e403..a4e314a 100644
--- a/qemu-kvm.c
+++ b/qemu-kvm.c
@@ -2171,7 +2171,6 @@ void kvm_set_phys_mem(target_phys_addr_t start_addr, ram_addr_t size,
         }
         if (must_use_aliases_target(start_addr))
             return;
-#endif
         while (size > 0) {
             p = find_mapping(start_addr);
             if (p) {
@@ -2186,6 +2185,7 @@ void kvm_set_phys_mem(target_phys_addr_t start_addr, ram_addr_t size,
             }
         }
         return;
+#endif
     }
 
     r = kvm_is_containing_region(kvm_context, start_addr, size);
diff --git a/target-ia64/kvm.c b/target-ia64/kvm.c
new file mode 100644
index 0000000..d01f634
--- /dev/null
+++ b/target-ia64/kvm.c
@@ -0,0 +1,154 @@
+#include "config.h"
+#include "config-host.h"
+
+#include <string.h>
+
+#include "hw/hw.h"
+#include "qemu-kvm.h"
+#include <pthread.h>
+#include <sys/utsname.h>
+#include <sys/io.h>
+
+
+
+int kvm_arch_qemu_create_context(void)
+{
+    return 0;
+}
+
+void kvm_arch_load_regs(CPUState *env)
+{
+}
+
+
+void kvm_arch_save_regs(CPUState *env)
+{
+}
+
+int kvm_arch_qemu_init_env(CPUState *cenv)
+{
+    return 0;
+}
+
+int kvm_arch_halt(void *opaque, kvm_vcpu_context_t vcpu)
+{
+    CPUState *env = cpu_single_env;
+    env->hflags |= HF_HALTED_MASK;
+    return 1;
+}
+
+void kvm_arch_pre_kvm_run(void *opaque, CPUState *env)
+{
+}
+
+void kvm_arch_post_kvm_run(void *opaque, CPUState *env)
+{
+}
+
+int kvm_arch_has_work(CPUState *env)
+{
+    return 1;
+}
+
+int kvm_arch_try_push_interrupts(void *opaque)
+{
+    return 1;
+}
+
+void kvm_arch_update_regs_for_sipi(CPUState *env)
+{
+}
+
+int kvm_arch_insert_sw_breakpoint(CPUState *current_env,
+                                  struct kvm_sw_breakpoint *bp)
+{
+    return -EINVAL;
+}
+
+int kvm_arch_remove_sw_breakpoint(CPUState *current_env,
+                                  struct kvm_sw_breakpoint *bp)
+{
+    return -EINVAL;
+}
+
+int kvm_arch_insert_hw_breakpoint(target_ulong addr,
+				  target_ulong len, int type)
+{
+    return -ENOSYS;
+}
+
+int kvm_arch_remove_hw_breakpoint(target_ulong addr,
+				  target_ulong len, int type)
+{
+    return -ENOSYS;
+}
+
+void kvm_arch_remove_all_hw_breakpoints(void)
+{
+}
+
+int kvm_arch_debug(struct kvm_debug_exit_arch *arch_info)
+{
+    return 0;
+}
+
+void kvm_arch_update_guest_debug(CPUState *env, struct kvm_guest_debug *dbg)
+{
+}
+
+void kvm_arch_save_mpstate(CPUState *env)
+{
+#ifdef KVM_CAP_MP_STATE
+    int r;
+    struct kvm_mp_state mp_state;
+
+    r = kvm_get_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
+    if (r < 0)
+        env->mp_state = -1;
+    else
+        env->mp_state = mp_state.mp_state;
+#endif
+}
+
+void kvm_arch_load_mpstate(CPUState *env)
+{
+#ifdef KVM_CAP_MP_STATE
+    struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
+
+    /*
+     * -1 indicates that the host did not support GET_MP_STATE ioctl,
+     *  so don't touch it.
+     */
+    if (env->mp_state != -1)
+        kvm_set_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
+#endif
+}
+
+void kvm_arch_cpu_reset(CPUState *env)
+{
+    if (kvm_irqchip_in_kernel(kvm_context)) {
+#ifdef KVM_CAP_MP_STATE
+	kvm_reset_mpstate(env->kvm_cpu_state.vcpu_ctx);
+#endif
+    } else {
+	env->interrupt_request &= ~CPU_INTERRUPT_HARD;
+	env->halted = 1;
+    }
+}
+
+void kvm_arch_do_ioperm(void *_data)
+{
+    struct ioperm_data *data = _data;
+    ioperm(data->start_port, data->num, data->turn_on);
+}
+
+void kvm_arch_process_irqchip_events(CPUState *env)
+{
+}
+
+int kvm_arch_init_vcpu(CPUState *env)
+{
+    return 0;
+}
+
+#include"qemu-kvm-ia64.c"
diff --git a/target-ia64/libkvm.h b/target-ia64/libkvm.h
index 417f7f1..8e2d413 100644
--- a/target-ia64/libkvm.h
+++ b/target-ia64/libkvm.h
@@ -18,8 +18,6 @@
 #ifndef KVM_IA64_H
 #define KVM_IA64_H
 
-#include "libkvm-all.h"
-
 extern int kvm_page_size;
 
 #define PAGE_SIZE kvm_page_size
diff --git a/target-ia64/op_helper.c b/target-ia64/op_helper.c
index d51525a..3c2e1a2 100644
--- a/target-ia64/op_helper.c
+++ b/target-ia64/op_helper.c
@@ -42,7 +42,6 @@ CPUState *cpu_ia64_init(const char *cpu_model)
     cpu_exec_init(env);
     cpu_reset(env);
     if (kvm_enabled()) {
-        kvm_qemu_init_env(env);
         kvm_init_vcpu(env);
     }
     return env;
@@ -102,3 +101,7 @@ void tlb_fill (target_ulong addr, int is_write, int is_user, void *retaddr)
 {
     return;
 }
+
+void helper_cpuid(void)
+{
+}
-- 
1.6.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-08-12  4:03 ` Zhang, Xiantao
  0 siblings, 0 replies; 18+ messages in thread
From: Zhang, Xiantao @ 2009-08-12  4:03 UTC (permalink / raw)
  To: kvm-ia64

[-- Attachment #1: Type: text/plain, Size: 11901 bytes --]

From 2d3d6cf55f7fecd9a9fd7c764e43b1ee56c7eebb Mon Sep 17 00:00:00 2001
From: Xiantao Zhang <xiantao.zhang@intel.com>
Date: Wed, 12 Aug 2009 11:39:33 +0800
Subject: [PATCH] qemu-kvm: fix ia64 build breakage

fix some configure issues.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
---
 Makefile.target         |   14 ++--
 configure               |    2 +-
 qemu-kvm-ia64.c         |  180 +++++++++++++++--------------------------------
 qemu-kvm.c              |    2 +-
 target-ia64/kvm.c       |  154 ++++++++++++++++++++++++++++++++++++++++
 target-ia64/libkvm.h    |    2 -
 target-ia64/op_helper.c |    5 +-
 7 files changed, 224 insertions(+), 135 deletions(-)
 create mode 100644 target-ia64/kvm.c

diff --git a/Makefile.target b/Makefile.target
index aeda3fe..bab1318 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -44,7 +44,7 @@ all: $(PROGS)
 # cpu emulator library
 libobj-y = exec.o cpu-exec.o host-utils.o
 ifeq ($(NO_CPU_EMULATION), 1)
-libobj-y += fack-exec.o
+libobj-y += fake-exec.o
 else
 libobj-y += translate-all.o translate.o 
 endif
@@ -57,7 +57,12 @@ libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o
 libobj-y += op_helper.o helper.o
 libobj-$(CONFIG_NEED_MMU) += mmu.o
 
+ifeq ($(TARGET_ARCH), i386)
 libobj-$(CONFIG_KVM) += kvm-tpr-opt.o
+endif
+ifeq ($(TARGET_ARCH), ia64)
+libobj-$(CONFIG_KVM) += firmware.o
+endif
 libobj-$(CONFIG_KVM) += qemu-kvm-helper.o
 
 libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
@@ -220,7 +225,7 @@ LIBS+=-lpci
 endif
 
 # Hardware support
-obj-ia64-y += ide.o pckbd.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
+obj-ia64-y += ide.o pckbd.o vga.o $(sound-obj-y) dma.o isa-bus.o
 obj-ia64-y += fdc.o mc146818rtc.o serial.o i8259.o ipf.o
 obj-ia64-y += cirrus_vga.o parallel.o acpi.o piix_pci.o
 obj-ia64-y += usb-uhci.o
@@ -322,11 +327,6 @@ obj-sh4-y += ide.o
 obj-m68k-y = an5206.o mcf5206.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o
 obj-m68k-y += m68k-semi.o dummy_m68k.o
 
-ifeq ($(TARGET_ARCH), ia64)
-firmware.o: firmware.c
-	$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
-endif
-
 main.o vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
 
 vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
diff --git a/configure b/configure
index 719d26a..509d851 100755
--- a/configure
+++ b/configure
@@ -2198,7 +2198,7 @@ case "$target_arch2" in
     fi
 esac
 case "$target_arch2" in
-  i386|x86_64|ppcemb|ppc|ppc64)
+  i386|x86_64|ia64|ppcemb|ppc|ppc64)
     # Make sure the target and host cpus are compatible
     if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
       \( "$target_arch2" = "$cpu" -o \
diff --git a/qemu-kvm-ia64.c b/qemu-kvm-ia64.c
index 062fbd4..e6e8884 100644
--- a/qemu-kvm-ia64.c
+++ b/qemu-kvm-ia64.c
@@ -1,147 +1,81 @@
-#include "config.h"
-#include "config-host.h"
-
+/*
+ * libkvm-ia64.c :Kernel-based Virtual Machine control library for ia64.
+ *
+ * This library provides an API to control the kvm hardware virtualization
+ * module.
+ *
+ * Copyright (C) 2006 Qumranet
+ *
+ * Authors:
+ *
+ *  Avi Kivity <avi@qumranet.com>
+ *  Yaniv Kamay <yaniv@qumranet.com>
+ *
+ * Copyright (C) 2007 Intel
+ * Added by : Zhang Xiantao <xiantao.zhang@intel.com>
+ *
+ * This work is licensed under the GNU LGPL license, version 2.
+ *
+ */
+
+#include "libkvm.h"
+#include <errno.h>
+#include <sys/ioctl.h>
 #include <string.h>
+#include <unistd.h>
+#include <stropts.h>
+#include <sys/mman.h>
+#include <stdio.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
 
-#include "hw/hw.h"
-#include "qemu-kvm.h"
-#include <pthread.h>
-#include <sys/utsname.h>
-#include <sys/io.h>
-
-
-
-int kvm_arch_qemu_create_context(void)
-{
-    return 0;
-}
-
-void kvm_arch_load_regs(CPUState *env)
+int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes,
+			void **vm_mem)
 {
-}
+	int r;
 
+	r = kvm_init_coalesced_mmio(kvm);
+	if (r < 0)
+		return r;
 
-void kvm_arch_save_regs(CPUState *env)
-{
+	return 0;
 }
 
-int kvm_arch_init_vcpu(CPUState *cenv)
+int kvm_arch_run(kvm_vcpu_context_t vcpu)
 {
-    return 0;
-}
+	int r = 0;
 
-int kvm_arch_halt(void *opaque, kvm_vcpu_context_t vcpu)
-{
-    CPUState *env = cpu_single_env;
-    env->hflags |= HF_HALTED_MASK;
-    return 1;
-}
+	switch (vcpu->run->exit_reason) {
+		default:
+			r = 1;
+			break;
+	}
 
-void kvm_arch_pre_kvm_run(void *opaque, CPUState *env)
-{
-}
-
-void kvm_arch_post_kvm_run(void *opaque, CPUState *env)
-{
-}
-
-int kvm_arch_has_work(CPUState *env)
-{
-    return 1;
-}
-
-int kvm_arch_try_push_interrupts(void *opaque)
-{
-    return 1;
-}
-
-void kvm_arch_update_regs_for_sipi(CPUState *env)
-{
+	return r;
 }
 
-int kvm_arch_insert_sw_breakpoint(CPUState *current_env,
-                                  struct kvm_sw_breakpoint *bp)
+void kvm_show_code(kvm_vcpu_context_t vcpu)
 {
-    return -EINVAL;
+	fprintf(stderr, "kvm_show_code not supported yet!\n");
 }
 
-int kvm_arch_remove_sw_breakpoint(CPUState *current_env,
-                                  struct kvm_sw_breakpoint *bp)
+void kvm_show_regs(kvm_vcpu_context_t vcpu)
 {
-    return -EINVAL;
+	fprintf(stderr,"kvm_show_regs not supportted today!\n");
 }
 
-int kvm_arch_insert_hw_breakpoint(target_ulong addr,
-				  target_ulong len, int type)
-{
-    return -ENOSYS;
-}
-
-int kvm_arch_remove_hw_breakpoint(target_ulong addr,
-				  target_ulong len, int type)
-{
-    return -ENOSYS;
-}
-
-void kvm_arch_remove_all_hw_breakpoints(void)
-{
-}
-
-int kvm_arch_debug(struct kvm_debug_exit_arch *arch_info)
+int kvm_create_memory_alias(kvm_context_t kvm,
+			    uint64_t phys_start,
+			    uint64_t len,
+			    uint64_t target_phys)
 {
     return 0;
 }
 
-void kvm_arch_update_guest_debug(CPUState *env, struct kvm_guest_debug *dbg)
-{
-}
-
-void kvm_arch_save_mpstate(CPUState *env)
-{
-#ifdef KVM_CAP_MP_STATE
-    int r;
-    struct kvm_mp_state mp_state;
-
-    r = kvm_get_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
-    if (r < 0)
-        env->mp_state = -1;
-    else
-        env->mp_state = mp_state.mp_state;
-#endif
-}
-
-void kvm_arch_load_mpstate(CPUState *env)
-{
-#ifdef KVM_CAP_MP_STATE
-    struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
-
-    /*
-     * -1 indicates that the host did not support GET_MP_STATE ioctl,
-     *  so don't touch it.
-     */
-    if (env->mp_state != -1)
-        kvm_set_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
-#endif
-}
-
-void kvm_arch_cpu_reset(CPUState *env)
-{
-    if (kvm_irqchip_in_kernel(kvm_context)) {
-#ifdef KVM_CAP_MP_STATE
-	kvm_reset_mpstate(env->kvm_cpu_state.vcpu_ctx);
-#endif
-    } else {
-	env->interrupt_request &= ~CPU_INTERRUPT_HARD;
-	env->halted = 1;
-    }
-}
-
-void kvm_arch_do_ioperm(void *_data)
-{
-    struct ioperm_data *data = _data;
-    ioperm(data->start_port, data->num, data->turn_on);
-}
-
-void kvm_arch_process_irqchip_events(CPUState *env)
+int kvm_destroy_memory_alias(kvm_context_t kvm, uint64_t phys_start)
 {
+	return 0;
 }
diff --git a/qemu-kvm.c b/qemu-kvm.c
index b59e403..a4e314a 100644
--- a/qemu-kvm.c
+++ b/qemu-kvm.c
@@ -2171,7 +2171,6 @@ void kvm_set_phys_mem(target_phys_addr_t start_addr, ram_addr_t size,
         }
         if (must_use_aliases_target(start_addr))
             return;
-#endif
         while (size > 0) {
             p = find_mapping(start_addr);
             if (p) {
@@ -2186,6 +2185,7 @@ void kvm_set_phys_mem(target_phys_addr_t start_addr, ram_addr_t size,
             }
         }
         return;
+#endif
     }
 
     r = kvm_is_containing_region(kvm_context, start_addr, size);
diff --git a/target-ia64/kvm.c b/target-ia64/kvm.c
new file mode 100644
index 0000000..d01f634
--- /dev/null
+++ b/target-ia64/kvm.c
@@ -0,0 +1,154 @@
+#include "config.h"
+#include "config-host.h"
+
+#include <string.h>
+
+#include "hw/hw.h"
+#include "qemu-kvm.h"
+#include <pthread.h>
+#include <sys/utsname.h>
+#include <sys/io.h>
+
+
+
+int kvm_arch_qemu_create_context(void)
+{
+    return 0;
+}
+
+void kvm_arch_load_regs(CPUState *env)
+{
+}
+
+
+void kvm_arch_save_regs(CPUState *env)
+{
+}
+
+int kvm_arch_qemu_init_env(CPUState *cenv)
+{
+    return 0;
+}
+
+int kvm_arch_halt(void *opaque, kvm_vcpu_context_t vcpu)
+{
+    CPUState *env = cpu_single_env;
+    env->hflags |= HF_HALTED_MASK;
+    return 1;
+}
+
+void kvm_arch_pre_kvm_run(void *opaque, CPUState *env)
+{
+}
+
+void kvm_arch_post_kvm_run(void *opaque, CPUState *env)
+{
+}
+
+int kvm_arch_has_work(CPUState *env)
+{
+    return 1;
+}
+
+int kvm_arch_try_push_interrupts(void *opaque)
+{
+    return 1;
+}
+
+void kvm_arch_update_regs_for_sipi(CPUState *env)
+{
+}
+
+int kvm_arch_insert_sw_breakpoint(CPUState *current_env,
+                                  struct kvm_sw_breakpoint *bp)
+{
+    return -EINVAL;
+}
+
+int kvm_arch_remove_sw_breakpoint(CPUState *current_env,
+                                  struct kvm_sw_breakpoint *bp)
+{
+    return -EINVAL;
+}
+
+int kvm_arch_insert_hw_breakpoint(target_ulong addr,
+				  target_ulong len, int type)
+{
+    return -ENOSYS;
+}
+
+int kvm_arch_remove_hw_breakpoint(target_ulong addr,
+				  target_ulong len, int type)
+{
+    return -ENOSYS;
+}
+
+void kvm_arch_remove_all_hw_breakpoints(void)
+{
+}
+
+int kvm_arch_debug(struct kvm_debug_exit_arch *arch_info)
+{
+    return 0;
+}
+
+void kvm_arch_update_guest_debug(CPUState *env, struct kvm_guest_debug *dbg)
+{
+}
+
+void kvm_arch_save_mpstate(CPUState *env)
+{
+#ifdef KVM_CAP_MP_STATE
+    int r;
+    struct kvm_mp_state mp_state;
+
+    r = kvm_get_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
+    if (r < 0)
+        env->mp_state = -1;
+    else
+        env->mp_state = mp_state.mp_state;
+#endif
+}
+
+void kvm_arch_load_mpstate(CPUState *env)
+{
+#ifdef KVM_CAP_MP_STATE
+    struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
+
+    /*
+     * -1 indicates that the host did not support GET_MP_STATE ioctl,
+     *  so don't touch it.
+     */
+    if (env->mp_state != -1)
+        kvm_set_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
+#endif
+}
+
+void kvm_arch_cpu_reset(CPUState *env)
+{
+    if (kvm_irqchip_in_kernel(kvm_context)) {
+#ifdef KVM_CAP_MP_STATE
+	kvm_reset_mpstate(env->kvm_cpu_state.vcpu_ctx);
+#endif
+    } else {
+	env->interrupt_request &= ~CPU_INTERRUPT_HARD;
+	env->halted = 1;
+    }
+}
+
+void kvm_arch_do_ioperm(void *_data)
+{
+    struct ioperm_data *data = _data;
+    ioperm(data->start_port, data->num, data->turn_on);
+}
+
+void kvm_arch_process_irqchip_events(CPUState *env)
+{
+}
+
+int kvm_arch_init_vcpu(CPUState *env)
+{
+    return 0;
+}
+
+#include"qemu-kvm-ia64.c"
diff --git a/target-ia64/libkvm.h b/target-ia64/libkvm.h
index 417f7f1..8e2d413 100644
--- a/target-ia64/libkvm.h
+++ b/target-ia64/libkvm.h
@@ -18,8 +18,6 @@
 #ifndef KVM_IA64_H
 #define KVM_IA64_H
 
-#include "libkvm-all.h"
-
 extern int kvm_page_size;
 
 #define PAGE_SIZE kvm_page_size
diff --git a/target-ia64/op_helper.c b/target-ia64/op_helper.c
index d51525a..3c2e1a2 100644
--- a/target-ia64/op_helper.c
+++ b/target-ia64/op_helper.c
@@ -42,7 +42,6 @@ CPUState *cpu_ia64_init(const char *cpu_model)
     cpu_exec_init(env);
     cpu_reset(env);
     if (kvm_enabled()) {
-        kvm_qemu_init_env(env);
         kvm_init_vcpu(env);
     }
     return env;
@@ -102,3 +101,7 @@ void tlb_fill (target_ulong addr, int is_write, int is_user, void *retaddr)
 {
     return;
 }
+
+void helper_cpuid(void)
+{
+}
-- 
1.6.0

[-- Attachment #2: 0003-qemu-kvm-fix-ia64-build-breakage.patch --]
[-- Type: application/octet-stream, Size: 11399 bytes --]

From 2d3d6cf55f7fecd9a9fd7c764e43b1ee56c7eebb Mon Sep 17 00:00:00 2001
From: Xiantao Zhang <xiantao.zhang@intel.com>
Date: Wed, 12 Aug 2009 11:39:33 +0800
Subject: [PATCH] qemu-kvm: fix ia64 build breakage

fix some configure issues.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
---
 Makefile.target         |   14 ++--
 configure               |    2 +-
 qemu-kvm-ia64.c         |  180 +++++++++++++++--------------------------------
 qemu-kvm.c              |    2 +-
 target-ia64/kvm.c       |  154 ++++++++++++++++++++++++++++++++++++++++
 target-ia64/libkvm.h    |    2 -
 target-ia64/op_helper.c |    5 +-
 7 files changed, 224 insertions(+), 135 deletions(-)
 create mode 100644 target-ia64/kvm.c

diff --git a/Makefile.target b/Makefile.target
index aeda3fe..bab1318 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -44,7 +44,7 @@ all: $(PROGS)
 # cpu emulator library
 libobj-y = exec.o cpu-exec.o host-utils.o
 ifeq ($(NO_CPU_EMULATION), 1)
-libobj-y += fack-exec.o
+libobj-y += fake-exec.o
 else
 libobj-y += translate-all.o translate.o 
 endif
@@ -57,7 +57,12 @@ libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o
 libobj-y += op_helper.o helper.o
 libobj-$(CONFIG_NEED_MMU) += mmu.o
 
+ifeq ($(TARGET_ARCH), i386)
 libobj-$(CONFIG_KVM) += kvm-tpr-opt.o
+endif
+ifeq ($(TARGET_ARCH), ia64)
+libobj-$(CONFIG_KVM) += firmware.o
+endif
 libobj-$(CONFIG_KVM) += qemu-kvm-helper.o
 
 libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
@@ -220,7 +225,7 @@ LIBS+=-lpci
 endif
 
 # Hardware support
-obj-ia64-y += ide.o pckbd.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
+obj-ia64-y += ide.o pckbd.o vga.o $(sound-obj-y) dma.o isa-bus.o
 obj-ia64-y += fdc.o mc146818rtc.o serial.o i8259.o ipf.o
 obj-ia64-y += cirrus_vga.o parallel.o acpi.o piix_pci.o
 obj-ia64-y += usb-uhci.o
@@ -322,11 +327,6 @@ obj-sh4-y += ide.o
 obj-m68k-y = an5206.o mcf5206.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o
 obj-m68k-y += m68k-semi.o dummy_m68k.o
 
-ifeq ($(TARGET_ARCH), ia64)
-firmware.o: firmware.c
-	$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
-endif
-
 main.o vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
 
 vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
diff --git a/configure b/configure
index 719d26a..509d851 100755
--- a/configure
+++ b/configure
@@ -2198,7 +2198,7 @@ case "$target_arch2" in
     fi
 esac
 case "$target_arch2" in
-  i386|x86_64|ppcemb|ppc|ppc64)
+  i386|x86_64|ia64|ppcemb|ppc|ppc64)
     # Make sure the target and host cpus are compatible
     if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
       \( "$target_arch2" = "$cpu" -o \
diff --git a/qemu-kvm-ia64.c b/qemu-kvm-ia64.c
index 062fbd4..e6e8884 100644
--- a/qemu-kvm-ia64.c
+++ b/qemu-kvm-ia64.c
@@ -1,147 +1,81 @@
-#include "config.h"
-#include "config-host.h"
-
+/*
+ * libkvm-ia64.c :Kernel-based Virtual Machine control library for ia64.
+ *
+ * This library provides an API to control the kvm hardware virtualization
+ * module.
+ *
+ * Copyright (C) 2006 Qumranet
+ *
+ * Authors:
+ *
+ *  Avi Kivity <avi@qumranet.com>
+ *  Yaniv Kamay <yaniv@qumranet.com>
+ *
+ * Copyright (C) 2007 Intel
+ * Added by : Zhang Xiantao <xiantao.zhang@intel.com>
+ *
+ * This work is licensed under the GNU LGPL license, version 2.
+ *
+ */
+
+#include "libkvm.h"
+#include <errno.h>
+#include <sys/ioctl.h>
 #include <string.h>
+#include <unistd.h>
+#include <stropts.h>
+#include <sys/mman.h>
+#include <stdio.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
 
-#include "hw/hw.h"
-#include "qemu-kvm.h"
-#include <pthread.h>
-#include <sys/utsname.h>
-#include <sys/io.h>
-
-
-
-int kvm_arch_qemu_create_context(void)
-{
-    return 0;
-}
-
-void kvm_arch_load_regs(CPUState *env)
+int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes,
+			void **vm_mem)
 {
-}
+	int r;
 
+	r = kvm_init_coalesced_mmio(kvm);
+	if (r < 0)
+		return r;
 
-void kvm_arch_save_regs(CPUState *env)
-{
+	return 0;
 }
 
-int kvm_arch_init_vcpu(CPUState *cenv)
+int kvm_arch_run(kvm_vcpu_context_t vcpu)
 {
-    return 0;
-}
+	int r = 0;
 
-int kvm_arch_halt(void *opaque, kvm_vcpu_context_t vcpu)
-{
-    CPUState *env = cpu_single_env;
-    env->hflags |= HF_HALTED_MASK;
-    return 1;
-}
+	switch (vcpu->run->exit_reason) {
+		default:
+			r = 1;
+			break;
+	}
 
-void kvm_arch_pre_kvm_run(void *opaque, CPUState *env)
-{
-}
-
-void kvm_arch_post_kvm_run(void *opaque, CPUState *env)
-{
-}
-
-int kvm_arch_has_work(CPUState *env)
-{
-    return 1;
-}
-
-int kvm_arch_try_push_interrupts(void *opaque)
-{
-    return 1;
-}
-
-void kvm_arch_update_regs_for_sipi(CPUState *env)
-{
+	return r;
 }
 
-int kvm_arch_insert_sw_breakpoint(CPUState *current_env,
-                                  struct kvm_sw_breakpoint *bp)
+void kvm_show_code(kvm_vcpu_context_t vcpu)
 {
-    return -EINVAL;
+	fprintf(stderr, "kvm_show_code not supported yet!\n");
 }
 
-int kvm_arch_remove_sw_breakpoint(CPUState *current_env,
-                                  struct kvm_sw_breakpoint *bp)
+void kvm_show_regs(kvm_vcpu_context_t vcpu)
 {
-    return -EINVAL;
+	fprintf(stderr,"kvm_show_regs not supportted today!\n");
 }
 
-int kvm_arch_insert_hw_breakpoint(target_ulong addr,
-				  target_ulong len, int type)
-{
-    return -ENOSYS;
-}
-
-int kvm_arch_remove_hw_breakpoint(target_ulong addr,
-				  target_ulong len, int type)
-{
-    return -ENOSYS;
-}
-
-void kvm_arch_remove_all_hw_breakpoints(void)
-{
-}
-
-int kvm_arch_debug(struct kvm_debug_exit_arch *arch_info)
+int kvm_create_memory_alias(kvm_context_t kvm,
+			    uint64_t phys_start,
+			    uint64_t len,
+			    uint64_t target_phys)
 {
     return 0;
 }
 
-void kvm_arch_update_guest_debug(CPUState *env, struct kvm_guest_debug *dbg)
-{
-}
-
-void kvm_arch_save_mpstate(CPUState *env)
-{
-#ifdef KVM_CAP_MP_STATE
-    int r;
-    struct kvm_mp_state mp_state;
-
-    r = kvm_get_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
-    if (r < 0)
-        env->mp_state = -1;
-    else
-        env->mp_state = mp_state.mp_state;
-#endif
-}
-
-void kvm_arch_load_mpstate(CPUState *env)
-{
-#ifdef KVM_CAP_MP_STATE
-    struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
-
-    /*
-     * -1 indicates that the host did not support GET_MP_STATE ioctl,
-     *  so don't touch it.
-     */
-    if (env->mp_state != -1)
-        kvm_set_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
-#endif
-}
-
-void kvm_arch_cpu_reset(CPUState *env)
-{
-    if (kvm_irqchip_in_kernel(kvm_context)) {
-#ifdef KVM_CAP_MP_STATE
-	kvm_reset_mpstate(env->kvm_cpu_state.vcpu_ctx);
-#endif
-    } else {
-	env->interrupt_request &= ~CPU_INTERRUPT_HARD;
-	env->halted = 1;
-    }
-}
-
-void kvm_arch_do_ioperm(void *_data)
-{
-    struct ioperm_data *data = _data;
-    ioperm(data->start_port, data->num, data->turn_on);
-}
-
-void kvm_arch_process_irqchip_events(CPUState *env)
+int kvm_destroy_memory_alias(kvm_context_t kvm, uint64_t phys_start)
 {
+	return 0;
 }
diff --git a/qemu-kvm.c b/qemu-kvm.c
index b59e403..a4e314a 100644
--- a/qemu-kvm.c
+++ b/qemu-kvm.c
@@ -2171,7 +2171,6 @@ void kvm_set_phys_mem(target_phys_addr_t start_addr, ram_addr_t size,
         }
         if (must_use_aliases_target(start_addr))
             return;
-#endif
         while (size > 0) {
             p = find_mapping(start_addr);
             if (p) {
@@ -2186,6 +2185,7 @@ void kvm_set_phys_mem(target_phys_addr_t start_addr, ram_addr_t size,
             }
         }
         return;
+#endif
     }
 
     r = kvm_is_containing_region(kvm_context, start_addr, size);
diff --git a/target-ia64/kvm.c b/target-ia64/kvm.c
new file mode 100644
index 0000000..d01f634
--- /dev/null
+++ b/target-ia64/kvm.c
@@ -0,0 +1,154 @@
+#include "config.h"
+#include "config-host.h"
+
+#include <string.h>
+
+#include "hw/hw.h"
+#include "qemu-kvm.h"
+#include <pthread.h>
+#include <sys/utsname.h>
+#include <sys/io.h>
+
+
+
+int kvm_arch_qemu_create_context(void)
+{
+    return 0;
+}
+
+void kvm_arch_load_regs(CPUState *env)
+{
+}
+
+
+void kvm_arch_save_regs(CPUState *env)
+{
+}
+
+int kvm_arch_qemu_init_env(CPUState *cenv)
+{
+    return 0;
+}
+
+int kvm_arch_halt(void *opaque, kvm_vcpu_context_t vcpu)
+{
+    CPUState *env = cpu_single_env;
+    env->hflags |= HF_HALTED_MASK;
+    return 1;
+}
+
+void kvm_arch_pre_kvm_run(void *opaque, CPUState *env)
+{
+}
+
+void kvm_arch_post_kvm_run(void *opaque, CPUState *env)
+{
+}
+
+int kvm_arch_has_work(CPUState *env)
+{
+    return 1;
+}
+
+int kvm_arch_try_push_interrupts(void *opaque)
+{
+    return 1;
+}
+
+void kvm_arch_update_regs_for_sipi(CPUState *env)
+{
+}
+
+int kvm_arch_insert_sw_breakpoint(CPUState *current_env,
+                                  struct kvm_sw_breakpoint *bp)
+{
+    return -EINVAL;
+}
+
+int kvm_arch_remove_sw_breakpoint(CPUState *current_env,
+                                  struct kvm_sw_breakpoint *bp)
+{
+    return -EINVAL;
+}
+
+int kvm_arch_insert_hw_breakpoint(target_ulong addr,
+				  target_ulong len, int type)
+{
+    return -ENOSYS;
+}
+
+int kvm_arch_remove_hw_breakpoint(target_ulong addr,
+				  target_ulong len, int type)
+{
+    return -ENOSYS;
+}
+
+void kvm_arch_remove_all_hw_breakpoints(void)
+{
+}
+
+int kvm_arch_debug(struct kvm_debug_exit_arch *arch_info)
+{
+    return 0;
+}
+
+void kvm_arch_update_guest_debug(CPUState *env, struct kvm_guest_debug *dbg)
+{
+}
+
+void kvm_arch_save_mpstate(CPUState *env)
+{
+#ifdef KVM_CAP_MP_STATE
+    int r;
+    struct kvm_mp_state mp_state;
+
+    r = kvm_get_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
+    if (r < 0)
+        env->mp_state = -1;
+    else
+        env->mp_state = mp_state.mp_state;
+#endif
+}
+
+void kvm_arch_load_mpstate(CPUState *env)
+{
+#ifdef KVM_CAP_MP_STATE
+    struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
+
+    /*
+     * -1 indicates that the host did not support GET_MP_STATE ioctl,
+     *  so don't touch it.
+     */
+    if (env->mp_state != -1)
+        kvm_set_mpstate(env->kvm_cpu_state.vcpu_ctx, &mp_state);
+#endif
+}
+
+void kvm_arch_cpu_reset(CPUState *env)
+{
+    if (kvm_irqchip_in_kernel(kvm_context)) {
+#ifdef KVM_CAP_MP_STATE
+	kvm_reset_mpstate(env->kvm_cpu_state.vcpu_ctx);
+#endif
+    } else {
+	env->interrupt_request &= ~CPU_INTERRUPT_HARD;
+	env->halted = 1;
+    }
+}
+
+void kvm_arch_do_ioperm(void *_data)
+{
+    struct ioperm_data *data = _data;
+    ioperm(data->start_port, data->num, data->turn_on);
+}
+
+void kvm_arch_process_irqchip_events(CPUState *env)
+{
+}
+
+int kvm_arch_init_vcpu(CPUState *env)
+{
+    return 0;
+}
+
+#include"qemu-kvm-ia64.c"
diff --git a/target-ia64/libkvm.h b/target-ia64/libkvm.h
index 417f7f1..8e2d413 100644
--- a/target-ia64/libkvm.h
+++ b/target-ia64/libkvm.h
@@ -18,8 +18,6 @@
 #ifndef KVM_IA64_H
 #define KVM_IA64_H
 
-#include "libkvm-all.h"
-
 extern int kvm_page_size;
 
 #define PAGE_SIZE kvm_page_size
diff --git a/target-ia64/op_helper.c b/target-ia64/op_helper.c
index d51525a..3c2e1a2 100644
--- a/target-ia64/op_helper.c
+++ b/target-ia64/op_helper.c
@@ -42,7 +42,6 @@ CPUState *cpu_ia64_init(const char *cpu_model)
     cpu_exec_init(env);
     cpu_reset(env);
     if (kvm_enabled()) {
-        kvm_qemu_init_env(env);
         kvm_init_vcpu(env);
     }
     return env;
@@ -102,3 +101,7 @@ void tlb_fill (target_ulong addr, int is_write, int is_user, void *retaddr)
 {
     return;
 }
+
+void helper_cpuid(void)
+{
+}
-- 
1.6.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
  2009-08-12  4:03 ` Zhang, Xiantao
@ 2009-12-08  0:29   ` Alexander Graf
  -1 siblings, 0 replies; 18+ messages in thread
From: Alexander Graf @ 2009-12-08  0:29 UTC (permalink / raw)
  To: Zhang, Xiantao; +Cc: avi, kvm-ia64, kvm

Hi Xiantao,

On 12.08.2009, at 06:03, Zhang, Xiantao wrote:

> From 2d3d6cf55f7fecd9a9fd7c764e43b1ee56c7eebb Mon Sep 17 00:00:00 2001
> From: Xiantao Zhang <xiantao.zhang@intel.com>
> Date: Wed, 12 Aug 2009 11:39:33 +0800
> Subject: [PATCH] qemu-kvm: fix ia64 build breakage
> 
> fix some configure issues.

Do you have any plans to get the IA64 target building for 0.12 again?

Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-12-08  0:29   ` Alexander Graf
  0 siblings, 0 replies; 18+ messages in thread
From: Alexander Graf @ 2009-12-08  0:29 UTC (permalink / raw)
  To: kvm-ia64

Hi Xiantao,

On 12.08.2009, at 06:03, Zhang, Xiantao wrote:

> From 2d3d6cf55f7fecd9a9fd7c764e43b1ee56c7eebb Mon Sep 17 00:00:00 2001
> From: Xiantao Zhang <xiantao.zhang@intel.com>
> Date: Wed, 12 Aug 2009 11:39:33 +0800
> Subject: [PATCH] qemu-kvm: fix ia64 build breakage
> 
> fix some configure issues.

Do you have any plans to get the IA64 target building for 0.12 again?

Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] qemu-kvm: fix ia64 build breakage
  2009-08-12  4:03 ` Zhang, Xiantao
@ 2009-12-09  4:37     ` Zhang, Xiantao
  -1 siblings, 0 replies; 18+ messages in thread
From: Zhang, Xiantao @ 2009-12-09  4:37 UTC (permalink / raw)
  To: Alexander Graf; +Cc: avi, kvm-ia64, kvm

I don't think how much effort needs to make it work again.  So maybe need to evaluate it first, and give you the answer later.  By the way,  are you using it now ? 
Xiantao

Alexander Graf wrote:
> Hi Xiantao,
> 
> On 12.08.2009, at 06:03, Zhang, Xiantao wrote:
> 
>> From 2d3d6cf55f7fecd9a9fd7c764e43b1ee56c7eebb Mon Sep 17 00:00:00
>> 2001 From: Xiantao Zhang <xiantao.zhang@intel.com>
>> Date: Wed, 12 Aug 2009 11:39:33 +0800
>> Subject: [PATCH] qemu-kvm: fix ia64 build breakage
>> 
>> fix some configure issues.
> 
> Do you have any plans to get the IA64 target building for 0.12 again?
> 
> Alex


^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-12-09  4:37     ` Zhang, Xiantao
  0 siblings, 0 replies; 18+ messages in thread
From: Zhang, Xiantao @ 2009-12-09  4:37 UTC (permalink / raw)
  To: kvm-ia64

I don't think how much effort needs to make it work again.  So maybe need to evaluate it first, and give you the answer later.  By the way,  are you using it now ? 
Xiantao

Alexander Graf wrote:
> Hi Xiantao,
> 
> On 12.08.2009, at 06:03, Zhang, Xiantao wrote:
> 
>> From 2d3d6cf55f7fecd9a9fd7c764e43b1ee56c7eebb Mon Sep 17 00:00:00
>> 2001 From: Xiantao Zhang <xiantao.zhang@intel.com>
>> Date: Wed, 12 Aug 2009 11:39:33 +0800
>> Subject: [PATCH] qemu-kvm: fix ia64 build breakage
>> 
>> fix some configure issues.
> 
> Do you have any plans to get the IA64 target building for 0.12 again?
> 
> Alex


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
  2009-08-12  4:03 ` Zhang, Xiantao
@ 2009-12-09  6:58       ` Alexander Graf
  -1 siblings, 0 replies; 18+ messages in thread
From: Alexander Graf @ 2009-12-09  6:58 UTC (permalink / raw)
  To: Zhang, Xiantao; +Cc: avi, kvm-ia64, kvm


Am 09.12.2009 um 05:37 schrieb "Zhang, Xiantao"  
<xiantao.zhang@intel.com>:

> I don't think how much effort needs to make it work again.  So maybe  
> need to evaluate it first, and give you the answer later.  By the  
> way,  are you using it now ?

No, but sles11 ships with it and I want to make sure we're regression  
free :).

Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-12-09  6:58       ` Alexander Graf
  0 siblings, 0 replies; 18+ messages in thread
From: Alexander Graf @ 2009-12-09  6:58 UTC (permalink / raw)
  To: kvm-ia64


Am 09.12.2009 um 05:37 schrieb "Zhang, Xiantao"  
<xiantao.zhang@intel.com>:

> I don't think how much effort needs to make it work again.  So maybe  
> need to evaluate it first, and give you the answer later.  By the  
> way,  are you using it now ?

No, but sles11 ships with it and I want to make sure we're regression  
free :).

Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] qemu-kvm: fix ia64 build breakage
  2009-08-12  4:03 ` Zhang, Xiantao
@ 2009-12-09  9:50         ` Zhang, Xiantao
  -1 siblings, 0 replies; 18+ messages in thread
From: Zhang, Xiantao @ 2009-12-09  9:50 UTC (permalink / raw)
  To: Alexander Graf; +Cc: avi, kvm-ia64, kvm

So you mean Sles11-ia64 will include it ? 
Xiantao 

-----Original Message-----
From: kvm-ia64-owner@vger.kernel.org [mailto:kvm-ia64-owner@vger.kernel.org] On Behalf Of Alexander Graf
Sent: Wednesday, December 09, 2009 2:59 PM
To: Zhang, Xiantao
Cc: avi@redhat.com; kvm-ia64@vger.kernel.org; kvm@vger.kernel.org
Subject: Re: [PATCH] qemu-kvm: fix ia64 build breakage


Am 09.12.2009 um 05:37 schrieb "Zhang, Xiantao"  
<xiantao.zhang@intel.com>:

> I don't think how much effort needs to make it work again.  So maybe  
> need to evaluate it first, and give you the answer later.  By the  
> way,  are you using it now ?

No, but sles11 ships with it and I want to make sure we're regression  
free :).

Alex
--
To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-12-09  9:50         ` Zhang, Xiantao
  0 siblings, 0 replies; 18+ messages in thread
From: Zhang, Xiantao @ 2009-12-09  9:50 UTC (permalink / raw)
  To: kvm-ia64

So you mean Sles11-ia64 will include it ? 
Xiantao 

-----Original Message-----
From: kvm-ia64-owner@vger.kernel.org [mailto:kvm-ia64-owner@vger.kernel.org] On Behalf Of Alexander Graf
Sent: Wednesday, December 09, 2009 2:59 PM
To: Zhang, Xiantao
Cc: avi@redhat.com; kvm-ia64@vger.kernel.org; kvm@vger.kernel.org
Subject: Re: [PATCH] qemu-kvm: fix ia64 build breakage


Am 09.12.2009 um 05:37 schrieb "Zhang, Xiantao"  
<xiantao.zhang@intel.com>:

> I don't think how much effort needs to make it work again.  So maybe  
> need to evaluate it first, and give you the answer later.  By the  
> way,  are you using it now ?

No, but sles11 ships with it and I want to make sure we're regression  
free :).

Alex
--
To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
  2009-08-12  4:03 ` Zhang, Xiantao
@ 2009-12-09 10:34           ` Alexander Graf
  -1 siblings, 0 replies; 18+ messages in thread
From: Alexander Graf @ 2009-12-09 10:34 UTC (permalink / raw)
  To: Zhang, Xiantao; +Cc: avi, kvm-ia64, kvm

No, I mean sles11-ia64 includes it already as  'Technology Preview'  
and I either need to keep the update path open or drop it :).

Alex


Am 09.12.2009 um 10:50 schrieb "Zhang, Xiantao"  
<xiantao.zhang@intel.com>:

> So you mean Sles11-ia64 will include it ?
> Xiantao
>
> -----Original Message-----
> From: kvm-ia64-owner@vger.kernel.org [mailto:kvm-ia64- 
> owner@vger.kernel.org] On Behalf Of Alexander Graf
> Sent: Wednesday, December 09, 2009 2:59 PM
> To: Zhang, Xiantao
> Cc: avi@redhat.com; kvm-ia64@vger.kernel.org; kvm@vger.kernel.org
> Subject: Re: [PATCH] qemu-kvm: fix ia64 build breakage
>
>
> Am 09.12.2009 um 05:37 schrieb "Zhang, Xiantao"
> <xiantao.zhang@intel.com>:
>
>> I don't think how much effort needs to make it work again.  So maybe
>> need to evaluate it first, and give you the answer later.  By the
>> way,  are you using it now ?
>
> No, but sles11 ships with it and I want to make sure we're regression
> free :).
>
> Alex
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-12-09 10:34           ` Alexander Graf
  0 siblings, 0 replies; 18+ messages in thread
From: Alexander Graf @ 2009-12-09 10:34 UTC (permalink / raw)
  To: kvm-ia64

No, I mean sles11-ia64 includes it already as  'Technology Preview'  
and I either need to keep the update path open or drop it :).

Alex


Am 09.12.2009 um 10:50 schrieb "Zhang, Xiantao"  
<xiantao.zhang@intel.com>:

> So you mean Sles11-ia64 will include it ?
> Xiantao
>
> -----Original Message-----
> From: kvm-ia64-owner@vger.kernel.org [mailto:kvm-ia64- 
> owner@vger.kernel.org] On Behalf Of Alexander Graf
> Sent: Wednesday, December 09, 2009 2:59 PM
> To: Zhang, Xiantao
> Cc: avi@redhat.com; kvm-ia64@vger.kernel.org; kvm@vger.kernel.org
> Subject: Re: [PATCH] qemu-kvm: fix ia64 build breakage
>
>
> Am 09.12.2009 um 05:37 schrieb "Zhang, Xiantao"
> <xiantao.zhang@intel.com>:
>
>> I don't think how much effort needs to make it work again.  So maybe
>> need to evaluate it first, and give you the answer later.  By the
>> way,  are you using it now ?
>
> No, but sles11 ships with it and I want to make sure we're regression
> free :).
>
> Alex
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] qemu-kvm: fix ia64 build breakage
  2009-08-12  4:03 ` Zhang, Xiantao
@ 2009-12-13  8:19             ` Zhang, Xiantao
  -1 siblings, 0 replies; 18+ messages in thread
From: Zhang, Xiantao @ 2009-12-13  8:19 UTC (permalink / raw)
  To: Alexander Graf; +Cc: avi, kvm-ia64, kvm

Hi, Alex
   Sorry for late reply.  I think we also need to enhance the support in Sles11 and make it better. But so far, we have no plan to make it work in Qemu-0.12 and we still recommend previous kvm release tarball(e.g. kvm-85) as the good candidate for product.  Thanks! :)
Xiantao 

-----Original Message-----
From: Alexander Graf [mailto:agraf@suse.de] 
Sent: Wednesday, December 09, 2009 6:34 PM
To: Zhang, Xiantao
Cc: avi@redhat.com; kvm-ia64@vger.kernel.org; kvm@vger.kernel.org
Subject: Re: [PATCH] qemu-kvm: fix ia64 build breakage

No, I mean sles11-ia64 includes it already as  'Technology Preview'  
and I either need to keep the update path open or drop it :).

Alex


Am 09.12.2009 um 10:50 schrieb "Zhang, Xiantao"  
<xiantao.zhang@intel.com>:

> So you mean Sles11-ia64 will include it ?
> Xiantao
>
> -----Original Message-----
> From: kvm-ia64-owner@vger.kernel.org [mailto:kvm-ia64- 
> owner@vger.kernel.org] On Behalf Of Alexander Graf
> Sent: Wednesday, December 09, 2009 2:59 PM
> To: Zhang, Xiantao
> Cc: avi@redhat.com; kvm-ia64@vger.kernel.org; kvm@vger.kernel.org
> Subject: Re: [PATCH] qemu-kvm: fix ia64 build breakage
>
>
> Am 09.12.2009 um 05:37 schrieb "Zhang, Xiantao"
> <xiantao.zhang@intel.com>:
>
>> I don't think how much effort needs to make it work again.  So maybe
>> need to evaluate it first, and give you the answer later.  By the
>> way,  are you using it now ?
>
> No, but sles11 ships with it and I want to make sure we're regression
> free :).
>
> Alex
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-12-13  8:19             ` Zhang, Xiantao
  0 siblings, 0 replies; 18+ messages in thread
From: Zhang, Xiantao @ 2009-12-13  8:19 UTC (permalink / raw)
  To: kvm-ia64

Hi, Alex
   Sorry for late reply.  I think we also need to enhance the support in Sles11 and make it better. But so far, we have no plan to make it work in Qemu-0.12 and we still recommend previous kvm release tarball(e.g. kvm-85) as the good candidate for product.  Thanks! :)
Xiantao 

-----Original Message-----
From: Alexander Graf [mailto:agraf@suse.de] 
Sent: Wednesday, December 09, 2009 6:34 PM
To: Zhang, Xiantao
Cc: avi@redhat.com; kvm-ia64@vger.kernel.org; kvm@vger.kernel.org
Subject: Re: [PATCH] qemu-kvm: fix ia64 build breakage

No, I mean sles11-ia64 includes it already as  'Technology Preview'  
and I either need to keep the update path open or drop it :).

Alex


Am 09.12.2009 um 10:50 schrieb "Zhang, Xiantao"  
<xiantao.zhang@intel.com>:

> So you mean Sles11-ia64 will include it ?
> Xiantao
>
> -----Original Message-----
> From: kvm-ia64-owner@vger.kernel.org [mailto:kvm-ia64- 
> owner@vger.kernel.org] On Behalf Of Alexander Graf
> Sent: Wednesday, December 09, 2009 2:59 PM
> To: Zhang, Xiantao
> Cc: avi@redhat.com; kvm-ia64@vger.kernel.org; kvm@vger.kernel.org
> Subject: Re: [PATCH] qemu-kvm: fix ia64 build breakage
>
>
> Am 09.12.2009 um 05:37 schrieb "Zhang, Xiantao"
> <xiantao.zhang@intel.com>:
>
>> I don't think how much effort needs to make it work again.  So maybe
>> need to evaluate it first, and give you the answer later.  By the
>> way,  are you using it now ?
>
> No, but sles11 ships with it and I want to make sure we're regression
> free :).
>
> Alex
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
  2009-08-12  4:03 ` Zhang, Xiantao
@ 2009-12-13  9:33               ` Avi Kivity
  -1 siblings, 0 replies; 18+ messages in thread
From: Avi Kivity @ 2009-12-13  9:33 UTC (permalink / raw)
  To: Zhang, Xiantao; +Cc: Alexander Graf, kvm-ia64, kvm

On 12/13/2009 10:19 AM, Zhang, Xiantao wrote:
> Hi, Alex
>     Sorry for late reply.  I think we also need to enhance the support in Sles11 and make it better. But so far, we have no plan to make it work in Qemu-0.12 and we still recommend previous kvm release tarball(e.g. kvm-85) as the good candidate for product.  Thanks! :)
>    

The problem is the management stack expects a certain version of qemu 
for other features.

-- 
error compiling committee.c: too many arguments to function


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-12-13  9:33               ` Avi Kivity
  0 siblings, 0 replies; 18+ messages in thread
From: Avi Kivity @ 2009-12-13  9:33 UTC (permalink / raw)
  To: kvm-ia64

On 12/13/2009 10:19 AM, Zhang, Xiantao wrote:
> Hi, Alex
>     Sorry for late reply.  I think we also need to enhance the support in Sles11 and make it better. But so far, we have no plan to make it work in Qemu-0.12 and we still recommend previous kvm release tarball(e.g. kvm-85) as the good candidate for product.  Thanks! :)
>    

The problem is the management stack expects a certain version of qemu 
for other features.

-- 
error compiling committee.c: too many arguments to function


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
  2009-08-12  4:03 ` Zhang, Xiantao
@ 2009-12-13 11:31                 ` Alexander Graf
  -1 siblings, 0 replies; 18+ messages in thread
From: Alexander Graf @ 2009-12-13 11:31 UTC (permalink / raw)
  To: Avi Kivity; +Cc: Zhang, Xiantao, kvm-ia64, kvm


On 13.12.2009, at 10:33, Avi Kivity wrote:

> On 12/13/2009 10:19 AM, Zhang, Xiantao wrote:
>> Hi, Alex
>>    Sorry for late reply.  I think we also need to enhance the support in Sles11 and make it better. But so far, we have no plan to make it work in Qemu-0.12 and we still recommend previous kvm release tarball(e.g. kvm-85) as the good candidate for product.  Thanks! :)
>>   
> 
> The problem is the management stack expects a certain version of qemu for other features.

Not only that. We're using a common code strategy for all flavors. So you won't be able to find time to get 0.12 working?

Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH] qemu-kvm: fix ia64 build breakage
@ 2009-12-13 11:31                 ` Alexander Graf
  0 siblings, 0 replies; 18+ messages in thread
From: Alexander Graf @ 2009-12-13 11:31 UTC (permalink / raw)
  To: kvm-ia64


On 13.12.2009, at 10:33, Avi Kivity wrote:

> On 12/13/2009 10:19 AM, Zhang, Xiantao wrote:
>> Hi, Alex
>>    Sorry for late reply.  I think we also need to enhance the support in Sles11 and make it better. But so far, we have no plan to make it work in Qemu-0.12 and we still recommend previous kvm release tarball(e.g. kvm-85) as the good candidate for product.  Thanks! :)
>>   
> 
> The problem is the management stack expects a certain version of qemu for other features.

Not only that. We're using a common code strategy for all flavors. So you won't be able to find time to get 0.12 working?

Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2009-12-13 11:31 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-12  4:03 [PATCH] qemu-kvm: fix ia64 build breakage Zhang, Xiantao
2009-08-12  4:03 ` Zhang, Xiantao
2009-12-08  0:29 ` Alexander Graf
2009-12-08  0:29   ` Alexander Graf
2009-12-09  4:37   ` Zhang, Xiantao
2009-12-09  4:37     ` Zhang, Xiantao
2009-12-09  6:58     ` Alexander Graf
2009-12-09  6:58       ` Alexander Graf
2009-12-09  9:50       ` Zhang, Xiantao
2009-12-09  9:50         ` Zhang, Xiantao
2009-12-09 10:34         ` Alexander Graf
2009-12-09 10:34           ` Alexander Graf
2009-12-13  8:19           ` Zhang, Xiantao
2009-12-13  8:19             ` Zhang, Xiantao
2009-12-13  9:33             ` Avi Kivity
2009-12-13  9:33               ` Avi Kivity
2009-12-13 11:31               ` Alexander Graf
2009-12-13 11:31                 ` Alexander Graf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.