* [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