linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).