2018-06-12 14:04:44

by Paolo Bonzini

[permalink] [raw]
Subject: [GIT PULL] KVM changes for 4.18 merge window

Linus,

The following changes since commit 73fcb1a370c76b202d406e95d9dabb76eaccf484:

Merge branch 'akpm' (patches from Andrew) (2018-05-18 21:24:26 -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 766d3571d8e50d3a73b77043dc632226f9e6b389:

kvm: fix typo in flag name (2018-06-12 15:06:35 +0200)

Sorry for the late pull request, I really wanted to get the top four
patches in because a (wrong) patch for that bug was sent to the list
about a week ago. I didn't get as much attention/as many reviews as I
hoped for, but here they are anyway. They aren't complicated, only
a bit tedious, so I'm not (too) worried.

Paolo

----------------------------------------------------------------
Small update for KVM.

* ARM: lazy context-switching of FPSIMD registers on arm64, "split"
regions for vGIC redistributor

* s390: cleanups for nested, clock handling, crypto, storage keys and
control register bits

* x86: many bugfixes, implement more Hyper-V super powers,
implement lapic_timer_advance_ns even when the LAPIC timer
is emulated using the processor's VMX preemption timer. Two
security-related bugfixes at the top of the branch.

----------------------------------------------------------------
Arnd Bergmann (1):
KVM: x86: use timespec64 for KVM_HC_CLOCK_PAIRING

Christian Borntraeger (1):
Merge tag 'kvm-s390-master-4.17-1'

Christoffer Dall (1):
KVM: arm/arm64: Introduce kvm_arch_vcpu_run_pid_change

Dan Carpenter (1):
KVM: x86: prevent integer overflows in KVM_MEMORY_ENCRYPT_REG_REGION

Dave Martin (18):
arm64: fpsimd: Fix TIF_FOREIGN_FPSTATE after invalidating cpu regs
thread_info: Add update_thread_flag() helpers
arm64: Use update{,_tsk}_thread_flag()
KVM: arm64: Convert lazy FPSIMD context switch trap to C
arm64: fpsimd: Generalise context saving for non-task contexts
arm64: fpsimd: Avoid FPSIMD context leakage for the init task
arm64: fpsimd: Eliminate task->mm checks
arm64/sve: Refactor user SVE trap maintenance for external use
KVM: arm64: Repurpose vcpu_arch.debug_flags for general-purpose flags
KVM: arm64: Optimise FPSIMD handling to reduce guest/host thrashing
arm64/sve: Move read_zcr_features() out of cpufeature.h
arm64/sve: Switch sve_pffr() argument from task to thread
arm64/sve: Move sve_pffr() to fpsimd.h and make inline
KVM: arm64: Save host SVE context as appropriate
KVM: arm64: Remove eager host SVE state saving
KVM: arm64: Remove redundant *exit_code changes in fpsimd_guest_exit()
KVM: arm64: Fold redundant exit code checks out of fixup_guest_exit()
KVM: arm64: Invoke FPSIMD context switch trap from C

David Hildenbrand (4):
KVM: s390: introduce defines for control registers
KVM: s390: no need to inititalize kvm->arch members to 0
KVM: s390: generalize kvm_s390_get_tod_clock_ext()
KVM: s390: vsie: simplify < 8k address checks

Eric Auger (13):
KVM: arm/arm64: Set dist->spis to NULL after kfree
KVM: arm/arm64: Document KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
KVM: arm/arm64: Replace the single rdist region by a list
KVM: arm/arm64: Helper to locate free rdist index
KVM: arm/arm64: Revisit Redistributor TYPER last bit computation
KVM: arm/arm64: Adapt vgic_v3_check_base to multiple rdist regions
KVM: arm/arm64: Helper to register a new redistributor region
KVM: arm/arm64: Remove kvm_vgic_vcpu_early_init
KVM: arm/arm64: Check vcpu redist base before registering an iodev
KVM: arm/arm64: Check all vcpu redistributors are set on map_resources
KVM: arm/arm64: Add KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
KVM: arm/arm64: Implement KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
KVM: arm/arm64: Bump VGIC_V3_MAX_CPUS to 512

Felix Wilhelm (1):
kvm: nVMX: Enforce cpl=0 for VMX instructions

Greg Kroah-Hartman (1):
kvm: no need to check return value of debugfs_create functions

Janosch Frank (1):
KVM: s390: Add storage key facility interpretation control

Jim Mattson (11):
kvm: vmx: Introduce lapic_mode enumeration
kvm: vmx: Basic APIC virtualization controls have three settings
kvm: nVMX: Eliminate APIC access page sharing between L1 and L2
kvm: mmu: Add guest_mode to kvm_mmu_page_role
kvm: mmu: Don't expose private memslots to L2
kvm: nVMX: Use nested_run_pending rather than from_vmentry
KVM: nVMX: Restore the VMCS12 offsets for v4.0 fields
KVM: nVMX: Ensure that VMCS12 field offsets do not change
kvm: x86: Amend the KVM_GET_SUPPORTED_CPUID API documentation
kvm: nVMX: Restrict VMX capability MSR changes
kvm: nVMX: Add support for "VMWRITE to any supported field"

Jingqi Liu (1):
KVM: x86: Expose CLDEMOTE CPU feature to guest VM

Junaid Shahid (1):
kvm: x86: Refactor mmu_free_roots()

K. Y. Srinivasan (5):
X86/Hyper-V: Enlighten APIC access
X86/Hyper-V: Enable IPI enlightenments
X86/Hyper-V: Enhanced IPI enlightenment
X86/Hyper-V: Consolidate code for converting cpumask to vpset
X86/Hyper-V: Consolidate the allocation of the hypercall input page

Liran Alon (6):
KVM: nVMX: Use vmx local var for referencing vpid02
KVM: nVMX: Don't flush TLB when vmcs12 uses VPID
KVM: nVMX: Emulate L1 individual-address invvpid by L0 individual-address invvpid
KVM: docs: mmu: Fix link to NPT presentation from KVM Forum 2008
KVM: docs: mmu: KVM support exposing SLAT to guests
KVM: docs: nVMX: Remove known limitations as they do not exist now

Marc Orr (1):
kvm: Make VM ioctl do valloc for some archs

Mark Rutland (1):
arm64: KVM: Use lm_alias() for kvm_ksym_ref()

Michael S. Tsirkin (1):
kvm: fix typo in flag name

Paolo Bonzini (5):
Merge tag 'kvmarm-for-v4.18' of git://git.kernel.org/.../kvmarm/kvmarm into HEAD
Merge tag 'kvm-s390-next-4.18-1' of git://git.kernel.org/.../kvms390/linux into HEAD
KVM: x86: introduce linear_{read,write}_system
KVM: x86: pass kvm_vcpu to kvm_read_guest_virt and kvm_write_guest_virt_system
kvm: x86: use correct privilege level for sgdt/sidt/fxsave/fxrstor access

Radim Krčmář (1):
Merge branch 'x86/hyperv' of git://git.kernel.org/.../tip/tip

Sean Christopherson (1):
KVM: x86: remove obsolete EXPORT... of handle_mmio_page_fault

Souptick Joarder (1):
kvm: Change return type to vm_fault_t

Thomas Gleixner (2):
x86/Hyper-V/hv_apic: Include asm/apic.h
x86/Hyper-V/hv_apic: Build the Hyper-V APIC conditionally

Tony Krowiak (1):
KVM: s390: reset crypto attributes for all vcpus

Vitaly Kuznetsov (8):
KVM: x86: VMX: hyper-v: Enlightened MSR-Bitmap support
x86/hyper-v: move struct hv_flush_pcpu{,ex} definitions to common header
KVM: x86: hyperv: use defines when parsing hypercall parameters
KVM: x86: hyperv: do rep check for each hypercall separately
KVM: introduce kvm_make_vcpus_request_mask() API
KVM: x86: hyperv: simplistic HVCALL_FLUSH_VIRTUAL_ADDRESS_{LIST,SPACE} implementation
KVM: x86: hyperv: simplistic HVCALL_FLUSH_VIRTUAL_ADDRESS_{LIST,SPACE}_EX implementation
KVM: x86: hyperv: declare KVM_CAP_HYPERV_TLBFLUSH capability

Wanpeng Li (2):
KVM: X86: Fix reserved bits check for MOV to CR3
KVM: VMX: Optimize tscdeadline timer latency

Documentation/virtual/kvm/api.txt | 27 +-
Documentation/virtual/kvm/devices/arm-vgic-v3.txt | 30 +-
Documentation/virtual/kvm/mmu.txt | 6 +-
Documentation/virtual/kvm/nested-vmx.txt | 11 -
arch/arm/include/asm/kvm_host.h | 14 +-
arch/arm/include/uapi/asm/kvm.h | 1 +
arch/arm64/Kconfig | 7 +
arch/arm64/include/asm/cpufeature.h | 29 --
arch/arm64/include/asm/fpsimd.h | 21 +
arch/arm64/include/asm/kvm_asm.h | 8 +-
arch/arm64/include/asm/kvm_host.h | 49 ++-
arch/arm64/include/asm/processor.h | 15 +-
arch/arm64/include/asm/thread_info.h | 13 +-
arch/arm64/include/uapi/asm/kvm.h | 1 +
arch/arm64/kernel/fpsimd.c | 177 ++++----
arch/arm64/kernel/ptrace.c | 1 +
arch/arm64/kvm/Kconfig | 1 +
arch/arm64/kvm/Makefile | 2 +-
arch/arm64/kvm/debug.c | 8 +-
arch/arm64/kvm/fpsimd.c | 110 +++++
arch/arm64/kvm/hyp/debug-sr.c | 6 +-
arch/arm64/kvm/hyp/entry.S | 43 --
arch/arm64/kvm/hyp/hyp-entry.S | 19 -
arch/arm64/kvm/hyp/switch.c | 124 ++++--
arch/arm64/kvm/hyp/sysreg-sr.c | 4 +-
arch/arm64/kvm/sys_regs.c | 9 +-
arch/mips/kvm/mips.c | 2 +-
arch/powerpc/kvm/book3s_hv.c | 3 +-
arch/powerpc/kvm/powerpc.c | 2 +-
arch/s390/include/asm/ctl_reg.h | 12 +
arch/s390/include/asm/kvm_host.h | 1 +
arch/s390/include/asm/mmu.h | 2 +-
arch/s390/include/asm/mmu_context.h | 2 +-
arch/s390/include/asm/pgtable.h | 4 +-
arch/s390/kvm/guestdbg.c | 2 +-
arch/s390/kvm/interrupt.c | 20 +-
arch/s390/kvm/kvm-s390.c | 61 +--
arch/s390/kvm/kvm-s390.h | 13 +
arch/s390/kvm/priv.c | 28 +-
arch/s390/kvm/vsie.c | 10 +-
arch/s390/mm/gmap.c | 6 +-
arch/s390/mm/pgtable.c | 4 +-
arch/x86/hyperv/Makefile | 3 +-
arch/x86/hyperv/hv_apic.c | 256 +++++++++++
arch/x86/hyperv/hv_init.c | 32 +-
arch/x86/hyperv/mmu.c | 97 +----
arch/x86/include/asm/hyperv-tlfs.h | 55 ++-
arch/x86/include/asm/kvm_emulate.h | 6 +-
arch/x86/include/asm/kvm_host.h | 7 +-
arch/x86/include/asm/mshyperv.h | 44 +-
arch/x86/include/asm/vmx.h | 2 +
arch/x86/kvm/cpuid.c | 3 +-
arch/x86/kvm/emulate.c | 76 ++--
arch/x86/kvm/hyperv.c | 171 +++++++-
arch/x86/kvm/lapic.c | 12 +-
arch/x86/kvm/lapic.h | 14 +
arch/x86/kvm/mmu.c | 78 ++--
arch/x86/kvm/svm.c | 16 +-
arch/x86/kvm/trace.h | 51 +++
arch/x86/kvm/vmx.c | 489 +++++++++++++++++-----
arch/x86/kvm/x86.c | 97 +++--
arch/x86/kvm/x86.h | 4 +-
include/kvm/arm_vgic.h | 17 +-
include/linux/kvm_host.h | 19 +-
include/linux/sched.h | 6 +
include/linux/thread_info.h | 11 +
include/uapi/linux/kvm.h | 5 +-
tools/include/uapi/linux/kvm.h | 4 +-
virt/kvm/Kconfig | 3 +
virt/kvm/arm/arm.c | 32 +-
virt/kvm/arm/vgic/vgic-debug.c | 17 +-
virt/kvm/arm/vgic/vgic-init.c | 100 +++--
virt/kvm/arm/vgic/vgic-kvm-device.c | 53 ++-
virt/kvm/arm/vgic/vgic-mmio-v3.c | 112 ++++-
virt/kvm/arm/vgic/vgic-v3.c | 99 ++++-
virt/kvm/arm/vgic/vgic.h | 46 +-
virt/kvm/kvm_main.c | 83 ++--
77 files changed, 2191 insertions(+), 837 deletions(-)
create mode 100644 arch/arm64/kvm/fpsimd.c
create mode 100644 arch/x86/hyperv/hv_apic.c


2018-06-12 18:46:27

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 7:03 AM Paolo Bonzini <[email protected]> wrote:
>
> git://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus

Grr. Several tedious conflicts. I fixed them all up, and they all
looked trivial, but since most of them were to ARM cases, I couldn't
even test the end result.

I suspect the 'workaround_flags' could be merged into the (now)
allegedly generic 'flags' field in the arm64 kvm_vcpu_arch structure,
but I (obviously) didn't actually do that.

Adding some ARM people to the cc so that somebody on that side checks my merge.

(Still going through my basic build tests, not pushed out yet, but I'm
assuming that will finish cleanly and it should be pushed out soon).

Thanks,

Linus

2018-06-13 02:19:42

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 7:03 AM Paolo Bonzini <[email protected]> wrote:
>
> * x86: many bugfixes, implement more Hyper-V super powers,

Uhhuh, I didn't notice this initially, because my basic sanity tests
are with everything enabled, but this breaks the build:

ERROR: "ms_hyperv" [arch/x86/kvm/kvm-intel.ko] undefined!

The attached patch _may_ be the right thing to do. It's not pretty.

Hmm? And why was this not found before it hit my tree?

Linus


Attachments:
patch.diff (719.00 B)

2018-06-13 02:43:01

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 7:18 PM Linus Torvalds
<[email protected]> wrote:
>
> The attached patch _may_ be the right thing to do. It's not pretty.

.. and when I decided to actually do some minimal kvm testing with
that patch, I notice that we've apparently broken kvm entirely during
this merge window, and I just get

Error: KVM_CREATE_VM ioctl
Warning: Failed init: kvm__init

when doing lkvm run.

Bisecting. But that's unrelated to the recent kvm build breakage.

Linus

2018-06-13 02:51:50

by Wanpeng Li

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Wed, 13 Jun 2018 at 10:42, Linus Torvalds
<[email protected]> wrote:
>
> On Tue, Jun 12, 2018 at 7:18 PM Linus Torvalds
> <[email protected]> wrote:
> >
> > The attached patch _may_ be the right thing to do. It's not pretty.
>
> .. and when I decided to actually do some minimal kvm testing with
> that patch, I notice that we've apparently broken kvm entirely during
> this merge window, and I just get
>
> Error: KVM_CREATE_VM ioctl
> Warning: Failed init: kvm__init
>
> when doing lkvm run.
>
> Bisecting. But that's unrelated to the recent kvm build breakage.

Yeah, it happens before the KVM GIT PULL on Linus's tree, you will see
the warning above unless you lauch the guest w/ root user, maybe other
subsystems' modifications break something.

Regards,
Wanpeng Li

2018-06-13 03:01:18

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 7:51 PM Wanpeng Li <[email protected]> wrote:
> >
> > Bisecting. But that's unrelated to the recent kvm build breakage.
>
> Yeah, it happens before the KVM GIT PULL on Linus's tree, you will see
> the warning above unless you lauch the guest w/ root user, maybe other
> subsystems' modifications break something.

Yeah, the biusection seems to actually be diving into Greg's device pulls.

Odd. I'm not seeing why that would break kvm, but maybe there's
something in the device core layer that really messed it up.

I'll continue to bisect to see.

Linus

2018-06-13 03:28:40

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 8:00 PM Linus Torvalds
<[email protected]> wrote:
>
> Yeah, the biusection seems to actually be diving into Greg's device pulls.
>
> Odd. I'm not seeing why that would break kvm, but maybe there's
> something in the device core layer that really messed it up.
>
> I'll continue to bisect to see.

Ok, so commit 95cde3c59966 ("debugfs: inode: debugfs_create_dir uses
mode permission from parent") breaks lkvm, and I think qemu-kvm too.

The commit looks like the RightThing(tm) to do, but we do not break
existing work-flows, no matter how much we'd like to. So it gets
reverted.

Greg, Thomas, perhaps some alternative model? I'm not sure exactly
what kvm needs from debugfs.

Linus

2018-06-13 03:53:00

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 8:26 PM Linus Torvalds
<[email protected]> wrote:
>
> Ok, so commit 95cde3c59966 ("debugfs: inode: debugfs_create_dir uses
> mode permission from parent") breaks lkvm, and I think qemu-kvm too.
>
> The commit looks like the RightThing(tm) to do, but we do not break
> existing work-flows, no matter how much we'd like to. So it gets
> reverted.

I suspect it's the special kvm debugfs entries - see kvm_create_vm_debugfs()

Anyway, I've verified that both qemu-kvm and kvm-tool work fine with
the revert in place.

Linus

2018-06-13 04:48:40

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 08:26:46PM -0700, Linus Torvalds wrote:
> On Tue, Jun 12, 2018 at 8:00 PM Linus Torvalds
> <[email protected]> wrote:
> >
> > Yeah, the biusection seems to actually be diving into Greg's device pulls.
> >
> > Odd. I'm not seeing why that would break kvm, but maybe there's
> > something in the device core layer that really messed it up.
> >
> > I'll continue to bisect to see.
>
> Ok, so commit 95cde3c59966 ("debugfs: inode: debugfs_create_dir uses
> mode permission from parent") breaks lkvm, and I think qemu-kvm too.
>
> The commit looks like the RightThing(tm) to do, but we do not break
> existing work-flows, no matter how much we'd like to. So it gets
> reverted.
>
> Greg, Thomas, perhaps some alternative model? I'm not sure exactly
> what kvm needs from debugfs.

I don't know either, I have a revert of that patch sitting in my queue
waiting to send to you for 4.18-rc1. I didn't realize it was causing
breakage for others, or I would have sent it to you now. You can revert
it yourself now if you want, so we can fix this problem now and work on
figuring out what is so "odd" about kvm's debugfs files.

thanks,

greg k-h

2018-06-13 04:49:51

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 08:52:08PM -0700, Linus Torvalds wrote:
> On Tue, Jun 12, 2018 at 8:26 PM Linus Torvalds
> <[email protected]> wrote:
> >
> > Ok, so commit 95cde3c59966 ("debugfs: inode: debugfs_create_dir uses
> > mode permission from parent") breaks lkvm, and I think qemu-kvm too.
> >
> > The commit looks like the RightThing(tm) to do, but we do not break
> > existing work-flows, no matter how much we'd like to. So it gets
> > reverted.
>
> I suspect it's the special kvm debugfs entries - see kvm_create_vm_debugfs()
>
> Anyway, I've verified that both qemu-kvm and kvm-tool work fine with
> the revert in place.

I should have read the whole thread :)

The revert is fine, I'll work on the kvm debugfs file stuff for 4.19.

thanks,

greg k-h

2018-06-13 04:54:54

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 9:49 PM Greg Kroah-Hartman
<[email protected]> wrote:
>
> The revert is fine, I'll work on the kvm debugfs file stuff for 4.19.

Yeah, I did two fairly brute-force fixes for two different issues
(the only common thread was kvm - testing the first fix was what then
got me to the debugfs revert).

I'm going to be start traveling towards Japan and China tomorrow
morning, so I wanted to just get the problems I noticed out of my
tree. Both of the two top commits in my tree probably have better more
targeted fixes eventually.

Linus

2018-06-13 10:04:12

by Wanpeng Li

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Wed, 13 Jun 2018 at 12:53, Linus Torvalds
<[email protected]> wrote:
>
> On Tue, Jun 12, 2018 at 9:49 PM Greg Kroah-Hartman
> <[email protected]> wrote:
> I'm going to be start traveling towards Japan and China tomorrow
> morning, so I wanted to just get the problems I noticed out of my

Great!, welcome to our country(China), and looking forward to see you
at Linux Conf. :)

Regards,
Wanpeng Li

2018-06-13 10:10:28

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On 13/06/2018 04:18, Linus Torvalds wrote:
> On Tue, Jun 12, 2018 at 7:03 AM Paolo Bonzini <[email protected]> wrote:
>>
>> * x86: many bugfixes, implement more Hyper-V super powers,
>
> Uhhuh, I didn't notice this initially, because my basic sanity tests
> are with everything enabled, but this breaks the build:
>
> ERROR: "ms_hyperv" [arch/x86/kvm/kvm-intel.ko] undefined!
>
> The attached patch _may_ be the right thing to do. It's not pretty.
>
> Hmm? And why was this not found before it hit my tree?

Because I should do more "make randconfig"s, probably.

Paolo


2018-06-13 11:02:21

by Vitaly Kuznetsov

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

Paolo Bonzini <[email protected]> writes:

> On 13/06/2018 04:18, Linus Torvalds wrote:
>> On Tue, Jun 12, 2018 at 7:03 AM Paolo Bonzini <[email protected]> wrote:
>>>
>>> * x86: many bugfixes, implement more Hyper-V super powers,
>>
>> Uhhuh, I didn't notice this initially, because my basic sanity tests
>> are with everything enabled, but this breaks the build:
>>
>> ERROR: "ms_hyperv" [arch/x86/kvm/kvm-intel.ko] undefined!
>>
>> The attached patch _may_ be the right thing to do. It's not pretty.
>>
>> Hmm? And why was this not found before it hit my tree?
>
> Because I should do more "make randconfig"s, probably.
>

This was reported before by Arnd Bergmann:

https://www.spinics.net/lists/kvm/msg169536.html

but it seems his patch got lost.

Sorry for the breakage :-)

--
Vitaly

2018-06-13 13:42:33

by Dave Martin

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Tue, Jun 12, 2018 at 07:43:50PM +0100, Linus Torvalds wrote:
> On Tue, Jun 12, 2018 at 7:03 AM Paolo Bonzini <[email protected]> wrote:
> >
> > git://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus
>
> Grr. Several tedious conflicts. I fixed them all up, and they all
> looked trivial, but since most of them were to ARM cases, I couldn't
> even test the end result.
>
> I suspect the 'workaround_flags' could be merged into the (now)
> allegedly generic 'flags' field in the arm64 kvm_vcpu_arch structure,
> but I (obviously) didn't actually do that.

I think we decided that it was a bit premature to merge them, but we
will likely be able to do that later on.

> Adding some ARM people to the cc so that somebody on that side checks my merge.
>
> (Still going through my basic build tests, not pushed out yet, but I'm
> assuming that will finish cleanly and it should be pushed out soon).

I've now build-tested master (f5b7769eb0) in a few configurations
(particularly KVM + !KVM) for arch/arm. The main risk there is missing
new hooks called by the core virt/kvm/arm code.

For arm64 I've now done some basic boot/run/KVM testing as appropriate
on Juno and the Arm fast model for various configs (defconfig,
ARM64_SVE=n, KVM=n).

For the KVM/SVE interactions in particular, the merge looks good to me.

Cheers
---Dave

2018-06-13 13:57:53

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Wed, Jun 13, 2018 at 3:09 AM Paolo Bonzini <[email protected]> wrote:
>
> On 13/06/2018 04:18, Linus Torvalds wrote:
> >
> > Hmm? And why was this not found before it hit my tree?
>
> Because I should do more "make randconfig"s, probably.

Well, being in linux-next should have found it too. I know linux-next
had a lot of kvm stuff in it, was this not there?

Linus

2018-06-13 14:01:54

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Wed, Jun 13, 2018 at 4:00 AM Vitaly Kuznetsov <[email protected]> wrote:
>
> This was reported before by Arnd Bergmann:
>
> https://www.spinics.net/lists/kvm/msg169536.html
>
> but it seems his patch got lost.

So I think his patch is closer to what the code *should* do. Mine was
a big ugly #if around the whole thing, but I really think that *all*
those

if (static_branch_unlikely(&enable_evmcs)...

cases should probably be using IS_ENABLED(CONFIG_HYPERV) too.

Preferably by simply having a helper macro or inline function to do both tests.

I intentionally did just he big brute-force thing, I'm hoping the kvm
hyper-v people will clean this up.

But obviously this also showed a lack of testing.

Linus

2018-06-13 14:28:46

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On 13/06/2018 15:56, Linus Torvalds wrote:
> On Wed, Jun 13, 2018 at 3:09 AM Paolo Bonzini <[email protected]> wrote:
>>
>> On 13/06/2018 04:18, Linus Torvalds wrote:
>>>
>>> Hmm? And why was this not found before it hit my tree?
>>
>> Because I should do more "make randconfig"s, probably.
>
> Well, being in linux-next should have found it too. I know linux-next
> had a lot of kvm stuff in it, was this not there?

It was, I suppose that's how Arnd found it.

I also checked my reflog in case I force-pushed something by mistake
(kvm/next doesn't rebase, but you never know) and that didn't happen
either. I'll fix the "no virt stuff" build in my pre-pull-request
routine. I already have KVM-but-no-CONFIG_KVM_GUEST build---and the
other way round---I'll remove CONFIG_HYPERV too from the former.

Paolo

2018-06-13 14:30:38

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] KVM changes for 4.18 merge window

On Wed, Jun 13, 2018 at 7:27 AM Paolo Bonzini <[email protected]> wrote:
>
> > Well, being in linux-next should have found it too. I know linux-next
> > had a lot of kvm stuff in it, was this not there?
>
> It was, I suppose that's how Arnd found it.

Ok, apparently the 0day bot doesn't trigger this case, or it's just
that even with randconfig you needed to hit just he right set of
combinations.

Oh well. Water under the bridge, hopefully your added tests will make
sure at least _this_ particular issue doesn't happen again...

Linus