* [GIT PULL] KVM fixes for v4.12-rc2
@ 2017-05-19 18:43 Radim Krčmář
2017-05-19 22:21 ` Linus Torvalds
0 siblings, 1 reply; 4+ messages in thread
From: Radim Krčmář @ 2017-05-19 18:43 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Paolo Bonzini, linux-kernel, kvm
Linus,
The following changes since commit 2ea659a9ef488125eb46da6eb571de5eae5c43f6:
Linux 4.12-rc1 (2017-05-13 13:19:49 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus
for you to fetch changes up to 92ceb7679ab8807d3b7fbcc6daf2279036954ef5:
KVM: x86: prevent uninitialized variable warning in check_svme() (2017-05-19 19:59:28 +0200)
----------------------------------------------------------------
KVM fixes for v4.12-rc2
ARM:
- A fix for a build failure introduced in -rc1 when tracepoints are
enabled on 32-bit ARM.
- Disabling use of stack pointer protection in the hyp code which can
cause panics.
- A handful of VGIC fixes.
- A fix to the init of the redistributors on GICv3 systems that
prevented boot with kvmtool on GICv3 systems introduced in -rc1.
- A number of race conditions fixed in our MMU handling code.
- A fix for the guest being able to program the debug extensions for
the host on the 32-bit side.
PPC:
- Fixes for build failures with PR KVM configurations.
- A fix for a host crash that can occur on POWER9 with radix guests.
x86:
- Fixes for nested PML and nested EPT.
- A fix for crashes caused by reserved bits in SSE MXCSR that could
have been set by userspace.
- An optimization of halt polling that fixes high CPU overhead.
- Fixes for four reports from Dan Carpenter's static checker.
- A protection around code that shouldn't have been preemptible.
- A fix for port IO emulation.
----------------------------------------------------------------
Christoffer Dall (2):
KVM: arm/arm64: Fix bug when registering redist iodevs
KVM: arm/arm64: Hold slots_lock when unregistering kvm io bus devices
Dan Carpenter (2):
kvm: nVMX: off by one in vmx_write_pml_buffer()
KVM: Silence underflow warning in avic_get_physical_id_entry()
Marc Zyngier (6):
ARM: KVM: Fix tracepoint generation after move to virt/kvm/arm/
arm64: KVM: Do not use stack-protector to compile EL2 code
arm: KVM: Do not use stack-protector to compile HYP code
KVM: arm/arm64: vgic-v2: Do not use Active+Pending state for a HW interrupt
KVM: arm/arm64: vgic-v3: Do not use Active+Pending state for a HW interrupt
KVM: arm/arm64: vgic-v3: Use PREbits to infer the number of ICH_APxRn_EL2 registers
Paolo Bonzini (2):
KVM: nVMX: fix EPT permissions as reported in exit qualification
KVM: x86: lower default for halt_poll_ns
Paul Mackerras (3):
KVM: PPC: Book3S HV: Add radix checks in real-mode hypercall handlers
KVM: PPC: Book3S PR: Check copy_to/from_user return values
KVM: PPC: Book3S PR: Don't include SPAPR TCE code on non-pseries platforms
Radim Krčmář (5):
Merge branch 'kvm-ppc-fixes' of git://git.kernel.org/.../paulus/powerpc
Merge tag 'kvm-arm-for-v4.12-rc2' of git://git.kernel.org/.../kvmarm/kvmarm
KVM: x86: zero base3 of unusable segments
KVM: x86/vPMU: fix undefined shift in intel_pmu_refresh()
KVM: x86: prevent uninitialized variable warning in check_svme()
Suzuki K Poulose (3):
kvm: arm/arm64: Fix race in resetting stage2 PGD
kvm: arm/arm64: Force reading uncached stage2 PGD
kvm: arm/arm64: Fix use after free of stage2 page table
Wanpeng Li (4):
KVM: x86: Fix load damaged SSEx MXCSR register
KVM: VMX: Don't enable EPT A/D feature if EPT feature is disabled
KVM: x86: Fix potential preemption when get the current kvmclock timestamp
KVM: X86: Fix read out-of-bounds vulnerability in kvm pio emulation
Zhichao Huang (2):
KVM: arm: plug potential guest hardware debug leakage
KVM: arm: rename pm_fake handler to trap_raz_wi
arch/arm/include/asm/kvm_coproc.h | 3 +-
arch/arm/kvm/coproc.c | 106 ++++++++++++++++++++++++-----------
arch/arm/kvm/handle_exit.c | 4 +-
arch/arm/kvm/hyp/Makefile | 2 +
arch/arm/kvm/hyp/switch.c | 4 +-
arch/arm/kvm/trace.h | 8 +--
arch/arm64/kvm/hyp/Makefile | 2 +
arch/powerpc/kvm/Kconfig | 2 +-
arch/powerpc/kvm/Makefile | 4 +-
arch/powerpc/kvm/book3s_64_vio_hv.c | 13 +++++
arch/powerpc/kvm/book3s_hv_builtin.c | 9 ++-
arch/powerpc/kvm/book3s_pr_papr.c | 80 ++++++++++++++++++--------
arch/powerpc/kvm/powerpc.c | 4 +-
arch/x86/include/asm/kvm_host.h | 2 +-
arch/x86/kernel/fpu/init.c | 1 +
arch/x86/kvm/emulate.c | 2 +-
arch/x86/kvm/paging_tmpl.h | 35 +++++++-----
arch/x86/kvm/pmu_intel.c | 2 +-
arch/x86/kvm/svm.c | 3 +-
arch/x86/kvm/vmx.c | 4 +-
arch/x86/kvm/x86.c | 45 +++++++++++----
include/kvm/arm_vgic.h | 5 +-
virt/kvm/arm/hyp/vgic-v3-sr.c | 18 +++---
virt/kvm/arm/mmu.c | 33 +++++++----
virt/kvm/arm/vgic/vgic-init.c | 5 +-
virt/kvm/arm/vgic/vgic-mmio-v3.c | 12 +++-
virt/kvm/arm/vgic/vgic-v2.c | 7 +++
virt/kvm/arm/vgic/vgic-v3.c | 7 +++
28 files changed, 297 insertions(+), 125 deletions(-)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL] KVM fixes for v4.12-rc2
2017-05-19 18:43 [GIT PULL] KVM fixes for v4.12-rc2 Radim Krčmář
@ 2017-05-19 22:21 ` Linus Torvalds
2017-05-20 10:52 ` Juergen Gross
0 siblings, 1 reply; 4+ messages in thread
From: Linus Torvalds @ 2017-05-19 22:21 UTC (permalink / raw)
To: Radim Krčmář, Juergen Gross; +Cc: Linux Kernel Mailing List
So I noticed that my diffstat didn't match either the KVM or the Xen pull.
The *reason* seems to be that both Radim and Juergen have enabled the
"patience" diff, because if I add "--patience" to the diff line, I get
the same numbers you guys report.
On Fri, May 19, 2017 at 11:43 AM, Radim Krčmář <rkrcmar@redhat.com> wrote:
>
> 28 files changed, 297 insertions(+), 125 deletions(-)
Without "--patience" (the default) I get:
28 files changed, 292 insertions(+), 120 deletions(-)
which is close, but not the exact same thing.
So I don't mind people using the patience version of the diffing code,
but on the whole it's a loss as often as it is a win, so I'm wondering
_why_ you do this? Is there some other project that has started
suggesting using the patience diff (either with a command line option
or by just doing
git config diff.algorithm patience
anyway, it's not a big deal, I'm just curious..
Linus
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL] KVM fixes for v4.12-rc2
2017-05-19 22:21 ` Linus Torvalds
@ 2017-05-20 10:52 ` Juergen Gross
2017-05-22 14:37 ` Radim Krčmář
0 siblings, 1 reply; 4+ messages in thread
From: Juergen Gross @ 2017-05-20 10:52 UTC (permalink / raw)
To: Linus Torvalds, Radim Krčmář; +Cc: Linux Kernel Mailing List
On 20/05/17 00:21, Linus Torvalds wrote:
> So I noticed that my diffstat didn't match either the KVM or the Xen pull.
>
> The *reason* seems to be that both Radim and Juergen have enabled the
> "patience" diff, because if I add "--patience" to the diff line, I get
> the same numbers you guys report.
>
> On Fri, May 19, 2017 at 11:43 AM, Radim Krčmář <rkrcmar@redhat.com> wrote:
>>
>> 28 files changed, 297 insertions(+), 125 deletions(-)
>
> Without "--patience" (the default) I get:
>
> 28 files changed, 292 insertions(+), 120 deletions(-)
>
> which is close, but not the exact same thing.
>
> So I don't mind people using the patience version of the diffing code,
> but on the whole it's a loss as often as it is a win, so I'm wondering
> _why_ you do this? Is there some other project that has started
> suggesting using the patience diff (either with a command line option
> or by just doing
>
> git config diff.algorithm patience
>
> anyway, it's not a big deal, I'm just curious..
In my case it was a patch which was much easier to review using the
patience diff. I just didn't switch back afterwards (what I did now).
Juergen
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL] KVM fixes for v4.12-rc2
2017-05-20 10:52 ` Juergen Gross
@ 2017-05-22 14:37 ` Radim Krčmář
0 siblings, 0 replies; 4+ messages in thread
From: Radim Krčmář @ 2017-05-22 14:37 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Juergen Gross, Linux Kernel Mailing List
2017-05-20 12:52+0200, Juergen Gross:
> On 20/05/17 00:21, Linus Torvalds wrote:
> > So I noticed that my diffstat didn't match either the KVM or the Xen pull.
> >
> > The *reason* seems to be that both Radim and Juergen have enabled the
> > "patience" diff, because if I add "--patience" to the diff line, I get
> > the same numbers you guys report.
>
> In my case it was a patch which was much easier to review using the
> patience diff. I just didn't switch back afterwards (what I did now).
Similar here. I have the 'histogram' algorithm in the global config for
few years now.
Using the same algorithm for pull diffstat would be best, though;
I added "algorithm = default" to the repo config.
---
This KVM pull shows the reason why I abandoned 'myers' -- it can
obfuscate simple cut & paste. (I don't recall the case that brought
'histogram' and there apparently were no significant improvements to be
gained by switching since then.)
The patch in question is 76d837a4c0f9 ("KVM: PPC: Book3S PR: Don't
include SPAPR TCE code on non-pseries platforms"), see trimmed output of
both algorithms below.
First, the important hunks of the 'histogram' diff:
@@ -244,20 +262,6 @@ static int kvmppc_h_pr_protect(struct kvm_vcpu *vcpu)
return EMULATE_DONE;
}
-static int kvmppc_h_pr_put_tce(struct kvm_vcpu *vcpu)
-{
- unsigned long liobn = kvmppc_get_gpr(vcpu, 4);
- unsigned long ioba = kvmppc_get_gpr(vcpu, 5);
- unsigned long tce = kvmppc_get_gpr(vcpu, 6);
- long rc;
-
- rc = kvmppc_h_put_tce(vcpu, liobn, ioba, tce);
- if (rc == H_TOO_HARD)
- return EMULATE_FAIL;
- kvmppc_set_gpr(vcpu, 3, rc);
- return EMULATE_DONE;
-}
-
static int kvmppc_h_pr_logical_ci_load(struct kvm_vcpu *vcpu)
{
long rc;
@@ -280,6 +284,21 @@ static int kvmppc_h_pr_logical_ci_store(struct kvm_vcpu *vcpu)
return EMULATE_DONE;
}
+#ifdef CONFIG_SPAPR_TCE_IOMMU
+static int kvmppc_h_pr_put_tce(struct kvm_vcpu *vcpu)
+{
+ unsigned long liobn = kvmppc_get_gpr(vcpu, 4);
+ unsigned long ioba = kvmppc_get_gpr(vcpu, 5);
+ unsigned long tce = kvmppc_get_gpr(vcpu, 6);
+ long rc;
+
+ rc = kvmppc_h_put_tce(vcpu, liobn, ioba, tce);
+ if (rc == H_TOO_HARD)
+ return EMULATE_FAIL;
+ kvmppc_set_gpr(vcpu, 3, rc);
+ return EMULATE_DONE;
+}
+
static int kvmppc_h_pr_put_tce_indirect(struct kvm_vcpu *vcpu)
{
unsigned long liobn = kvmppc_get_gpr(vcpu, 4);
and now the same change with the 'myers' algorithm:
@@ -244,36 +262,37 @@ static int kvmppc_h_pr_protect(struct kvm_vcpu *vcpu)
return EMULATE_DONE;
}
-static int kvmppc_h_pr_put_tce(struct kvm_vcpu *vcpu)
+static int kvmppc_h_pr_logical_ci_load(struct kvm_vcpu *vcpu)
{
- unsigned long liobn = kvmppc_get_gpr(vcpu, 4);
- unsigned long ioba = kvmppc_get_gpr(vcpu, 5);
- unsigned long tce = kvmppc_get_gpr(vcpu, 6);
long rc;
- rc = kvmppc_h_put_tce(vcpu, liobn, ioba, tce);
+ rc = kvmppc_h_logical_ci_load(vcpu);
if (rc == H_TOO_HARD)
return EMULATE_FAIL;
kvmppc_set_gpr(vcpu, 3, rc);
return EMULATE_DONE;
}
-static int kvmppc_h_pr_logical_ci_load(struct kvm_vcpu *vcpu)
+static int kvmppc_h_pr_logical_ci_store(struct kvm_vcpu *vcpu)
{
long rc;
- rc = kvmppc_h_logical_ci_load(vcpu);
+ rc = kvmppc_h_logical_ci_store(vcpu);
if (rc == H_TOO_HARD)
return EMULATE_FAIL;
kvmppc_set_gpr(vcpu, 3, rc);
return EMULATE_DONE;
}
-static int kvmppc_h_pr_logical_ci_store(struct kvm_vcpu *vcpu)
+#ifdef CONFIG_SPAPR_TCE_IOMMU
+static int kvmppc_h_pr_put_tce(struct kvm_vcpu *vcpu)
{
+ unsigned long liobn = kvmppc_get_gpr(vcpu, 4);
+ unsigned long ioba = kvmppc_get_gpr(vcpu, 5);
+ unsigned long tce = kvmppc_get_gpr(vcpu, 6);
long rc;
- rc = kvmppc_h_logical_ci_store(vcpu);
+ rc = kvmppc_h_put_tce(vcpu, liobn, ioba, tce);
if (rc == H_TOO_HARD)
return EMULATE_FAIL;
kvmppc_set_gpr(vcpu, 3, rc);
The move of kvmppc_h_pr_put_tce() under #ifdef is not so simple anymore.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-05-22 14:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-19 18:43 [GIT PULL] KVM fixes for v4.12-rc2 Radim Krčmář
2017-05-19 22:21 ` Linus Torvalds
2017-05-20 10:52 ` Juergen Gross
2017-05-22 14:37 ` Radim Krčmář
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).