diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2018-03-16 17:03:18 -0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2018-03-16 17:03:18 -0400 |
commit | 4956aa3b8b59e336b77f1df0ac7ce1a94c0265f2 (patch) | |
tree | f5c421a187a625f1c504f66fb422984f7222a702 /arch/s390/include | |
parent | 2d7921c499afebac78b13ab9a3758261a97e07b7 (diff) | |
parent | ccc40c53c07ba22cfe711cd625f9f0c77f272ae6 (diff) |
Merge tag 'kvm-s390-next-4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
KVM: s390: fixes and features
- more kvm stat counters
- virtio gpu plumbing. The 3 non-KVM/s390 patches have Acks from
Bartlomiej Zolnierkiewicz, Heiko Carstens and Greg Kroah-Hartman
but all belong together to make virtio-gpu work as a tty. So
I carried them in the KVM/s390 tree.
- document some KVM_CAPs
- cpu-model only facilities
- cleanups
Diffstat (limited to 'arch/s390/include')
-rw-r--r-- | arch/s390/include/asm/kvm_host.h | 28 | ||||
-rw-r--r-- | arch/s390/include/asm/mmu.h | 4 | ||||
-rw-r--r-- | arch/s390/include/asm/mmu_context.h | 2 |
3 files changed, 27 insertions, 7 deletions
diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h index afb0f08b8021..81cdb6b55118 100644 --- a/arch/s390/include/asm/kvm_host.h +++ b/arch/s390/include/asm/kvm_host.h | |||
@@ -294,6 +294,7 @@ struct kvm_vcpu_stat { | |||
294 | u64 exit_userspace; | 294 | u64 exit_userspace; |
295 | u64 exit_null; | 295 | u64 exit_null; |
296 | u64 exit_external_request; | 296 | u64 exit_external_request; |
297 | u64 exit_io_request; | ||
297 | u64 exit_external_interrupt; | 298 | u64 exit_external_interrupt; |
298 | u64 exit_stop_request; | 299 | u64 exit_stop_request; |
299 | u64 exit_validity; | 300 | u64 exit_validity; |
@@ -310,16 +311,29 @@ struct kvm_vcpu_stat { | |||
310 | u64 exit_program_interruption; | 311 | u64 exit_program_interruption; |
311 | u64 exit_instr_and_program; | 312 | u64 exit_instr_and_program; |
312 | u64 exit_operation_exception; | 313 | u64 exit_operation_exception; |
314 | u64 deliver_ckc; | ||
315 | u64 deliver_cputm; | ||
313 | u64 deliver_external_call; | 316 | u64 deliver_external_call; |
314 | u64 deliver_emergency_signal; | 317 | u64 deliver_emergency_signal; |
315 | u64 deliver_service_signal; | 318 | u64 deliver_service_signal; |
316 | u64 deliver_virtio_interrupt; | 319 | u64 deliver_virtio; |
317 | u64 deliver_stop_signal; | 320 | u64 deliver_stop_signal; |
318 | u64 deliver_prefix_signal; | 321 | u64 deliver_prefix_signal; |
319 | u64 deliver_restart_signal; | 322 | u64 deliver_restart_signal; |
320 | u64 deliver_program_int; | 323 | u64 deliver_program; |
321 | u64 deliver_io_int; | 324 | u64 deliver_io; |
325 | u64 deliver_machine_check; | ||
322 | u64 exit_wait_state; | 326 | u64 exit_wait_state; |
327 | u64 inject_ckc; | ||
328 | u64 inject_cputm; | ||
329 | u64 inject_external_call; | ||
330 | u64 inject_emergency_signal; | ||
331 | u64 inject_mchk; | ||
332 | u64 inject_pfault_init; | ||
333 | u64 inject_program; | ||
334 | u64 inject_restart; | ||
335 | u64 inject_set_prefix; | ||
336 | u64 inject_stop_signal; | ||
323 | u64 instruction_epsw; | 337 | u64 instruction_epsw; |
324 | u64 instruction_gs; | 338 | u64 instruction_gs; |
325 | u64 instruction_io_other; | 339 | u64 instruction_io_other; |
@@ -644,7 +658,12 @@ struct kvm_vcpu_arch { | |||
644 | }; | 658 | }; |
645 | 659 | ||
646 | struct kvm_vm_stat { | 660 | struct kvm_vm_stat { |
647 | ulong remote_tlb_flush; | 661 | u64 inject_io; |
662 | u64 inject_float_mchk; | ||
663 | u64 inject_pfault_done; | ||
664 | u64 inject_service_signal; | ||
665 | u64 inject_virtio; | ||
666 | u64 remote_tlb_flush; | ||
648 | }; | 667 | }; |
649 | 668 | ||
650 | struct kvm_arch_memory_slot { | 669 | struct kvm_arch_memory_slot { |
@@ -792,6 +811,7 @@ struct kvm_arch{ | |||
792 | int css_support; | 811 | int css_support; |
793 | int use_irqchip; | 812 | int use_irqchip; |
794 | int use_cmma; | 813 | int use_cmma; |
814 | int use_pfmfi; | ||
795 | int user_cpu_state_ctrl; | 815 | int user_cpu_state_ctrl; |
796 | int user_sigp; | 816 | int user_sigp; |
797 | int user_stsi; | 817 | int user_stsi; |
diff --git a/arch/s390/include/asm/mmu.h b/arch/s390/include/asm/mmu.h index db35c41a59d5..c639c95850e4 100644 --- a/arch/s390/include/asm/mmu.h +++ b/arch/s390/include/asm/mmu.h | |||
@@ -22,8 +22,8 @@ typedef struct { | |||
22 | unsigned int has_pgste:1; | 22 | unsigned int has_pgste:1; |
23 | /* The mmu context uses storage keys. */ | 23 | /* The mmu context uses storage keys. */ |
24 | unsigned int use_skey:1; | 24 | unsigned int use_skey:1; |
25 | /* The mmu context uses CMMA. */ | 25 | /* The mmu context uses CMM. */ |
26 | unsigned int use_cmma:1; | 26 | unsigned int uses_cmm:1; |
27 | } mm_context_t; | 27 | } mm_context_t; |
28 | 28 | ||
29 | #define INIT_MM_CONTEXT(name) \ | 29 | #define INIT_MM_CONTEXT(name) \ |
diff --git a/arch/s390/include/asm/mmu_context.h b/arch/s390/include/asm/mmu_context.h index 65154eaa3714..d3ebfa8f8a9f 100644 --- a/arch/s390/include/asm/mmu_context.h +++ b/arch/s390/include/asm/mmu_context.h | |||
@@ -31,7 +31,7 @@ static inline int init_new_context(struct task_struct *tsk, | |||
31 | (current->mm && current->mm->context.alloc_pgste); | 31 | (current->mm && current->mm->context.alloc_pgste); |
32 | mm->context.has_pgste = 0; | 32 | mm->context.has_pgste = 0; |
33 | mm->context.use_skey = 0; | 33 | mm->context.use_skey = 0; |
34 | mm->context.use_cmma = 0; | 34 | mm->context.uses_cmm = 0; |
35 | #endif | 35 | #endif |
36 | switch (mm->context.asce_limit) { | 36 | switch (mm->context.asce_limit) { |
37 | case _REGION2_SIZE: | 37 | case _REGION2_SIZE: |