* [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini; +Cc: Mihai Caraman, kvm-ppc, kvm
Most of these have been posted before, but I grouped them together as
there are some contextual dependencies between them.
Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
if there's no objection over the next few days?
Mihai Caraman (1):
kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage
Scott Wood (7):
kvm/ppc/booke64: Disable e6500 support
kvm/ppc/booke: Hold srcu lock when calling gfn functions
kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
kvm/ppc: Call trace_hardirqs_on before entry
kvm/ppc: IRQ disabling cleanup
kvm/ppc/booke: Delay kvmppc_fix_ee_before_entry
kvm/ppc/booke: Don't call kvm_guest_enter twice
arch/powerpc/include/asm/kvm_asm.h | 16 ++++++++++------
arch/powerpc/include/asm/kvm_ppc.h | 17 ++++++++++++++---
arch/powerpc/kvm/44x_tlb.c | 5 +++++
arch/powerpc/kvm/book3s_pr.c | 16 +++++-----------
arch/powerpc/kvm/booke.c | 36 ++++++++++++++++++++++++------------
arch/powerpc/kvm/e500_mmu.c | 5 +++++
arch/powerpc/kvm/e500mc.c | 2 --
arch/powerpc/kvm/powerpc.c | 25 ++++++++++---------------
8 files changed, 73 insertions(+), 49 deletions(-)
--
1.7.10.4
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini; +Cc: Mihai Caraman, kvm-ppc, kvm
Most of these have been posted before, but I grouped them together as
there are some contextual dependencies between them.
Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
if there's no objection over the next few days?
Mihai Caraman (1):
kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage
Scott Wood (7):
kvm/ppc/booke64: Disable e6500 support
kvm/ppc/booke: Hold srcu lock when calling gfn functions
kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
kvm/ppc: Call trace_hardirqs_on before entry
kvm/ppc: IRQ disabling cleanup
kvm/ppc/booke: Delay kvmppc_fix_ee_before_entry
kvm/ppc/booke: Don't call kvm_guest_enter twice
arch/powerpc/include/asm/kvm_asm.h | 16 ++++++++++------
arch/powerpc/include/asm/kvm_ppc.h | 17 ++++++++++++++---
arch/powerpc/kvm/44x_tlb.c | 5 +++++
arch/powerpc/kvm/book3s_pr.c | 16 +++++-----------
arch/powerpc/kvm/booke.c | 36 ++++++++++++++++++++++++------------
arch/powerpc/kvm/e500_mmu.c | 5 +++++
arch/powerpc/kvm/e500mc.c | 2 --
arch/powerpc/kvm/powerpc.c | 25 ++++++++++---------------
8 files changed, 73 insertions(+), 49 deletions(-)
--
1.7.10.4
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 1/8] kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage
2013-06-07 0:16 ` Scott Wood
@ 2013-06-07 0:16 ` Scott Wood
-1 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
From: Mihai Caraman <mihai.caraman@freescale.com>
Interrupt numbers defined for Book3E follows IVORs definition. Align
BOOKE_INTERRUPT_ALTIVEC_UNAVAIL and BOOKE_INTERRUPT_ALTIVEC_ASSIST to this
rule which also fixes the build breakage.
IVORs 32 and 33 are shared so reflect this in the interrupts naming.
This fixes a build break for 64-bit booke KVM.
Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/include/asm/kvm_asm.h | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_asm.h b/arch/powerpc/include/asm/kvm_asm.h
index b9dd382..851bac7 100644
--- a/arch/powerpc/include/asm/kvm_asm.h
+++ b/arch/powerpc/include/asm/kvm_asm.h
@@ -54,8 +54,16 @@
#define BOOKE_INTERRUPT_DEBUG 15
/* E500 */
-#define BOOKE_INTERRUPT_SPE_UNAVAIL 32
-#define BOOKE_INTERRUPT_SPE_FP_DATA 33
+#define BOOKE_INTERRUPT_SPE_ALTIVEC_UNAVAIL 32
+#define BOOKE_INTERRUPT_SPE_FP_DATA_ALTIVEC_ASSIST 33
+/*
+ * TODO: Unify 32-bit and 64-bit kernel exception handlers to use same defines
+ */
+#define BOOKE_INTERRUPT_SPE_UNAVAIL BOOKE_INTERRUPT_SPE_ALTIVEC_UNAVAIL
+#define BOOKE_INTERRUPT_SPE_FP_DATA BOOKE_INTERRUPT_SPE_FP_DATA_ALTIVEC_ASSIST
+#define BOOKE_INTERRUPT_ALTIVEC_UNAVAIL BOOKE_INTERRUPT_SPE_ALTIVEC_UNAVAIL
+#define BOOKE_INTERRUPT_ALTIVEC_ASSIST \
+ BOOKE_INTERRUPT_SPE_FP_DATA_ALTIVEC_ASSIST
#define BOOKE_INTERRUPT_SPE_FP_ROUND 34
#define BOOKE_INTERRUPT_PERFORMANCE_MONITOR 35
#define BOOKE_INTERRUPT_DOORBELL 36
@@ -67,10 +75,6 @@
#define BOOKE_INTERRUPT_HV_SYSCALL 40
#define BOOKE_INTERRUPT_HV_PRIV 41
-/* altivec */
-#define BOOKE_INTERRUPT_ALTIVEC_UNAVAIL 42
-#define BOOKE_INTERRUPT_ALTIVEC_ASSIST 43
-
/* book3s */
#define BOOK3S_INTERRUPT_SYSTEM_RESET 0x100
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 1/8] kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
From: Mihai Caraman <mihai.caraman@freescale.com>
Interrupt numbers defined for Book3E follows IVORs definition. Align
BOOKE_INTERRUPT_ALTIVEC_UNAVAIL and BOOKE_INTERRUPT_ALTIVEC_ASSIST to this
rule which also fixes the build breakage.
IVORs 32 and 33 are shared so reflect this in the interrupts naming.
This fixes a build break for 64-bit booke KVM.
Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/include/asm/kvm_asm.h | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_asm.h b/arch/powerpc/include/asm/kvm_asm.h
index b9dd382..851bac7 100644
--- a/arch/powerpc/include/asm/kvm_asm.h
+++ b/arch/powerpc/include/asm/kvm_asm.h
@@ -54,8 +54,16 @@
#define BOOKE_INTERRUPT_DEBUG 15
/* E500 */
-#define BOOKE_INTERRUPT_SPE_UNAVAIL 32
-#define BOOKE_INTERRUPT_SPE_FP_DATA 33
+#define BOOKE_INTERRUPT_SPE_ALTIVEC_UNAVAIL 32
+#define BOOKE_INTERRUPT_SPE_FP_DATA_ALTIVEC_ASSIST 33
+/*
+ * TODO: Unify 32-bit and 64-bit kernel exception handlers to use same defines
+ */
+#define BOOKE_INTERRUPT_SPE_UNAVAIL BOOKE_INTERRUPT_SPE_ALTIVEC_UNAVAIL
+#define BOOKE_INTERRUPT_SPE_FP_DATA BOOKE_INTERRUPT_SPE_FP_DATA_ALTIVEC_ASSIST
+#define BOOKE_INTERRUPT_ALTIVEC_UNAVAIL BOOKE_INTERRUPT_SPE_ALTIVEC_UNAVAIL
+#define BOOKE_INTERRUPT_ALTIVEC_ASSIST \
+ BOOKE_INTERRUPT_SPE_FP_DATA_ALTIVEC_ASSIST
#define BOOKE_INTERRUPT_SPE_FP_ROUND 34
#define BOOKE_INTERRUPT_PERFORMANCE_MONITOR 35
#define BOOKE_INTERRUPT_DOORBELL 36
@@ -67,10 +75,6 @@
#define BOOKE_INTERRUPT_HV_SYSCALL 40
#define BOOKE_INTERRUPT_HV_PRIV 41
-/* altivec */
-#define BOOKE_INTERRUPT_ALTIVEC_UNAVAIL 42
-#define BOOKE_INTERRUPT_ALTIVEC_ASSIST 43
-
/* book3s */
#define BOOK3S_INTERRUPT_SYSTEM_RESET 0x100
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 2/8] kvm/ppc/booke64: Disable e6500 support
2013-06-07 0:16 ` Scott Wood
@ 2013-06-07 0:16 ` Scott Wood
-1 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
The previous patch made 64-bit booke KVM build again, but Altivec
support is still not complete, and we can't prevent the guest from
turning on Altivec (which can corrupt host state until state
save/restore is implemented). Disable e6500 on KVM until this is
fixed.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
Mihai has posted RFC patches for proper Altivec support, so disabling
e6500 should only need to be for 3.10.
---
arch/powerpc/kvm/e500mc.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/powerpc/kvm/e500mc.c b/arch/powerpc/kvm/e500mc.c
index 753cc99..19c8379 100644
--- a/arch/powerpc/kvm/e500mc.c
+++ b/arch/powerpc/kvm/e500mc.c
@@ -177,8 +177,6 @@ int kvmppc_core_check_processor_compat(void)
r = 0;
else if (strcmp(cur_cpu_spec->cpu_name, "e5500") == 0)
r = 0;
- else if (strcmp(cur_cpu_spec->cpu_name, "e6500") == 0)
- r = 0;
else
r = -ENOTSUPP;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 2/8] kvm/ppc/booke64: Disable e6500 support
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
The previous patch made 64-bit booke KVM build again, but Altivec
support is still not complete, and we can't prevent the guest from
turning on Altivec (which can corrupt host state until state
save/restore is implemented). Disable e6500 on KVM until this is
fixed.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
Mihai has posted RFC patches for proper Altivec support, so disabling
e6500 should only need to be for 3.10.
---
arch/powerpc/kvm/e500mc.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/powerpc/kvm/e500mc.c b/arch/powerpc/kvm/e500mc.c
index 753cc99..19c8379 100644
--- a/arch/powerpc/kvm/e500mc.c
+++ b/arch/powerpc/kvm/e500mc.c
@@ -177,8 +177,6 @@ int kvmppc_core_check_processor_compat(void)
r = 0;
else if (strcmp(cur_cpu_spec->cpu_name, "e5500") = 0)
r = 0;
- else if (strcmp(cur_cpu_spec->cpu_name, "e6500") = 0)
- r = 0;
else
r = -ENOTSUPP;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 3/8] kvm/ppc/booke: Hold srcu lock when calling gfn functions
2013-06-07 0:16 ` Scott Wood
@ 2013-06-07 0:16 ` Scott Wood
-1 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
KVM core expects arch code to acquire the srcu lock when calling
gfn_to_memslot and similar functions.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/kvm/44x_tlb.c | 5 +++++
arch/powerpc/kvm/booke.c | 7 +++++++
arch/powerpc/kvm/e500_mmu.c | 5 +++++
3 files changed, 17 insertions(+)
diff --git a/arch/powerpc/kvm/44x_tlb.c b/arch/powerpc/kvm/44x_tlb.c
index 5dd3ab4..ed03854 100644
--- a/arch/powerpc/kvm/44x_tlb.c
+++ b/arch/powerpc/kvm/44x_tlb.c
@@ -441,6 +441,7 @@ int kvmppc_44x_emul_tlbwe(struct kvm_vcpu *vcpu, u8 ra, u8 rs, u8 ws)
struct kvmppc_vcpu_44x *vcpu_44x = to_44x(vcpu);
struct kvmppc_44x_tlbe *tlbe;
unsigned int gtlb_index;
+ int idx;
gtlb_index = kvmppc_get_gpr(vcpu, ra);
if (gtlb_index >= KVM44x_GUEST_TLB_SIZE) {
@@ -473,6 +474,8 @@ int kvmppc_44x_emul_tlbwe(struct kvm_vcpu *vcpu, u8 ra, u8 rs, u8 ws)
return EMULATE_FAIL;
}
+ idx = srcu_read_lock(&vcpu->kvm->srcu);
+
if (tlbe_is_host_safe(vcpu, tlbe)) {
gva_t eaddr;
gpa_t gpaddr;
@@ -489,6 +492,8 @@ int kvmppc_44x_emul_tlbwe(struct kvm_vcpu *vcpu, u8 ra, u8 rs, u8 ws)
kvmppc_mmu_map(vcpu, eaddr, gpaddr, gtlb_index);
}
+ srcu_read_unlock(&vcpu->kvm->srcu, idx);
+
trace_kvm_gtlb_write(gtlb_index, tlbe->tid, tlbe->word0, tlbe->word1,
tlbe->word2);
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 1020119..ecbe908 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -832,6 +832,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
{
int r = RESUME_HOST;
int s;
+ int idx;
/* update before a new last_exit_type is rewritten */
kvmppc_update_timing_stats(vcpu);
@@ -1053,6 +1054,8 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
break;
}
+ idx = srcu_read_lock(&vcpu->kvm->srcu);
+
gpaddr = kvmppc_mmu_xlate(vcpu, gtlb_index, eaddr);
gfn = gpaddr >> PAGE_SHIFT;
@@ -1075,6 +1078,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
kvmppc_account_exit(vcpu, MMIO_EXITS);
}
+ srcu_read_unlock(&vcpu->kvm->srcu, idx);
break;
}
@@ -1098,6 +1102,8 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
kvmppc_account_exit(vcpu, ITLB_VIRT_MISS_EXITS);
+ idx = srcu_read_lock(&vcpu->kvm->srcu);
+
gpaddr = kvmppc_mmu_xlate(vcpu, gtlb_index, eaddr);
gfn = gpaddr >> PAGE_SHIFT;
@@ -1114,6 +1120,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
kvmppc_booke_queue_irqprio(vcpu, BOOKE_IRQPRIO_MACHINE_CHECK);
}
+ srcu_read_unlock(&vcpu->kvm->srcu, idx);
break;
}
diff --git a/arch/powerpc/kvm/e500_mmu.c b/arch/powerpc/kvm/e500_mmu.c
index c41a5a9..6d6f153 100644
--- a/arch/powerpc/kvm/e500_mmu.c
+++ b/arch/powerpc/kvm/e500_mmu.c
@@ -396,6 +396,7 @@ int kvmppc_e500_emul_tlbwe(struct kvm_vcpu *vcpu)
struct kvm_book3e_206_tlb_entry *gtlbe;
int tlbsel, esel;
int recal = 0;
+ int idx;
tlbsel = get_tlb_tlbsel(vcpu);
esel = get_tlb_esel(vcpu, tlbsel);
@@ -430,6 +431,8 @@ int kvmppc_e500_emul_tlbwe(struct kvm_vcpu *vcpu)
kvmppc_set_tlb1map_range(vcpu, gtlbe);
}
+ idx = srcu_read_lock(&vcpu->kvm->srcu);
+
/* Invalidate shadow mappings for the about-to-be-clobbered TLBE. */
if (tlbe_is_host_safe(vcpu, gtlbe)) {
u64 eaddr = get_tlb_eaddr(gtlbe);
@@ -444,6 +447,8 @@ int kvmppc_e500_emul_tlbwe(struct kvm_vcpu *vcpu)
kvmppc_mmu_map(vcpu, eaddr, raddr, index_of(tlbsel, esel));
}
+ srcu_read_unlock(&vcpu->kvm->srcu, idx);
+
kvmppc_set_exit_type(vcpu, EMULATED_TLBWE_EXITS);
return EMULATE_DONE;
}
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 3/8] kvm/ppc/booke: Hold srcu lock when calling gfn functions
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
KVM core expects arch code to acquire the srcu lock when calling
gfn_to_memslot and similar functions.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/kvm/44x_tlb.c | 5 +++++
arch/powerpc/kvm/booke.c | 7 +++++++
arch/powerpc/kvm/e500_mmu.c | 5 +++++
3 files changed, 17 insertions(+)
diff --git a/arch/powerpc/kvm/44x_tlb.c b/arch/powerpc/kvm/44x_tlb.c
index 5dd3ab4..ed03854 100644
--- a/arch/powerpc/kvm/44x_tlb.c
+++ b/arch/powerpc/kvm/44x_tlb.c
@@ -441,6 +441,7 @@ int kvmppc_44x_emul_tlbwe(struct kvm_vcpu *vcpu, u8 ra, u8 rs, u8 ws)
struct kvmppc_vcpu_44x *vcpu_44x = to_44x(vcpu);
struct kvmppc_44x_tlbe *tlbe;
unsigned int gtlb_index;
+ int idx;
gtlb_index = kvmppc_get_gpr(vcpu, ra);
if (gtlb_index >= KVM44x_GUEST_TLB_SIZE) {
@@ -473,6 +474,8 @@ int kvmppc_44x_emul_tlbwe(struct kvm_vcpu *vcpu, u8 ra, u8 rs, u8 ws)
return EMULATE_FAIL;
}
+ idx = srcu_read_lock(&vcpu->kvm->srcu);
+
if (tlbe_is_host_safe(vcpu, tlbe)) {
gva_t eaddr;
gpa_t gpaddr;
@@ -489,6 +492,8 @@ int kvmppc_44x_emul_tlbwe(struct kvm_vcpu *vcpu, u8 ra, u8 rs, u8 ws)
kvmppc_mmu_map(vcpu, eaddr, gpaddr, gtlb_index);
}
+ srcu_read_unlock(&vcpu->kvm->srcu, idx);
+
trace_kvm_gtlb_write(gtlb_index, tlbe->tid, tlbe->word0, tlbe->word1,
tlbe->word2);
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 1020119..ecbe908 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -832,6 +832,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
{
int r = RESUME_HOST;
int s;
+ int idx;
/* update before a new last_exit_type is rewritten */
kvmppc_update_timing_stats(vcpu);
@@ -1053,6 +1054,8 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
break;
}
+ idx = srcu_read_lock(&vcpu->kvm->srcu);
+
gpaddr = kvmppc_mmu_xlate(vcpu, gtlb_index, eaddr);
gfn = gpaddr >> PAGE_SHIFT;
@@ -1075,6 +1078,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
kvmppc_account_exit(vcpu, MMIO_EXITS);
}
+ srcu_read_unlock(&vcpu->kvm->srcu, idx);
break;
}
@@ -1098,6 +1102,8 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
kvmppc_account_exit(vcpu, ITLB_VIRT_MISS_EXITS);
+ idx = srcu_read_lock(&vcpu->kvm->srcu);
+
gpaddr = kvmppc_mmu_xlate(vcpu, gtlb_index, eaddr);
gfn = gpaddr >> PAGE_SHIFT;
@@ -1114,6 +1120,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
kvmppc_booke_queue_irqprio(vcpu, BOOKE_IRQPRIO_MACHINE_CHECK);
}
+ srcu_read_unlock(&vcpu->kvm->srcu, idx);
break;
}
diff --git a/arch/powerpc/kvm/e500_mmu.c b/arch/powerpc/kvm/e500_mmu.c
index c41a5a9..6d6f153 100644
--- a/arch/powerpc/kvm/e500_mmu.c
+++ b/arch/powerpc/kvm/e500_mmu.c
@@ -396,6 +396,7 @@ int kvmppc_e500_emul_tlbwe(struct kvm_vcpu *vcpu)
struct kvm_book3e_206_tlb_entry *gtlbe;
int tlbsel, esel;
int recal = 0;
+ int idx;
tlbsel = get_tlb_tlbsel(vcpu);
esel = get_tlb_esel(vcpu, tlbsel);
@@ -430,6 +431,8 @@ int kvmppc_e500_emul_tlbwe(struct kvm_vcpu *vcpu)
kvmppc_set_tlb1map_range(vcpu, gtlbe);
}
+ idx = srcu_read_lock(&vcpu->kvm->srcu);
+
/* Invalidate shadow mappings for the about-to-be-clobbered TLBE. */
if (tlbe_is_host_safe(vcpu, gtlbe)) {
u64 eaddr = get_tlb_eaddr(gtlbe);
@@ -444,6 +447,8 @@ int kvmppc_e500_emul_tlbwe(struct kvm_vcpu *vcpu)
kvmppc_mmu_map(vcpu, eaddr, raddr, index_of(tlbsel, esel));
}
+ srcu_read_unlock(&vcpu->kvm->srcu, idx);
+
kvmppc_set_exit_type(vcpu, EMULATED_TLBWE_EXITS);
return EMULATE_DONE;
}
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 4/8] kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
2013-06-07 0:16 ` Scott Wood
@ 2013-06-07 0:16 ` Scott Wood
-1 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
EE is hard-disabled on entry to kvmppc_handle_exit(), so call
hard_irq_disable() so that PACA_IRQ_HARD_DIS is set, and soft_enabled
is unset.
Without this, we get warnings such as arch/powerpc/kernel/time.c:300,
and sometimes host kernel hangs.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/kvm/booke.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index ecbe908..5cd7ad0 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -834,6 +834,17 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
int s;
int idx;
+#ifdef CONFIG_PPC64
+ WARN_ON(local_paca->irq_happened != 0);
+#endif
+
+ /*
+ * We enter with interrupts disabled in hardware, but
+ * we need to call hard_irq_disable anyway to ensure that
+ * the software state is kept in sync.
+ */
+ hard_irq_disable();
+
/* update before a new last_exit_type is rewritten */
kvmppc_update_timing_stats(vcpu);
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 4/8] kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
EE is hard-disabled on entry to kvmppc_handle_exit(), so call
hard_irq_disable() so that PACA_IRQ_HARD_DIS is set, and soft_enabled
is unset.
Without this, we get warnings such as arch/powerpc/kernel/time.c:300,
and sometimes host kernel hangs.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/kvm/booke.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index ecbe908..5cd7ad0 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -834,6 +834,17 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
int s;
int idx;
+#ifdef CONFIG_PPC64
+ WARN_ON(local_paca->irq_happened != 0);
+#endif
+
+ /*
+ * We enter with interrupts disabled in hardware, but
+ * we need to call hard_irq_disable anyway to ensure that
+ * the software state is kept in sync.
+ */
+ hard_irq_disable();
+
/* update before a new last_exit_type is rewritten */
kvmppc_update_timing_stats(vcpu);
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 5/8] kvm/ppc: Call trace_hardirqs_on before entry
2013-06-07 0:16 ` Scott Wood
@ 2013-06-07 0:16 ` Scott Wood
-1 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
Currently this is only being done on 64-bit. Rather than just move it
out of the 64-bit ifdef, move it to kvm_lazy_ee_enable() so that it is
consistent with lazy ee state, and so that we don't track more host
code as interrupts-enabled than necessary.
Rename kvm_lazy_ee_enable() to kvm_fix_ee_before_entry() to reflect
that this function now has a role on 32-bit as well.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/include/asm/kvm_ppc.h | 11 ++++++++---
arch/powerpc/kvm/book3s_pr.c | 4 ++--
arch/powerpc/kvm/booke.c | 4 ++--
arch/powerpc/kvm/powerpc.c | 2 --
4 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
index a5287fe..6885846 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -394,10 +394,15 @@ static inline void kvmppc_mmu_flush_icache(pfn_t pfn)
}
}
-/* Please call after prepare_to_enter. This function puts the lazy ee state
- back to normal mode, without actually enabling interrupts. */
-static inline void kvmppc_lazy_ee_enable(void)
+/*
+ * Please call after prepare_to_enter. This function puts the lazy ee and irq
+ * disabled tracking state back to normal mode, without actually enabling
+ * interrupts.
+ */
+static inline void kvmppc_fix_ee_before_entry(void)
{
+ trace_hardirqs_on();
+
#ifdef CONFIG_PPC64
/* Only need to enable IRQs by hard enabling them after this */
local_paca->irq_happened = 0;
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index bdc40b8..0b97ce4 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -890,7 +890,7 @@ program_interrupt:
local_irq_enable();
r = s;
} else {
- kvmppc_lazy_ee_enable();
+ kvmppc_fix_ee_before_entry();
}
}
@@ -1161,7 +1161,7 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
if (vcpu->arch.shared->msr & MSR_FP)
kvmppc_handle_ext(vcpu, BOOK3S_INTERRUPT_FP_UNAVAIL, MSR_FP);
- kvmppc_lazy_ee_enable();
+ kvmppc_fix_ee_before_entry();
ret = __kvmppc_vcpu_run(kvm_run, vcpu);
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 5cd7ad0..08f4aa1 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -673,7 +673,7 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
ret = s;
goto out;
}
- kvmppc_lazy_ee_enable();
+ kvmppc_fix_ee_before_entry();
kvm_guest_enter();
@@ -1167,7 +1167,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
local_irq_enable();
r = (s << 2) | RESUME_HOST | (r & RESUME_FLAG_NV);
} else {
- kvmppc_lazy_ee_enable();
+ kvmppc_fix_ee_before_entry();
}
}
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 6316ee3..4e05f8c 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -117,8 +117,6 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
kvm_guest_exit();
continue;
}
-
- trace_hardirqs_on();
#endif
kvm_guest_enter();
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 5/8] kvm/ppc: Call trace_hardirqs_on before entry
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
Currently this is only being done on 64-bit. Rather than just move it
out of the 64-bit ifdef, move it to kvm_lazy_ee_enable() so that it is
consistent with lazy ee state, and so that we don't track more host
code as interrupts-enabled than necessary.
Rename kvm_lazy_ee_enable() to kvm_fix_ee_before_entry() to reflect
that this function now has a role on 32-bit as well.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/include/asm/kvm_ppc.h | 11 ++++++++---
arch/powerpc/kvm/book3s_pr.c | 4 ++--
arch/powerpc/kvm/booke.c | 4 ++--
arch/powerpc/kvm/powerpc.c | 2 --
4 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
index a5287fe..6885846 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -394,10 +394,15 @@ static inline void kvmppc_mmu_flush_icache(pfn_t pfn)
}
}
-/* Please call after prepare_to_enter. This function puts the lazy ee state
- back to normal mode, without actually enabling interrupts. */
-static inline void kvmppc_lazy_ee_enable(void)
+/*
+ * Please call after prepare_to_enter. This function puts the lazy ee and irq
+ * disabled tracking state back to normal mode, without actually enabling
+ * interrupts.
+ */
+static inline void kvmppc_fix_ee_before_entry(void)
{
+ trace_hardirqs_on();
+
#ifdef CONFIG_PPC64
/* Only need to enable IRQs by hard enabling them after this */
local_paca->irq_happened = 0;
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index bdc40b8..0b97ce4 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -890,7 +890,7 @@ program_interrupt:
local_irq_enable();
r = s;
} else {
- kvmppc_lazy_ee_enable();
+ kvmppc_fix_ee_before_entry();
}
}
@@ -1161,7 +1161,7 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
if (vcpu->arch.shared->msr & MSR_FP)
kvmppc_handle_ext(vcpu, BOOK3S_INTERRUPT_FP_UNAVAIL, MSR_FP);
- kvmppc_lazy_ee_enable();
+ kvmppc_fix_ee_before_entry();
ret = __kvmppc_vcpu_run(kvm_run, vcpu);
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 5cd7ad0..08f4aa1 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -673,7 +673,7 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
ret = s;
goto out;
}
- kvmppc_lazy_ee_enable();
+ kvmppc_fix_ee_before_entry();
kvm_guest_enter();
@@ -1167,7 +1167,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
local_irq_enable();
r = (s << 2) | RESUME_HOST | (r & RESUME_FLAG_NV);
} else {
- kvmppc_lazy_ee_enable();
+ kvmppc_fix_ee_before_entry();
}
}
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 6316ee3..4e05f8c 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -117,8 +117,6 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
kvm_guest_exit();
continue;
}
-
- trace_hardirqs_on();
#endif
kvm_guest_enter();
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 6/8] kvm/ppc: IRQ disabling cleanup
2013-06-07 0:16 ` Scott Wood
@ 2013-06-07 0:16 ` Scott Wood
-1 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
Simplify the handling of lazy EE by going directly from fully-enabled
to hard-disabled. This replaces the lazy_irq_pending() check
(including its misplaced kvm_guest_exit() call).
As suggested by Tiejun Chen, move the interrupt disabling into
kvmppc_prepare_to_enter() rather than have each caller do it. Also
move the IRQ enabling on heavyweight exit into
kvmppc_prepare_to_enter().
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/include/asm/kvm_ppc.h | 6 ++++++
arch/powerpc/kvm/book3s_pr.c | 12 +++---------
arch/powerpc/kvm/booke.c | 11 +++--------
arch/powerpc/kvm/powerpc.c | 23 ++++++++++-------------
4 files changed, 22 insertions(+), 30 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
index 6885846..e4474f8 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -404,6 +404,12 @@ static inline void kvmppc_fix_ee_before_entry(void)
trace_hardirqs_on();
#ifdef CONFIG_PPC64
+ /*
+ * To avoid races, the caller must have gone directly from having
+ * interrupts fully-enabled to hard-disabled.
+ */
+ WARN_ON(local_paca->irq_happened != PACA_IRQ_HARD_DIS);
+
/* Only need to enable IRQs by hard enabling them after this */
local_paca->irq_happened = 0;
local_paca->soft_enabled = 1;
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index 0b97ce4..e61e39e 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -884,14 +884,11 @@ program_interrupt:
* and if we really did time things so badly, then we just exit
* again due to a host external interrupt.
*/
- local_irq_disable();
s = kvmppc_prepare_to_enter(vcpu);
- if (s <= 0) {
- local_irq_enable();
+ if (s <= 0)
r = s;
- } else {
+ else
kvmppc_fix_ee_before_entry();
- }
}
trace_kvm_book3s_reenter(r, vcpu);
@@ -1121,12 +1118,9 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
* really did time things so badly, then we just exit again due to
* a host external interrupt.
*/
- local_irq_disable();
ret = kvmppc_prepare_to_enter(vcpu);
- if (ret <= 0) {
- local_irq_enable();
+ if (ret <= 0)
goto out;
- }
/* Save FPU state in stack */
if (current->thread.regs->msr & MSR_FP)
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 08f4aa1..c5270a3 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -617,7 +617,7 @@ int kvmppc_core_prepare_to_enter(struct kvm_vcpu *vcpu)
local_irq_enable();
kvm_vcpu_block(vcpu);
clear_bit(KVM_REQ_UNHALT, &vcpu->requests);
- local_irq_disable();
+ hard_irq_disable();
kvmppc_set_exit_type(vcpu, EMULATED_MTMSRWE_EXITS);
r = 1;
@@ -666,10 +666,8 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
return -EINVAL;
}
- local_irq_disable();
s = kvmppc_prepare_to_enter(vcpu);
if (s <= 0) {
- local_irq_enable();
ret = s;
goto out;
}
@@ -1161,14 +1159,11 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
* aren't already exiting to userspace for some other reason.
*/
if (!(r & RESUME_HOST)) {
- local_irq_disable();
s = kvmppc_prepare_to_enter(vcpu);
- if (s <= 0) {
- local_irq_enable();
+ if (s <= 0)
r = (s << 2) | RESUME_HOST | (r & RESUME_FLAG_NV);
- } else {
+ else
kvmppc_fix_ee_before_entry();
- }
}
return r;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 4e05f8c..2f7a221 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -64,12 +64,14 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
{
int r = 1;
- WARN_ON_ONCE(!irqs_disabled());
+ WARN_ON(irqs_disabled());
+ hard_irq_disable();
+
while (true) {
if (need_resched()) {
local_irq_enable();
cond_resched();
- local_irq_disable();
+ hard_irq_disable();
continue;
}
@@ -95,7 +97,7 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
local_irq_enable();
trace_kvm_check_requests(vcpu);
r = kvmppc_core_check_requests(vcpu);
- local_irq_disable();
+ hard_irq_disable();
if (r > 0)
continue;
break;
@@ -108,21 +110,16 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
}
#ifdef CONFIG_PPC64
- /* lazy EE magic */
- hard_irq_disable();
- if (lazy_irq_pending()) {
- /* Got an interrupt in between, try again */
- local_irq_enable();
- local_irq_disable();
- kvm_guest_exit();
- continue;
- }
+ WARN_ON(lazy_irq_pending());
#endif
+ /* Can't use irqs_disabled() because we want hard irq state */
+ WARN_ON(mfmsr() & MSR_EE);
kvm_guest_enter();
- break;
+ return r;
}
+ local_irq_enable();
return r;
}
#endif /* CONFIG_KVM_BOOK3S_64_HV */
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 6/8] kvm/ppc: IRQ disabling cleanup
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
Simplify the handling of lazy EE by going directly from fully-enabled
to hard-disabled. This replaces the lazy_irq_pending() check
(including its misplaced kvm_guest_exit() call).
As suggested by Tiejun Chen, move the interrupt disabling into
kvmppc_prepare_to_enter() rather than have each caller do it. Also
move the IRQ enabling on heavyweight exit into
kvmppc_prepare_to_enter().
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/include/asm/kvm_ppc.h | 6 ++++++
arch/powerpc/kvm/book3s_pr.c | 12 +++---------
arch/powerpc/kvm/booke.c | 11 +++--------
arch/powerpc/kvm/powerpc.c | 23 ++++++++++-------------
4 files changed, 22 insertions(+), 30 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
index 6885846..e4474f8 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -404,6 +404,12 @@ static inline void kvmppc_fix_ee_before_entry(void)
trace_hardirqs_on();
#ifdef CONFIG_PPC64
+ /*
+ * To avoid races, the caller must have gone directly from having
+ * interrupts fully-enabled to hard-disabled.
+ */
+ WARN_ON(local_paca->irq_happened != PACA_IRQ_HARD_DIS);
+
/* Only need to enable IRQs by hard enabling them after this */
local_paca->irq_happened = 0;
local_paca->soft_enabled = 1;
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index 0b97ce4..e61e39e 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -884,14 +884,11 @@ program_interrupt:
* and if we really did time things so badly, then we just exit
* again due to a host external interrupt.
*/
- local_irq_disable();
s = kvmppc_prepare_to_enter(vcpu);
- if (s <= 0) {
- local_irq_enable();
+ if (s <= 0)
r = s;
- } else {
+ else
kvmppc_fix_ee_before_entry();
- }
}
trace_kvm_book3s_reenter(r, vcpu);
@@ -1121,12 +1118,9 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
* really did time things so badly, then we just exit again due to
* a host external interrupt.
*/
- local_irq_disable();
ret = kvmppc_prepare_to_enter(vcpu);
- if (ret <= 0) {
- local_irq_enable();
+ if (ret <= 0)
goto out;
- }
/* Save FPU state in stack */
if (current->thread.regs->msr & MSR_FP)
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 08f4aa1..c5270a3 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -617,7 +617,7 @@ int kvmppc_core_prepare_to_enter(struct kvm_vcpu *vcpu)
local_irq_enable();
kvm_vcpu_block(vcpu);
clear_bit(KVM_REQ_UNHALT, &vcpu->requests);
- local_irq_disable();
+ hard_irq_disable();
kvmppc_set_exit_type(vcpu, EMULATED_MTMSRWE_EXITS);
r = 1;
@@ -666,10 +666,8 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
return -EINVAL;
}
- local_irq_disable();
s = kvmppc_prepare_to_enter(vcpu);
if (s <= 0) {
- local_irq_enable();
ret = s;
goto out;
}
@@ -1161,14 +1159,11 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
* aren't already exiting to userspace for some other reason.
*/
if (!(r & RESUME_HOST)) {
- local_irq_disable();
s = kvmppc_prepare_to_enter(vcpu);
- if (s <= 0) {
- local_irq_enable();
+ if (s <= 0)
r = (s << 2) | RESUME_HOST | (r & RESUME_FLAG_NV);
- } else {
+ else
kvmppc_fix_ee_before_entry();
- }
}
return r;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 4e05f8c..2f7a221 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -64,12 +64,14 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
{
int r = 1;
- WARN_ON_ONCE(!irqs_disabled());
+ WARN_ON(irqs_disabled());
+ hard_irq_disable();
+
while (true) {
if (need_resched()) {
local_irq_enable();
cond_resched();
- local_irq_disable();
+ hard_irq_disable();
continue;
}
@@ -95,7 +97,7 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
local_irq_enable();
trace_kvm_check_requests(vcpu);
r = kvmppc_core_check_requests(vcpu);
- local_irq_disable();
+ hard_irq_disable();
if (r > 0)
continue;
break;
@@ -108,21 +110,16 @@ int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu)
}
#ifdef CONFIG_PPC64
- /* lazy EE magic */
- hard_irq_disable();
- if (lazy_irq_pending()) {
- /* Got an interrupt in between, try again */
- local_irq_enable();
- local_irq_disable();
- kvm_guest_exit();
- continue;
- }
+ WARN_ON(lazy_irq_pending());
#endif
+ /* Can't use irqs_disabled() because we want hard irq state */
+ WARN_ON(mfmsr() & MSR_EE);
kvm_guest_enter();
- break;
+ return r;
}
+ local_irq_enable();
return r;
}
#endif /* CONFIG_KVM_BOOK3S_64_HV */
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 7/8] kvm/ppc/booke: Delay kvmppc_fix_ee_before_entry
2013-06-07 0:16 ` Scott Wood
@ 2013-06-07 0:16 ` Scott Wood
-1 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
kwmppc_fix_ee_before_entry() should be called as late as possible,
or else we get things like WARN_ON(preemptible()) in enable_kernel_fp()
in configurations where preemptible() works.
Note that book3s_pr already waits until just before __kvmppc_vcpu_run
to call kvmppc_fix_ee_before_entry().
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/kvm/booke.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index c5270a3..f953324 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -671,7 +671,6 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
ret = s;
goto out;
}
- kvmppc_fix_ee_before_entry();
kvm_guest_enter();
@@ -697,6 +696,8 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
kvmppc_load_guest_fp(vcpu);
#endif
+ kvmppc_fix_ee_before_entry();
+
ret = __kvmppc_vcpu_run(kvm_run, vcpu);
/* No need for kvm_guest_exit. It's done in handle_exit.
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 7/8] kvm/ppc/booke: Delay kvmppc_fix_ee_before_entry
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
kwmppc_fix_ee_before_entry() should be called as late as possible,
or else we get things like WARN_ON(preemptible()) in enable_kernel_fp()
in configurations where preemptible() works.
Note that book3s_pr already waits until just before __kvmppc_vcpu_run
to call kvmppc_fix_ee_before_entry().
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/kvm/booke.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index c5270a3..f953324 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -671,7 +671,6 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
ret = s;
goto out;
}
- kvmppc_fix_ee_before_entry();
kvm_guest_enter();
@@ -697,6 +696,8 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
kvmppc_load_guest_fp(vcpu);
#endif
+ kvmppc_fix_ee_before_entry();
+
ret = __kvmppc_vcpu_run(kvm_run, vcpu);
/* No need for kvm_guest_exit. It's done in handle_exit.
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 8/8] kvm/ppc/booke: Don't call kvm_guest_enter twice
2013-06-07 0:16 ` Scott Wood
@ 2013-06-07 0:16 ` Scott Wood
-1 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
kvm_guest_enter() was already called by kvmppc_prepare_to_enter().
Don't call it again.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/kvm/booke.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index f953324..0b4d792 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -672,8 +672,6 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
goto out;
}
- kvm_guest_enter();
-
#ifdef CONFIG_PPC_FPU
/* Save userspace FPU state in stack */
enable_kernel_fp();
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [PATCH 8/8] kvm/ppc/booke: Don't call kvm_guest_enter twice
@ 2013-06-07 0:16 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-07 0:16 UTC (permalink / raw)
To: Alexander Graf, Gleb Natapov, Paolo Bonzini
Cc: Mihai Caraman, kvm-ppc, kvm, Scott Wood
kvm_guest_enter() was already called by kvmppc_prepare_to_enter().
Don't call it again.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/kvm/booke.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index f953324..0b4d792 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -672,8 +672,6 @@ int kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
goto out;
}
- kvm_guest_enter();
-
#ifdef CONFIG_PPC_FPU
/* Save userspace FPU state in stack */
enable_kernel_fp();
--
1.7.10.4
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
2013-06-07 0:16 ` Scott Wood
@ 2013-06-09 8:09 ` Gleb Natapov
-1 siblings, 0 replies; 34+ messages in thread
From: Gleb Natapov @ 2013-06-09 8:09 UTC (permalink / raw)
To: Scott Wood; +Cc: Alexander Graf, Paolo Bonzini, Mihai Caraman, kvm-ppc, kvm
On Thu, Jun 06, 2013 at 07:16:28PM -0500, Scott Wood wrote:
> Most of these have been posted before, but I grouped them together as
> there are some contextual dependencies between them.
>
> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
> if there's no objection over the next few days?
>
Well we are at -rc5 now and Linus specifically said that if he sees one
more "cleanup" he will be less then happy [1]. Looks like this patch
series does have some cleanups that can be postponed to 3.11.
Patches 1-4,7 looks like 3.10 material to me. 5 and 6 a cleanups that can
wait for 3.11. Not sure about 8, if 8 fixes serious problem please
specify it in the commit message.
[1] http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg448395.html
> Mihai Caraman (1):
> kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage
>
> Scott Wood (7):
> kvm/ppc/booke64: Disable e6500 support
> kvm/ppc/booke: Hold srcu lock when calling gfn functions
> kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
> kvm/ppc: Call trace_hardirqs_on before entry
> kvm/ppc: IRQ disabling cleanup
> kvm/ppc/booke: Delay kvmppc_fix_ee_before_entry
> kvm/ppc/booke: Don't call kvm_guest_enter twice
>
> arch/powerpc/include/asm/kvm_asm.h | 16 ++++++++++------
> arch/powerpc/include/asm/kvm_ppc.h | 17 ++++++++++++++---
> arch/powerpc/kvm/44x_tlb.c | 5 +++++
> arch/powerpc/kvm/book3s_pr.c | 16 +++++-----------
> arch/powerpc/kvm/booke.c | 36 ++++++++++++++++++++++++------------
> arch/powerpc/kvm/e500_mmu.c | 5 +++++
> arch/powerpc/kvm/e500mc.c | 2 --
> arch/powerpc/kvm/powerpc.c | 25 ++++++++++---------------
> 8 files changed, 73 insertions(+), 49 deletions(-)
>
> --
> 1.7.10.4
>
--
Gleb.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-06-09 8:09 ` Gleb Natapov
0 siblings, 0 replies; 34+ messages in thread
From: Gleb Natapov @ 2013-06-09 8:09 UTC (permalink / raw)
To: Scott Wood; +Cc: Alexander Graf, Paolo Bonzini, Mihai Caraman, kvm-ppc, kvm
On Thu, Jun 06, 2013 at 07:16:28PM -0500, Scott Wood wrote:
> Most of these have been posted before, but I grouped them together as
> there are some contextual dependencies between them.
>
> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
> if there's no objection over the next few days?
>
Well we are at -rc5 now and Linus specifically said that if he sees one
more "cleanup" he will be less then happy [1]. Looks like this patch
series does have some cleanups that can be postponed to 3.11.
Patches 1-4,7 looks like 3.10 material to me. 5 and 6 a cleanups that can
wait for 3.11. Not sure about 8, if 8 fixes serious problem please
specify it in the commit message.
[1] http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg448395.html
> Mihai Caraman (1):
> kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage
>
> Scott Wood (7):
> kvm/ppc/booke64: Disable e6500 support
> kvm/ppc/booke: Hold srcu lock when calling gfn functions
> kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
> kvm/ppc: Call trace_hardirqs_on before entry
> kvm/ppc: IRQ disabling cleanup
> kvm/ppc/booke: Delay kvmppc_fix_ee_before_entry
> kvm/ppc/booke: Don't call kvm_guest_enter twice
>
> arch/powerpc/include/asm/kvm_asm.h | 16 ++++++++++------
> arch/powerpc/include/asm/kvm_ppc.h | 17 ++++++++++++++---
> arch/powerpc/kvm/44x_tlb.c | 5 +++++
> arch/powerpc/kvm/book3s_pr.c | 16 +++++-----------
> arch/powerpc/kvm/booke.c | 36 ++++++++++++++++++++++++------------
> arch/powerpc/kvm/e500_mmu.c | 5 +++++
> arch/powerpc/kvm/e500mc.c | 2 --
> arch/powerpc/kvm/powerpc.c | 25 ++++++++++---------------
> 8 files changed, 73 insertions(+), 49 deletions(-)
>
> --
> 1.7.10.4
>
--
Gleb.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
2013-06-09 8:09 ` Gleb Natapov
@ 2013-06-10 19:52 ` Scott Wood
-1 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-10 19:52 UTC (permalink / raw)
To: Gleb Natapov; +Cc: Alexander Graf, Paolo Bonzini, Mihai Caraman, kvm-ppc, kvm
On 06/09/2013 03:09:21 AM, Gleb Natapov wrote:
> On Thu, Jun 06, 2013 at 07:16:28PM -0500, Scott Wood wrote:
> > Most of these have been posted before, but I grouped them together
> as
> > there are some contextual dependencies between them.
> >
> > Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply
> these
> > if there's no objection over the next few days?
> >
> Well we are at -rc5 now and Linus specifically said that if he sees
> one
> more "cleanup" he will be less then happy [1]. Looks like this patch
> series does have some cleanups that can be postponed to 3.11.
> Patches 1-4,7 looks like 3.10 material to me. 5 and 6 a cleanups that
> can
> wait for 3.11. Not sure about 8, if 8 fixes serious problem please
> specify it in the commit message.
Agreed.
8 did fix a BUG_ON before patch 7 came along, but now it looks
non-critical.
5 only affects IRQ tracing, and it's not a regression, so also probably
not critical. I'll resend patch 7 so that it applies without needing
patch 5.
6 is mainly doing things that we originally thought were a fix to lazy
ee handling, until we noticed code elsewhere handling it in a hackier
way. There's still a bugfix in that previously kvm_guest_exit() was
called in the wrong place which could occasionally mess up virtual time
accounting, but that's also not a regression and not critical.
-Scott
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-06-10 19:52 ` Scott Wood
0 siblings, 0 replies; 34+ messages in thread
From: Scott Wood @ 2013-06-10 19:52 UTC (permalink / raw)
To: Gleb Natapov; +Cc: Alexander Graf, Paolo Bonzini, Mihai Caraman, kvm-ppc, kvm
On 06/09/2013 03:09:21 AM, Gleb Natapov wrote:
> On Thu, Jun 06, 2013 at 07:16:28PM -0500, Scott Wood wrote:
> > Most of these have been posted before, but I grouped them together
> as
> > there are some contextual dependencies between them.
> >
> > Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply
> these
> > if there's no objection over the next few days?
> >
> Well we are at -rc5 now and Linus specifically said that if he sees
> one
> more "cleanup" he will be less then happy [1]. Looks like this patch
> series does have some cleanups that can be postponed to 3.11.
> Patches 1-4,7 looks like 3.10 material to me. 5 and 6 a cleanups that
> can
> wait for 3.11. Not sure about 8, if 8 fixes serious problem please
> specify it in the commit message.
Agreed.
8 did fix a BUG_ON before patch 7 came along, but now it looks
non-critical.
5 only affects IRQ tracing, and it's not a regression, so also probably
not critical. I'll resend patch 7 so that it applies without needing
patch 5.
6 is mainly doing things that we originally thought were a fix to lazy
ee handling, until we noticed code elsewhere handling it in a hackier
way. There's still a bugfix in that previously kvm_guest_exit() was
called in the wrong place which could occasionally mess up virtual time
accounting, but that's also not a regression and not critical.
-Scott
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
2013-06-10 19:52 ` Scott Wood
@ 2013-06-17 15:27 ` Paolo Bonzini
-1 siblings, 0 replies; 34+ messages in thread
From: Paolo Bonzini @ 2013-06-17 15:27 UTC (permalink / raw)
To: Scott Wood; +Cc: Gleb Natapov, Alexander Graf, Mihai Caraman, kvm-ppc, kvm
Il 10/06/2013 21:52, Scott Wood ha scritto:
> On 06/09/2013 03:09:21 AM, Gleb Natapov wrote:
>> On Thu, Jun 06, 2013 at 07:16:28PM -0500, Scott Wood wrote:
>> > Most of these have been posted before, but I grouped them together as
>> > there are some contextual dependencies between them.
>> >
>> > Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>> > if there's no objection over the next few days?
>> >
>> Well we are at -rc5 now and Linus specifically said that if he sees one
>> more "cleanup" he will be less then happy [1]. Looks like this patch
>> series does have some cleanups that can be postponed to 3.11.
>> Patches 1-4,7 looks like 3.10 material to me. 5 and 6 a cleanups that can
>> wait for 3.11. Not sure about 8, if 8 fixes serious problem please
>> specify it in the commit message.
>
> Agreed.
>
> 8 did fix a BUG_ON before patch 7 came along, but now it looks
> non-critical.
>
> 5 only affects IRQ tracing, and it's not a regression, so also probably
> not critical. I'll resend patch 7 so that it applies without needing
> patch 5.
>
> 6 is mainly doing things that we originally thought were a fix to lazy
> ee handling, until we noticed code elsewhere handling it in a hackier
> way. There's still a bugfix in that previously kvm_guest_exit() was
> called in the wrong place which could occasionally mess up virtual time
> accounting, but that's also not a regression and not critical.
CCed people probably already know, but in any case patches 1-4 are
already in Linus's tree (commit af180b81).
Paolo
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-06-17 15:27 ` Paolo Bonzini
0 siblings, 0 replies; 34+ messages in thread
From: Paolo Bonzini @ 2013-06-17 15:27 UTC (permalink / raw)
To: Scott Wood; +Cc: Gleb Natapov, Alexander Graf, Mihai Caraman, kvm-ppc, kvm
Il 10/06/2013 21:52, Scott Wood ha scritto:
> On 06/09/2013 03:09:21 AM, Gleb Natapov wrote:
>> On Thu, Jun 06, 2013 at 07:16:28PM -0500, Scott Wood wrote:
>> > Most of these have been posted before, but I grouped them together as
>> > there are some contextual dependencies between them.
>> >
>> > Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>> > if there's no objection over the next few days?
>> >
>> Well we are at -rc5 now and Linus specifically said that if he sees one
>> more "cleanup" he will be less then happy [1]. Looks like this patch
>> series does have some cleanups that can be postponed to 3.11.
>> Patches 1-4,7 looks like 3.10 material to me. 5 and 6 a cleanups that can
>> wait for 3.11. Not sure about 8, if 8 fixes serious problem please
>> specify it in the commit message.
>
> Agreed.
>
> 8 did fix a BUG_ON before patch 7 came along, but now it looks
> non-critical.
>
> 5 only affects IRQ tracing, and it's not a regression, so also probably
> not critical. I'll resend patch 7 so that it applies without needing
> patch 5.
>
> 6 is mainly doing things that we originally thought were a fix to lazy
> ee handling, until we noticed code elsewhere handling it in a hackier
> way. There's still a bugfix in that previously kvm_guest_exit() was
> called in the wrong place which could occasionally mess up virtual time
> accounting, but that's also not a regression and not critical.
CCed people probably already know, but in any case patches 1-4 are
already in Linus's tree (commit af180b81).
Paolo
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
2013-06-07 0:16 ` Scott Wood
@ 2013-07-09 7:21 ` tiejun.chen
-1 siblings, 0 replies; 34+ messages in thread
From: tiejun.chen @ 2013-07-09 7:21 UTC (permalink / raw)
To: Scott Wood
Cc: Alexander Graf, Gleb Natapov, Paolo Bonzini, Mihai Caraman, kvm-ppc, kvm
On 06/07/2013 08:16 AM, Scott Wood wrote:
> Most of these have been posted before, but I grouped them together as
> there are some contextual dependencies between them.
>
> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
> if there's no objection over the next few days?
Scott and Alex,
Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
Or instead, where can we proceed to book3e KVM?
Tiejun
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-07-09 7:21 ` tiejun.chen
0 siblings, 0 replies; 34+ messages in thread
From: tiejun.chen @ 2013-07-09 7:21 UTC (permalink / raw)
To: Scott Wood
Cc: Alexander Graf, Gleb Natapov, Paolo Bonzini, Mihai Caraman, kvm-ppc, kvm
On 06/07/2013 08:16 AM, Scott Wood wrote:
> Most of these have been posted before, but I grouped them together as
> there are some contextual dependencies between them.
>
> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
> if there's no objection over the next few days?
Scott and Alex,
Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
Or instead, where can we proceed to book3e KVM?
Tiejun
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
2013-07-09 7:21 ` tiejun.chen
@ 2013-07-09 8:53 ` Alexander Graf
-1 siblings, 0 replies; 34+ messages in thread
From: Alexander Graf @ 2013-07-09 8:53 UTC (permalink / raw)
To: tiejun.chen
Cc: Scott Wood, Gleb Natapov, Paolo Bonzini, Mihai Caraman,
<kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>
Am 09.07.2013 um 09:21 schrieb "tiejun.chen" <tiejun.chen@windriver.com>:
> On 06/07/2013 08:16 AM, Scott Wood wrote:
>> Most of these have been posted before, but I grouped them together as
>> there are some contextual dependencies between them.
>>
>> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>> if there's no objection over the next few days?
>
> Scott and Alex,
>
> Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
Which commits exactly are you missing there?
Alex
>
> Or instead, where can we proceed to book3e KVM?
>
> Tiejun
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-07-09 8:53 ` Alexander Graf
0 siblings, 0 replies; 34+ messages in thread
From: Alexander Graf @ 2013-07-09 8:53 UTC (permalink / raw)
To: tiejun.chen
Cc: Scott Wood, Gleb Natapov, Paolo Bonzini, Mihai Caraman,
<kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>
Am 09.07.2013 um 09:21 schrieb "tiejun.chen" <tiejun.chen@windriver.com>:
> On 06/07/2013 08:16 AM, Scott Wood wrote:
>> Most of these have been posted before, but I grouped them together as
>> there are some contextual dependencies between them.
>>
>> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>> if there's no objection over the next few days?
>
> Scott and Alex,
>
> Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
Which commits exactly are you missing there?
Alex
>
> Or instead, where can we proceed to book3e KVM?
>
> Tiejun
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
2013-07-09 8:53 ` Alexander Graf
@ 2013-07-09 9:09 ` tiejun.chen
-1 siblings, 0 replies; 34+ messages in thread
From: tiejun.chen @ 2013-07-09 9:09 UTC (permalink / raw)
To: Alexander Graf
Cc: Scott Wood, Gleb Natapov, Paolo Bonzini, Mihai Caraman,
<kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>
On 07/09/2013 04:53 PM, Alexander Graf wrote:
>
>
> Am 09.07.2013 um 09:21 schrieb "tiejun.chen" <tiejun.chen@windriver.com>:
>
>> On 06/07/2013 08:16 AM, Scott Wood wrote:
>>> Most of these have been posted before, but I grouped them together as
>>> there are some contextual dependencies between them.
>>>
>>> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>>> if there's no objection over the next few days?
>>
>> Scott and Alex,
>>
>> Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
>
> Which commits exactly are you missing there?
Alex,
Four patches,
kvm/ppc/booke: Delay kvmppc_lazy_ee_enable
kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
kvm/ppc/booke: Hold srcu lock when calling gfn functions
kvm/ppc/booke64: Disable e6500 support
are already in Linus's tree,
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Scott+Wood
So should we sync these commits into your tree?
Tiejun
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-07-09 9:09 ` tiejun.chen
0 siblings, 0 replies; 34+ messages in thread
From: tiejun.chen @ 2013-07-09 9:09 UTC (permalink / raw)
To: Alexander Graf
Cc: Scott Wood, Gleb Natapov, Paolo Bonzini, Mihai Caraman,
<kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>
On 07/09/2013 04:53 PM, Alexander Graf wrote:
>
>
> Am 09.07.2013 um 09:21 schrieb "tiejun.chen" <tiejun.chen@windriver.com>:
>
>> On 06/07/2013 08:16 AM, Scott Wood wrote:
>>> Most of these have been posted before, but I grouped them together as
>>> there are some contextual dependencies between them.
>>>
>>> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>>> if there's no objection over the next few days?
>>
>> Scott and Alex,
>>
>> Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
>
> Which commits exactly are you missing there?
Alex,
Four patches,
kvm/ppc/booke: Delay kvmppc_lazy_ee_enable
kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
kvm/ppc/booke: Hold srcu lock when calling gfn functions
kvm/ppc/booke64: Disable e6500 support
are already in Linus's tree,
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Scott+Wood
So should we sync these commits into your tree?
Tiejun
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
2013-07-09 9:09 ` tiejun.chen
@ 2013-07-09 21:33 ` Alexander Graf
-1 siblings, 0 replies; 34+ messages in thread
From: Alexander Graf @ 2013-07-09 21:33 UTC (permalink / raw)
To: tiejun.chen
Cc: Scott Wood, Gleb Natapov, Paolo Bonzini, Mihai Caraman,
<kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>
On 09.07.2013, at 11:09, tiejun.chen wrote:
> On 07/09/2013 04:53 PM, Alexander Graf wrote:
>>
>>
>> Am 09.07.2013 um 09:21 schrieb "tiejun.chen" <tiejun.chen@windriver.com>:
>>
>>> On 06/07/2013 08:16 AM, Scott Wood wrote:
>>>> Most of these have been posted before, but I grouped them together as
>>>> there are some contextual dependencies between them.
>>>>
>>>> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>>>> if there's no objection over the next few days?
>>>
>>> Scott and Alex,
>>>
>>> Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
>>
>> Which commits exactly are you missing there?
>
> Alex,
>
> Four patches,
>
> kvm/ppc/booke: Delay kvmppc_lazy_ee_enable
> kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
> kvm/ppc/booke: Hold srcu lock when calling gfn functions
> kvm/ppc/booke64: Disable e6500 support
>
> are already in Linus's tree,
>
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Scott+Wood
>
> So should we sync these commits into your tree?
They should already be in there?
Alex
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-07-09 21:33 ` Alexander Graf
0 siblings, 0 replies; 34+ messages in thread
From: Alexander Graf @ 2013-07-09 21:33 UTC (permalink / raw)
To: tiejun.chen
Cc: Scott Wood, Gleb Natapov, Paolo Bonzini, Mihai Caraman,
<kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>
On 09.07.2013, at 11:09, tiejun.chen wrote:
> On 07/09/2013 04:53 PM, Alexander Graf wrote:
>>
>>
>> Am 09.07.2013 um 09:21 schrieb "tiejun.chen" <tiejun.chen@windriver.com>:
>>
>>> On 06/07/2013 08:16 AM, Scott Wood wrote:
>>>> Most of these have been posted before, but I grouped them together as
>>>> there are some contextual dependencies between them.
>>>>
>>>> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>>>> if there's no objection over the next few days?
>>>
>>> Scott and Alex,
>>>
>>> Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
>>
>> Which commits exactly are you missing there?
>
> Alex,
>
> Four patches,
>
> kvm/ppc/booke: Delay kvmppc_lazy_ee_enable
> kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
> kvm/ppc/booke: Hold srcu lock when calling gfn functions
> kvm/ppc/booke64: Disable e6500 support
>
> are already in Linus's tree,
>
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Scott+Wood
>
> So should we sync these commits into your tree?
They should already be in there?
Alex
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
2013-07-09 21:33 ` Alexander Graf
@ 2013-07-10 6:03 ` tiejun.chen
-1 siblings, 0 replies; 34+ messages in thread
From: tiejun.chen @ 2013-07-10 6:03 UTC (permalink / raw)
To: Alexander Graf
Cc: Scott Wood, Gleb Natapov, Paolo Bonzini, Mihai Caraman,
<kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>
On 07/10/2013 05:33 AM, Alexander Graf wrote:
>
> On 09.07.2013, at 11:09, tiejun.chen wrote:
>
>> On 07/09/2013 04:53 PM, Alexander Graf wrote:
>>>
>>>
>>> Am 09.07.2013 um 09:21 schrieb "tiejun.chen" <tiejun.chen@windriver.com>:
>>>
>>>> On 06/07/2013 08:16 AM, Scott Wood wrote:
>>>>> Most of these have been posted before, but I grouped them together as
>>>>> there are some contextual dependencies between them.
>>>>>
>>>>> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>>>>> if there's no objection over the next few days?
>>>>
>>>> Scott and Alex,
>>>>
>>>> Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
>>>
>>> Which commits exactly are you missing there?
>>
>> Alex,
>>
>> Four patches,
>>
>> kvm/ppc/booke: Delay kvmppc_lazy_ee_enable
>> kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
>> kvm/ppc/booke: Hold srcu lock when calling gfn functions
>> kvm/ppc/booke64: Disable e6500 support
>>
>> are already in Linus's tree,
>>
>> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Scott+Wood
>>
>> So should we sync these commits into your tree?
>
> They should already be in there?
Yes, I already see this.
Thanks,
Tiejun
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH 0/8] kvm/ppc: fixes for 3.10
@ 2013-07-10 6:03 ` tiejun.chen
0 siblings, 0 replies; 34+ messages in thread
From: tiejun.chen @ 2013-07-10 6:03 UTC (permalink / raw)
To: Alexander Graf
Cc: Scott Wood, Gleb Natapov, Paolo Bonzini, Mihai Caraman,
<kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>
On 07/10/2013 05:33 AM, Alexander Graf wrote:
>
> On 09.07.2013, at 11:09, tiejun.chen wrote:
>
>> On 07/09/2013 04:53 PM, Alexander Graf wrote:
>>>
>>>
>>> Am 09.07.2013 um 09:21 schrieb "tiejun.chen" <tiejun.chen@windriver.com>:
>>>
>>>> On 06/07/2013 08:16 AM, Scott Wood wrote:
>>>>> Most of these have been posted before, but I grouped them together as
>>>>> there are some contextual dependencies between them.
>>>>>
>>>>> Gleb/Paolo: As Alex doesn't appear to be back yet, can you apply these
>>>>> if there's no objection over the next few days?
>>>>
>>>> Scott and Alex,
>>>>
>>>> Any plan to merge these commits into git://github.com/agraf/linux-2.6.git as well?
>>>
>>> Which commits exactly are you missing there?
>>
>> Alex,
>>
>> Four patches,
>>
>> kvm/ppc/booke: Delay kvmppc_lazy_ee_enable
>> kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
>> kvm/ppc/booke: Hold srcu lock when calling gfn functions
>> kvm/ppc/booke64: Disable e6500 support
>>
>> are already in Linus's tree,
>>
>> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Scott+Wood
>>
>> So should we sync these commits into your tree?
>
> They should already be in there?
Yes, I already see this.
Thanks,
Tiejun
^ permalink raw reply [flat|nested] 34+ messages in thread
end of thread, other threads:[~2013-07-10 6:03 UTC | newest]
Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-07 0:16 [PATCH 0/8] kvm/ppc: fixes for 3.10 Scott Wood
2013-06-07 0:16 ` Scott Wood
2013-06-07 0:16 ` [PATCH 1/8] kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage Scott Wood
2013-06-07 0:16 ` Scott Wood
2013-06-07 0:16 ` [PATCH 2/8] kvm/ppc/booke64: Disable e6500 support Scott Wood
2013-06-07 0:16 ` Scott Wood
2013-06-07 0:16 ` [PATCH 3/8] kvm/ppc/booke: Hold srcu lock when calling gfn functions Scott Wood
2013-06-07 0:16 ` Scott Wood
2013-06-07 0:16 ` [PATCH 4/8] kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit() Scott Wood
2013-06-07 0:16 ` Scott Wood
2013-06-07 0:16 ` [PATCH 5/8] kvm/ppc: Call trace_hardirqs_on before entry Scott Wood
2013-06-07 0:16 ` Scott Wood
2013-06-07 0:16 ` [PATCH 6/8] kvm/ppc: IRQ disabling cleanup Scott Wood
2013-06-07 0:16 ` Scott Wood
2013-06-07 0:16 ` [PATCH 7/8] kvm/ppc/booke: Delay kvmppc_fix_ee_before_entry Scott Wood
2013-06-07 0:16 ` Scott Wood
2013-06-07 0:16 ` [PATCH 8/8] kvm/ppc/booke: Don't call kvm_guest_enter twice Scott Wood
2013-06-07 0:16 ` Scott Wood
2013-06-09 8:09 ` [PATCH 0/8] kvm/ppc: fixes for 3.10 Gleb Natapov
2013-06-09 8:09 ` Gleb Natapov
2013-06-10 19:52 ` Scott Wood
2013-06-10 19:52 ` Scott Wood
2013-06-17 15:27 ` Paolo Bonzini
2013-06-17 15:27 ` Paolo Bonzini
2013-07-09 7:21 ` tiejun.chen
2013-07-09 7:21 ` tiejun.chen
2013-07-09 8:53 ` Alexander Graf
2013-07-09 8:53 ` Alexander Graf
2013-07-09 9:09 ` tiejun.chen
2013-07-09 9:09 ` tiejun.chen
2013-07-09 21:33 ` Alexander Graf
2013-07-09 21:33 ` Alexander Graf
2013-07-10 6:03 ` tiejun.chen
2013-07-10 6:03 ` tiejun.chen
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.