* [PATCH] Split kvm_vcpu to support new archs (V2)
@ 2007-10-20 7:56 Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDC85EF74-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 10+ messages in thread
From: Zhang, Xiantao @ 2007-10-20 7:56 UTC (permalink / raw)
To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
[-- Attachment #1: Type: text/plain, Size: 380 bytes --]
Hi Avi,
Thank you for your comments. Seems my mailer has something wrong.
Attached the patch here.
In this patch, according to your and community's suggestions, I changed
the kvm_vcpu
structure to two parts. To avoid the much intrusive into current code,
one is common part which is defined as a macro, and the other one is
arch-specific part.
Thanks
Xiantao
[-- Attachment #2: split-vcpu.patch --]
[-- Type: application/octet-stream, Size: 10805 bytes --]
From b7d7c40a7d28370e7e8e7505a4af7195024defb4 Mon Sep 17 00:00:00 2001
From: Zhang Xiantao <xiantao.zhang@intel.com>
Date: Sat, 20 Oct 2007 15:34:38 +0800
Subject: [PATCH] First step to split kvm_vcpu. Currently, we just use an macro to define the common fields in kvm_vcpu for all archs, and all archs need to define its own kvm_vcpu struct.
Signed-off-by: Zhang Xiantao <xiantao.zhang@intel.com>
---
drivers/kvm/ioapic.c | 2 +
drivers/kvm/irq.c | 1 +
drivers/kvm/kvm.h | 154 ++++++++-------------------------------------
drivers/kvm/kvm_main.c | 4 +-
drivers/kvm/lapic.c | 2 +
drivers/kvm/mmu.c | 1 +
drivers/kvm/svm.c | 2 +-
drivers/kvm/vmx.c | 1 +
drivers/kvm/x86.h | 117 ++++++++++++++++++++++++++++++++++
drivers/kvm/x86_emulate.c | 1 +
10 files changed, 155 insertions(+), 130 deletions(-)
diff --git a/drivers/kvm/ioapic.c b/drivers/kvm/ioapic.c
index 1a5e59a..cf1d50b 100644
--- a/drivers/kvm/ioapic.c
+++ b/drivers/kvm/ioapic.c
@@ -27,6 +27,8 @@
*/
#include "kvm.h"
+#include "x86.h"
+
#include <linux/kvm.h>
#include <linux/mm.h>
#include <linux/highmem.h>
diff --git a/drivers/kvm/irq.c b/drivers/kvm/irq.c
index 851995d..22bfeee 100644
--- a/drivers/kvm/irq.c
+++ b/drivers/kvm/irq.c
@@ -22,6 +22,7 @@
#include <linux/module.h>
#include "kvm.h"
+#include "x86.h"
#include "irq.h"
/*
diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h
index c38e4a3..e6fd219 100644
--- a/drivers/kvm/kvm.h
+++ b/drivers/kvm/kvm.h
@@ -308,93 +308,37 @@ struct kvm_io_device *kvm_io_bus_find_dev(struct kvm_io_bus *bus, gpa_t addr);
void kvm_io_bus_register_dev(struct kvm_io_bus *bus,
struct kvm_io_device *dev);
-struct kvm_vcpu {
- struct kvm *kvm;
- struct preempt_notifier preempt_notifier;
- int vcpu_id;
- struct mutex mutex;
- int cpu;
- u64 host_tsc;
- struct kvm_run *run;
- int interrupt_window_open;
- int guest_mode;
- unsigned long requests;
- unsigned long irq_summary; /* bit vector: 1 per word in irq_pending */
- DECLARE_BITMAP(irq_pending, KVM_NR_INTERRUPTS);
- unsigned long regs[NR_VCPU_REGS]; /* for rsp: vcpu_load_rsp_rip() */
- unsigned long rip; /* needs vcpu_load_rsp_rip() */
-
- unsigned long cr0;
- unsigned long cr2;
- unsigned long cr3;
- unsigned long cr4;
- unsigned long cr8;
- u64 pdptrs[4]; /* pae */
- u64 shadow_efer;
- u64 apic_base;
- struct kvm_lapic *apic; /* kernel irqchip context */
-#define VCPU_MP_STATE_RUNNABLE 0
-#define VCPU_MP_STATE_UNINITIALIZED 1
-#define VCPU_MP_STATE_INIT_RECEIVED 2
-#define VCPU_MP_STATE_SIPI_RECEIVED 3
-#define VCPU_MP_STATE_HALTED 4
- int mp_state;
- int sipi_vector;
- u64 ia32_misc_enable_msr;
-
- struct kvm_mmu mmu;
-
- struct kvm_mmu_memory_cache mmu_pte_chain_cache;
- struct kvm_mmu_memory_cache mmu_rmap_desc_cache;
- struct kvm_mmu_memory_cache mmu_page_cache;
- struct kvm_mmu_memory_cache mmu_page_header_cache;
-
- gfn_t last_pt_write_gfn;
- int last_pt_write_count;
- u64 *last_pte_updated;
-
- struct kvm_guest_debug guest_debug;
-
- struct i387_fxsave_struct host_fx_image;
- struct i387_fxsave_struct guest_fx_image;
- int fpu_active;
- int guest_fpu_loaded;
-
- int mmio_needed;
- int mmio_read_completed;
- int mmio_is_write;
- int mmio_size;
- unsigned char mmio_data[8];
+#ifdef CONFIG_HAS_IOMEM
+#define KVM_VCPU_MMIO \
+ int mmio_needed; \
+ int mmio_read_completed; \
+ int mmio_is_write; \
+ int mmio_size; \
+ unsigned char mmio_data[8]; \
gpa_t mmio_phys_addr;
- gva_t mmio_fault_cr2;
- struct kvm_pio_request pio;
- void *pio_data;
- wait_queue_head_t wq;
- int sigset_active;
- sigset_t sigset;
+#else
+#define KVM_VCPU_MMIO
- struct kvm_stat stat;
+#endif
- struct {
- int active;
- u8 save_iopl;
- struct kvm_save_segment {
- u16 selector;
- unsigned long base;
- u32 limit;
- u32 ar;
- } tr, es, ds, fs, gs;
- } rmode;
- int halt_request; /* real mode on Intel only */
-
- int cpuid_nent;
- struct kvm_cpuid_entry cpuid_entries[KVM_MAX_CPUID_ENTRIES];
-
- /* emulate context */
-
- struct x86_emulate_ctxt emulate_ctxt;
-};
+#define KVM_VCPU_COMM \
+ struct kvm *kvm; \
+ struct preempt_notifier preempt_notifier; \
+ int vcpu_id; \
+ struct mutex mutex; \
+ int cpu; \
+ struct kvm_run *run; \
+ int guest_mode; \
+ unsigned long requests; \
+ struct kvm_guest_debug guest_debug; \
+ int fpu_active; \
+ int guest_fpu_loaded; \
+ wait_queue_head_t wq; \
+ int sigset_active; \
+ sigset_t sigset; \
+ struct kvm_stat stat; \
+ KVM_VCPU_MMIO
struct kvm_mem_alias {
gfn_t base_gfn;
@@ -677,50 +621,6 @@ static inline void kvm_guest_exit(void)
current->flags &= ~PF_VCPU;
}
-static inline int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t gva,
- u32 error_code)
-{
- return vcpu->mmu.page_fault(vcpu, gva, error_code);
-}
-
-static inline void kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu)
-{
- if (unlikely(vcpu->kvm->n_free_mmu_pages < KVM_MIN_FREE_MMU_PAGES))
- __kvm_mmu_free_some_pages(vcpu);
-}
-
-static inline int kvm_mmu_reload(struct kvm_vcpu *vcpu)
-{
- if (likely(vcpu->mmu.root_hpa != INVALID_PAGE))
- return 0;
-
- return kvm_mmu_load(vcpu);
-}
-
-static inline int is_long_mode(struct kvm_vcpu *vcpu)
-{
-#ifdef CONFIG_X86_64
- return vcpu->shadow_efer & EFER_LME;
-#else
- return 0;
-#endif
-}
-
-static inline int is_pae(struct kvm_vcpu *vcpu)
-{
- return vcpu->cr4 & X86_CR4_PAE;
-}
-
-static inline int is_pse(struct kvm_vcpu *vcpu)
-{
- return vcpu->cr4 & X86_CR4_PSE;
-}
-
-static inline int is_paging(struct kvm_vcpu *vcpu)
-{
- return vcpu->cr0 & X86_CR0_PG;
-}
-
static inline int memslot_id(struct kvm *kvm, struct kvm_memory_slot *slot)
{
return slot - kvm->memslots;
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index aab465d..9ff049c 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -2272,7 +2272,7 @@ static int kvm_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
if (r)
goto out;
}
-
+#if CONFIG_HAS_IOMEM
if (vcpu->mmio_needed) {
memcpy(vcpu->mmio_data, kvm_run->mmio.data, 8);
vcpu->mmio_read_completed = 1;
@@ -2287,7 +2287,7 @@ static int kvm_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
goto out;
}
}
-
+#endif
if (kvm_run->exit_reason == KVM_EXIT_HYPERCALL) {
kvm_x86_ops->cache_regs(vcpu);
vcpu->regs[VCPU_REGS_RAX] = kvm_run->hypercall.ret;
diff --git a/drivers/kvm/lapic.c b/drivers/kvm/lapic.c
index 1eca94f..68cab3f 100644
--- a/drivers/kvm/lapic.c
+++ b/drivers/kvm/lapic.c
@@ -18,6 +18,8 @@
*/
#include "kvm.h"
+#include "x86.h"
+
#include <linux/kvm.h>
#include <linux/mm.h>
#include <linux/highmem.h>
diff --git a/drivers/kvm/mmu.c b/drivers/kvm/mmu.c
index f52604a..750c74a 100644
--- a/drivers/kvm/mmu.c
+++ b/drivers/kvm/mmu.c
@@ -19,6 +19,7 @@
#include "vmx.h"
#include "kvm.h"
+#include "x86.h"
#include <linux/types.h>
#include <linux/string.h>
diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c
index e8ab3b2..87e2448 100644
--- a/drivers/kvm/svm.c
+++ b/drivers/kvm/svm.c
@@ -13,7 +13,7 @@
* the COPYING file in the top-level directory.
*
*/
-
+#include "x86.h"
#include "kvm_svm.h"
#include "x86_emulate.h"
#include "irq.h"
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index c8b8045..4690433 100644
--- a/drivers/kvm/vmx.c
+++ b/drivers/kvm/vmx.c
@@ -16,6 +16,7 @@
*/
#include "kvm.h"
+#include "x86.h"
#include "x86_emulate.h"
#include "irq.h"
#include "vmx.h"
diff --git a/drivers/kvm/x86.h b/drivers/kvm/x86.h
index 1e2f71b..01452b5 100644
--- a/drivers/kvm/x86.h
+++ b/drivers/kvm/x86.h
@@ -13,4 +13,121 @@
#include "kvm.h"
+#include <linux/types.h>
+#include <linux/mm.h>
+
+#include <linux/kvm.h>
+#include <linux/kvm_para.h>
+
+struct kvm_vcpu {
+ KVM_VCPU_COMM;
+ u64 host_tsc;
+ int interrupt_window_open;
+ unsigned long irq_summary; /* bit vector: 1 per word in irq_pending */
+ DECLARE_BITMAP(irq_pending, KVM_NR_INTERRUPTS);
+ unsigned long regs[NR_VCPU_REGS]; /* for rsp: vcpu_load_rsp_rip() */
+ unsigned long rip; /* needs vcpu_load_rsp_rip() */
+
+ unsigned long cr0;
+ unsigned long cr2;
+ unsigned long cr3;
+ unsigned long cr4;
+ unsigned long cr8;
+ u64 pdptrs[4]; /* pae */
+ u64 shadow_efer;
+ u64 apic_base;
+ struct kvm_lapic *apic; /* kernel irqchip context */
+#define VCPU_MP_STATE_RUNNABLE 0
+#define VCPU_MP_STATE_UNINITIALIZED 1
+#define VCPU_MP_STATE_INIT_RECEIVED 2
+#define VCPU_MP_STATE_SIPI_RECEIVED 3
+#define VCPU_MP_STATE_HALTED 4
+ int mp_state;
+ int sipi_vector;
+ u64 ia32_misc_enable_msr;
+
+ struct kvm_mmu mmu;
+
+ struct kvm_mmu_memory_cache mmu_pte_chain_cache;
+ struct kvm_mmu_memory_cache mmu_rmap_desc_cache;
+ struct kvm_mmu_memory_cache mmu_page_cache;
+ struct kvm_mmu_memory_cache mmu_page_header_cache;
+
+ gfn_t last_pt_write_gfn;
+ int last_pt_write_count;
+ u64 *last_pte_updated;
+
+
+ struct i387_fxsave_struct host_fx_image;
+ struct i387_fxsave_struct guest_fx_image;
+
+ gva_t mmio_fault_cr2;
+ struct kvm_pio_request pio;
+ void *pio_data;
+
+ struct {
+ int active;
+ u8 save_iopl;
+ struct kvm_save_segment {
+ u16 selector;
+ unsigned long base;
+ u32 limit;
+ u32 ar;
+ } tr, es, ds, fs, gs;
+ } rmode;
+ int halt_request; /* real mode on Intel only */
+
+ int cpuid_nent;
+ struct kvm_cpuid_entry cpuid_entries[KVM_MAX_CPUID_ENTRIES];
+
+ /* emulate context */
+
+ struct x86_emulate_ctxt emulate_ctxt;
+};
+
+static inline int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t gva,
+ u32 error_code)
+{
+ return vcpu->mmu.page_fault(vcpu, gva, error_code);
+}
+
+static inline void kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu)
+{
+ if (unlikely(vcpu->kvm->n_free_mmu_pages < KVM_MIN_FREE_MMU_PAGES))
+ __kvm_mmu_free_some_pages(vcpu);
+}
+
+static inline int kvm_mmu_reload(struct kvm_vcpu *vcpu)
+{
+ if (likely(vcpu->mmu.root_hpa != INVALID_PAGE))
+ return 0;
+
+ return kvm_mmu_load(vcpu);
+}
+
+static inline int is_long_mode(struct kvm_vcpu *vcpu)
+{
+#ifdef CONFIG_X86_64
+ return vcpu->shadow_efer & EFER_LME;
+#else
+ return 0;
+#endif
+}
+
+static inline int is_pae(struct kvm_vcpu *vcpu)
+{
+ return vcpu->cr4 & X86_CR4_PAE;
+}
+
+static inline int is_pse(struct kvm_vcpu *vcpu)
+{
+ return vcpu->cr4 & X86_CR4_PSE;
+}
+
+static inline int is_paging(struct kvm_vcpu *vcpu)
+{
+ return vcpu->cr0 & X86_CR0_PG;
+}
+
+
#endif
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c
index ced0939..8465eba 100644
--- a/drivers/kvm/x86_emulate.c
+++ b/drivers/kvm/x86_emulate.c
@@ -26,6 +26,7 @@
#define DPRINTF(_f, _a ...) printf(_f , ## _a)
#else
#include "kvm.h"
+#include "x86.h"
#define DPRINTF(x...) do {} while (0)
#endif
#include "x86_emulate.h"
--
1.5.1.2
[-- Attachment #3: Type: text/plain, Size: 314 bytes --]
-------------------------------------------------------------------------
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/
[-- Attachment #4: Type: text/plain, Size: 186 bytes --]
_______________________________________________
kvm-devel mailing list
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/kvm-devel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] Split kvm_vcpu to support new archs (V2)
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDC85EF74-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2007-10-21 6:46 ` Avi Kivity
[not found] ` <471AF5BA.4010506-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
0 siblings, 1 reply; 10+ messages in thread
From: Avi Kivity @ 2007-10-21 6:46 UTC (permalink / raw)
To: Zhang, Xiantao; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Zhang, Xiantao wrote:
> Hi Avi,
> Thank you for your comments. Seems my mailer has something wrong.
> Attached the patch here.
>
> In this patch, according to your and community's suggestions, I changed
> the kvm_vcpu
> structure to two parts. To avoid the much intrusive into current code,
> one is common part which is defined as a macro, and the other one is
> arch-specific part.
>
>
Applied, thanks.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
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/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Split kvm_vcpu to support new archs (V2)
[not found] ` <471AF5BA.4010506-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2007-10-22 1:33 ` Dong, Eddie
[not found] ` <10EA09EFD8728347A513008B6B0DA77A02440AE6-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 10+ messages in thread
From: Dong, Eddie @ 2007-10-22 1:33 UTC (permalink / raw)
To: Avi Kivity, Zhang, Xiantao; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Should fpu_active be X86 specific? Not sure about PPC & S390 (Hollis &
Carsten?), but for IA64
it is catagoried into low fp & high fp.
Eddie
diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h
index 08b5b21..a824073 100644
--- a/drivers/kvm/kvm.h
+++ b/drivers/kvm/kvm.h
@@ -333,7 +333,6 @@ void kvm_io_bus_register_dev(struct kvm_io_bus *bus,
int guest_mode; \
unsigned long requests; \
struct kvm_guest_debug guest_debug; \
- int fpu_active; \
int guest_fpu_loaded; \
wait_queue_head_t wq; \
int sigset_active; \
diff --git a/drivers/kvm/x86.h b/drivers/kvm/x86.h
index 01452b5..fcacb81 100644
--- a/drivers/kvm/x86.h
+++ b/drivers/kvm/x86.h
@@ -58,6 +58,7 @@ struct kvm_vcpu {
u64 *last_pte_updated;
+ int fpu_active;
struct i387_fxsave_struct host_fx_image;
struct i387_fxsave_struct guest_fx_image;
-------------------------------------------------------------------------
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/
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] Split kvm_vcpu to support new archs (V2)
[not found] ` <10EA09EFD8728347A513008B6B0DA77A02440AE6-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2007-10-22 11:04 ` Carsten Otte
2007-10-22 11:17 ` Arnd Bergmann
1 sibling, 0 replies; 10+ messages in thread
From: Carsten Otte @ 2007-10-22 11:04 UTC (permalink / raw)
To: Dong, Eddie
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao,
Avi Kivity
Dong, Eddie wrote:
> Should fpu_active be X86 specific? Not sure about PPC & S390 (Hollis &
> Carsten?), but for IA64
> it is catagoried into low fp & high fp.
Our FPU is always "active", we restore FPU state on every context
switch. We don't need that flag.
Carsten
-------------------------------------------------------------------------
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/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Split kvm_vcpu to support new archs (V2)
[not found] ` <10EA09EFD8728347A513008B6B0DA77A02440AE6-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-10-22 11:04 ` Carsten Otte
@ 2007-10-22 11:17 ` Arnd Bergmann
[not found] ` <200710221317.38961.arnd-r2nGTMty4D4@public.gmane.org>
1 sibling, 1 reply; 10+ messages in thread
From: Arnd Bergmann @ 2007-10-22 11:17 UTC (permalink / raw)
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f; +Cc: Zhang, Xiantao, Avi Kivity
On Monday 22 October 2007, Dong, Eddie wrote:
> Should fpu_active be X86 specific? Not sure about PPC & S390 (Hollis &
> Carsten?), but for IA64
> it is catagoried into low fp & high fp.
PPC can use that flag, on s390 it won't help.
Arnd <><
-------------------------------------------------------------------------
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/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Split kvm_vcpu to support new archs (V2)
[not found] ` <200710221317.38961.arnd-r2nGTMty4D4@public.gmane.org>
@ 2007-10-22 11:50 ` Avi Kivity
[not found] ` <471C8E70.6000802-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-22 14:42 ` Anthony Liguori
1 sibling, 1 reply; 10+ messages in thread
From: Avi Kivity @ 2007-10-22 11:50 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao
Arnd Bergmann wrote:
> On Monday 22 October 2007, Dong, Eddie wrote:
>
>> Should fpu_active be X86 specific? Not sure about PPC & S390 (Hollis &
>> Carsten?), but for IA64
>> it is catagoried into low fp & high fp.
>>
>
> PPC can use that flag, on s390 it won't help.
>
>
Maybe guard it with CONFIG_KVM_FPU_SWITCHING? Kconfig can set that up
automatically.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
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/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Split kvm_vcpu to support new archs (V2)
[not found] ` <471C8E70.6000802-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
@ 2007-10-22 13:57 ` Carsten Otte
0 siblings, 0 replies; 10+ messages in thread
From: Carsten Otte @ 2007-10-22 13:57 UTC (permalink / raw)
To: Avi Kivity; +Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao
Avi Kivity wrote:
> Maybe guard it with CONFIG_KVM_FPU_SWITCHING? Kconfig can set that up
> automatically.
Since there's nothing this flag breaks for us afaics, I think we
should just leave it in common.
-------------------------------------------------------------------------
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/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Split kvm_vcpu to support new archs (V2)
[not found] ` <200710221317.38961.arnd-r2nGTMty4D4@public.gmane.org>
2007-10-22 11:50 ` Avi Kivity
@ 2007-10-22 14:42 ` Anthony Liguori
[not found] ` <471CB6C9.6050207-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
1 sibling, 1 reply; 10+ messages in thread
From: Anthony Liguori @ 2007-10-22 14:42 UTC (permalink / raw)
To: Arnd Bergmann
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Avi Kivity,
Zhang, Xiantao
Arnd Bergmann wrote:
> On Monday 22 October 2007, Dong, Eddie wrote:
>
>> Should fpu_active be X86 specific? Not sure about PPC & S390 (Hollis &
>> Carsten?), but for IA64
>> it is catagoried into low fp & high fp.
>>
>
> PPC can use that flag, on s390 it won't help.
>
While both PPC and x86 may be able to use it, I doubt there will
actually be common code that ever touches it.
Regards,
Anthony Liguori
> Arnd <><
>
> -------------------------------------------------------------------------
> 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-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/kvm-devel
>
>
-------------------------------------------------------------------------
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/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Split kvm_vcpu to support new archs (V2)
[not found] ` <471CB6C9.6050207-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
@ 2007-10-22 14:46 ` Carsten Otte
[not found] ` <471CB7C3.7020607-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 10+ messages in thread
From: Carsten Otte @ 2007-10-22 14:46 UTC (permalink / raw)
To: Anthony Liguori
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao,
Avi Kivity
Anthony Liguori wrote:
> While both PPC and x86 may be able to use it, I doubt there will
> actually be common code that ever touches it.
Common code could figure whether or not it needs to save/restore the
fpu register set, and call back to an arch specific callback to do so.
On the other hand, your argument is hard to disprove without actual
portability split of the code that works with the data structures.
-------------------------------------------------------------------------
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/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Split kvm_vcpu to support new archs (V2)
[not found] ` <471CB7C3.7020607-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
@ 2007-10-22 15:13 ` Avi Kivity
0 siblings, 0 replies; 10+ messages in thread
From: Avi Kivity @ 2007-10-22 15:13 UTC (permalink / raw)
To: carsteno-tA70FqPdS9bQT0dZR+AlfA
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, Zhang, Xiantao
Carsten Otte wrote:
> Anthony Liguori wrote:
>
>> While both PPC and x86 may be able to use it, I doubt there will
>> actually be common code that ever touches it.
>>
> Common code could figure whether or not it needs to save/restore the
> fpu register set, and call back to an arch specific callback to do so.
> On the other hand, your argument is hard to disprove without actual
> portability split of the code that works with the data structures.
>
>
Let's not worry about it now. There are lots of low-hanging fruit on
the portability tree, let's pick those first.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
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/
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2007-10-22 15:13 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-20 7:56 [PATCH] Split kvm_vcpu to support new archs (V2) Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDC85EF74-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-10-21 6:46 ` Avi Kivity
[not found] ` <471AF5BA.4010506-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-22 1:33 ` Dong, Eddie
[not found] ` <10EA09EFD8728347A513008B6B0DA77A02440AE6-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-10-22 11:04 ` Carsten Otte
2007-10-22 11:17 ` Arnd Bergmann
[not found] ` <200710221317.38961.arnd-r2nGTMty4D4@public.gmane.org>
2007-10-22 11:50 ` Avi Kivity
[not found] ` <471C8E70.6000802-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-10-22 13:57 ` Carsten Otte
2007-10-22 14:42 ` Anthony Liguori
[not found] ` <471CB6C9.6050207-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-10-22 14:46 ` Carsten Otte
[not found] ` <471CB7C3.7020607-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-10-22 15:13 ` Avi Kivity
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox