At over 200 commits, covering almost all supported architectures, this
was a pretty active cycle for KVM.  Changes include:
 
 - a lot of s390 changes: optimizations, support for migration,
   GDB support and more
 
 - ARM changes are pretty small: support for the PSCI 0.2 hypercall
   interface on both the guest and the host (the latter acked by Catalin)
 
 - initial POWER8 and little-endian host support
 
 - support for running u-boot on embedded POWER targets
 
 - pretty large changes to MIPS too, completing the userspace interface
   and improving the handling of virtualized timer hardware
 
 - for x86, a larger set of changes is scheduled for 3.17.  Still,
   we have a few emulator bugfixes and support for running nested
   fully-virtualized Xen guests (para-virtualized Xen guests have
   always worked).  And some optimizations too.
 
 The only missing architecture here is ia64.  It's not a coincidence
 that support for KVM on ia64 is scheduled for removal in 3.17.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJTjtlBAAoJEBvWZb6bTYbyMOUP/2NAePghE3IjG99ikHFdn+BX
 BfrURsuR6GD0AhYQnBidBmpFbAmN/LwSJxv/M7sV7OBRWLu3qbt69DrPTU2e/FK1
 j9q25peu8jRyHzJ1q9rBroo74nD9lQYuVr3uXNxxcg0DRnw14JHGlM3y8LDEknO8
 W+gpWTeAQ+2AuOX98MpRbCRMuzziCSv5bP5FhBVnsWHiZfvMbcUrbeJt+zYSiDAZ
 0tHm/5dFKzfj/vVrrnjD4EZcRr688Bs5rztG96hY6aoVJryjZGLtLp92wCWkRRmH
 CCvZwd245NmNthuKHzcs27/duSWfU0uOlu7AMrD44QYhzeDGyB/2nbCxbGqLLoBA
 nnOviXH4cC65/CnisZ79zfo979HbZcX+Lzg747EjBgCSxJmLlwgiG8yXtDvk5otB
 TH6GUeGDiEEPj//JD3XtgSz0sF2NvjREWRyemjDMvhz6JC/bLytXKb3sn+NXSj8m
 ujzF9eQoa4qKDcBL4IQYGTJ4z5nY3Pd68dHFIPHB7n82OxFLSQUBKxXw8/1fb5og
 VVb8PL4GOcmakQlAKtTMlFPmuy4bbL2r/2iV5xJiOZKmXIu8Hs1JezBE3SFAltbl
 3cAGwSM9/dDkKxUbTFblyOE9bkKbg4WYmq0LkdzsPEomb3IZWntOT25rYnX+LrBz
 bAknaZpPiOrW11Et1htY
 =j5Od
 -----END PGP SIGNATURE-----
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm into next
Pull KVM updates from Paolo Bonzini:
 "At over 200 commits, covering almost all supported architectures, this
  was a pretty active cycle for KVM.  Changes include:
   - a lot of s390 changes: optimizations, support for migration, GDB
     support and more
   - ARM changes are pretty small: support for the PSCI 0.2 hypercall
     interface on both the guest and the host (the latter acked by
     Catalin)
   - initial POWER8 and little-endian host support
   - support for running u-boot on embedded POWER targets
   - pretty large changes to MIPS too, completing the userspace
     interface and improving the handling of virtualized timer hardware
   - for x86, a larger set of changes is scheduled for 3.17.  Still, we
     have a few emulator bugfixes and support for running nested
     fully-virtualized Xen guests (para-virtualized Xen guests have
     always worked).  And some optimizations too.
  The only missing architecture here is ia64.  It's not a coincidence
  that support for KVM on ia64 is scheduled for removal in 3.17"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (203 commits)
  KVM: add missing cleanup_srcu_struct
  KVM: PPC: Book3S PR: Rework SLB switching code
  KVM: PPC: Book3S PR: Use SLB entry 0
  KVM: PPC: Book3S HV: Fix machine check delivery to guest
  KVM: PPC: Book3S HV: Work around POWER8 performance monitor bugs
  KVM: PPC: Book3S HV: Make sure we don't miss dirty pages
  KVM: PPC: Book3S HV: Fix dirty map for hugepages
  KVM: PPC: Book3S HV: Put huge-page HPTEs in rmap chain for base address
  KVM: PPC: Book3S HV: Fix check for running inside guest in global_invalidates()
  KVM: PPC: Book3S: Move KVM_REG_PPC_WORT to an unused register number
  KVM: PPC: Book3S: Add ONE_REG register names that were missed
  KVM: PPC: Add CAP to indicate hcall fixes
  KVM: PPC: MPIC: Reset IRQ source private members
  KVM: PPC: Graciously fail broken LE hypercalls
  PPC: ePAPR: Fix hypercall on LE guest
  KVM: PPC: BOOK3S: Remove open coded make_dsisr in alignment handler
  KVM: PPC: BOOK3S: Always use the saved DAR value
  PPC: KVM: Make NX bit available with magic page
  KVM: PPC: Disable NX for old magic page using guests
  KVM: PPC: BOOK3S: HV: Add mixed page-size support for guest
  ...
	
	
This commit is contained in:
		
				commit
				
					
						b05d59dfce
					
				
			
		
					 133 changed files with 7185 additions and 1753 deletions
				
			
		|  | @ -317,6 +317,7 @@ header-y += ppp-ioctl.h | |||
| header-y += ppp_defs.h | ||||
| header-y += pps.h | ||||
| header-y += prctl.h | ||||
| header-y += psci.h | ||||
| header-y += ptp_clock.h | ||||
| header-y += ptrace.h | ||||
| header-y += qnx4_fs.h | ||||
|  |  | |||
|  | @ -171,6 +171,7 @@ struct kvm_pit_config { | |||
| #define KVM_EXIT_WATCHDOG         21 | ||||
| #define KVM_EXIT_S390_TSCH        22 | ||||
| #define KVM_EXIT_EPR              23 | ||||
| #define KVM_EXIT_SYSTEM_EVENT     24 | ||||
| 
 | ||||
| /* For KVM_EXIT_INTERNAL_ERROR */ | ||||
| /* Emulate instruction failed. */ | ||||
|  | @ -301,6 +302,13 @@ struct kvm_run { | |||
| 		struct { | ||||
| 			__u32 epr; | ||||
| 		} epr; | ||||
| 		/* KVM_EXIT_SYSTEM_EVENT */ | ||||
| 		struct { | ||||
| #define KVM_SYSTEM_EVENT_SHUTDOWN       1 | ||||
| #define KVM_SYSTEM_EVENT_RESET          2 | ||||
| 			__u32 type; | ||||
| 			__u64 flags; | ||||
| 		} system_event; | ||||
| 		/* Fix the size of the union. */ | ||||
| 		char padding[256]; | ||||
| 	}; | ||||
|  | @ -416,6 +424,8 @@ struct kvm_s390_psw { | |||
| #define KVM_S390_INT_PFAULT_INIT	0xfffe0004u | ||||
| #define KVM_S390_INT_PFAULT_DONE	0xfffe0005u | ||||
| #define KVM_S390_MCHK			0xfffe1000u | ||||
| #define KVM_S390_INT_CLOCK_COMP		0xffff1004u | ||||
| #define KVM_S390_INT_CPU_TIMER		0xffff1005u | ||||
| #define KVM_S390_INT_VIRTIO		0xffff2603u | ||||
| #define KVM_S390_INT_SERVICE		0xffff2401u | ||||
| #define KVM_S390_INT_EMERGENCY		0xffff1201u | ||||
|  | @ -515,6 +525,7 @@ enum { | |||
| 	kvm_ioeventfd_flag_nr_pio, | ||||
| 	kvm_ioeventfd_flag_nr_deassign, | ||||
| 	kvm_ioeventfd_flag_nr_virtio_ccw_notify, | ||||
| 	kvm_ioeventfd_flag_nr_fast_mmio, | ||||
| 	kvm_ioeventfd_flag_nr_max, | ||||
| }; | ||||
| 
 | ||||
|  | @ -529,7 +540,7 @@ enum { | |||
| struct kvm_ioeventfd { | ||||
| 	__u64 datamatch; | ||||
| 	__u64 addr;        /* legal pio/mmio address */ | ||||
| 	__u32 len;         /* 1, 2, 4, or 8 bytes    */ | ||||
| 	__u32 len;         /* 1, 2, 4, or 8 bytes; or 0 to ignore length */ | ||||
| 	__s32 fd; | ||||
| 	__u32 flags; | ||||
| 	__u8  pad[36]; | ||||
|  | @ -743,6 +754,10 @@ struct kvm_ppc_smmu_info { | |||
| #define KVM_CAP_IOAPIC_POLARITY_IGNORED 97 | ||||
| #define KVM_CAP_ENABLE_CAP_VM 98 | ||||
| #define KVM_CAP_S390_IRQCHIP 99 | ||||
| #define KVM_CAP_IOEVENTFD_NO_LENGTH 100 | ||||
| #define KVM_CAP_VM_ATTRIBUTES 101 | ||||
| #define KVM_CAP_ARM_PSCI_0_2 102 | ||||
| #define KVM_CAP_PPC_FIXUP_HCALL 103 | ||||
| 
 | ||||
| #ifdef KVM_CAP_IRQ_ROUTING | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										90
									
								
								include/uapi/linux/psci.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								include/uapi/linux/psci.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,90 @@ | |||
| /*
 | ||||
|  * ARM Power State and Coordination Interface (PSCI) header | ||||
|  * | ||||
|  * This header holds common PSCI defines and macros shared | ||||
|  * by: ARM kernel, ARM64 kernel, KVM ARM/ARM64 and user space. | ||||
|  * | ||||
|  * Copyright (C) 2014 Linaro Ltd. | ||||
|  * Author: Anup Patel <anup.patel@linaro.org> | ||||
|  */ | ||||
| 
 | ||||
| #ifndef _UAPI_LINUX_PSCI_H | ||||
| #define _UAPI_LINUX_PSCI_H | ||||
| 
 | ||||
| /*
 | ||||
|  * PSCI v0.1 interface | ||||
|  * | ||||
|  * The PSCI v0.1 function numbers are implementation defined. | ||||
|  * | ||||
|  * Only PSCI return values such as: SUCCESS, NOT_SUPPORTED, | ||||
|  * INVALID_PARAMS, and DENIED defined below are applicable | ||||
|  * to PSCI v0.1. | ||||
|  */ | ||||
| 
 | ||||
| /* PSCI v0.2 interface */ | ||||
| #define PSCI_0_2_FN_BASE			0x84000000 | ||||
| #define PSCI_0_2_FN(n)				(PSCI_0_2_FN_BASE + (n)) | ||||
| #define PSCI_0_2_64BIT				0x40000000 | ||||
| #define PSCI_0_2_FN64_BASE			\ | ||||
| 					(PSCI_0_2_FN_BASE + PSCI_0_2_64BIT) | ||||
| #define PSCI_0_2_FN64(n)			(PSCI_0_2_FN64_BASE + (n)) | ||||
| 
 | ||||
| #define PSCI_0_2_FN_PSCI_VERSION		PSCI_0_2_FN(0) | ||||
| #define PSCI_0_2_FN_CPU_SUSPEND			PSCI_0_2_FN(1) | ||||
| #define PSCI_0_2_FN_CPU_OFF			PSCI_0_2_FN(2) | ||||
| #define PSCI_0_2_FN_CPU_ON			PSCI_0_2_FN(3) | ||||
| #define PSCI_0_2_FN_AFFINITY_INFO		PSCI_0_2_FN(4) | ||||
| #define PSCI_0_2_FN_MIGRATE			PSCI_0_2_FN(5) | ||||
| #define PSCI_0_2_FN_MIGRATE_INFO_TYPE		PSCI_0_2_FN(6) | ||||
| #define PSCI_0_2_FN_MIGRATE_INFO_UP_CPU		PSCI_0_2_FN(7) | ||||
| #define PSCI_0_2_FN_SYSTEM_OFF			PSCI_0_2_FN(8) | ||||
| #define PSCI_0_2_FN_SYSTEM_RESET		PSCI_0_2_FN(9) | ||||
| 
 | ||||
| #define PSCI_0_2_FN64_CPU_SUSPEND		PSCI_0_2_FN64(1) | ||||
| #define PSCI_0_2_FN64_CPU_ON			PSCI_0_2_FN64(3) | ||||
| #define PSCI_0_2_FN64_AFFINITY_INFO		PSCI_0_2_FN64(4) | ||||
| #define PSCI_0_2_FN64_MIGRATE			PSCI_0_2_FN64(5) | ||||
| #define PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU	PSCI_0_2_FN64(7) | ||||
| 
 | ||||
| /* PSCI v0.2 power state encoding for CPU_SUSPEND function */ | ||||
| #define PSCI_0_2_POWER_STATE_ID_MASK		0xffff | ||||
| #define PSCI_0_2_POWER_STATE_ID_SHIFT		0 | ||||
| #define PSCI_0_2_POWER_STATE_TYPE_SHIFT		16 | ||||
| #define PSCI_0_2_POWER_STATE_TYPE_MASK		\ | ||||
| 				(0x1 << PSCI_0_2_POWER_STATE_TYPE_SHIFT) | ||||
| #define PSCI_0_2_POWER_STATE_AFFL_SHIFT		24 | ||||
| #define PSCI_0_2_POWER_STATE_AFFL_MASK		\ | ||||
| 				(0x3 << PSCI_0_2_POWER_STATE_AFFL_SHIFT) | ||||
| 
 | ||||
| /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */ | ||||
| #define PSCI_0_2_AFFINITY_LEVEL_ON		0 | ||||
| #define PSCI_0_2_AFFINITY_LEVEL_OFF		1 | ||||
| #define PSCI_0_2_AFFINITY_LEVEL_ON_PENDING	2 | ||||
| 
 | ||||
| /* PSCI v0.2 multicore support in Trusted OS returned by MIGRATE_INFO_TYPE */ | ||||
| #define PSCI_0_2_TOS_UP_MIGRATE			0 | ||||
| #define PSCI_0_2_TOS_UP_NO_MIGRATE		1 | ||||
| #define PSCI_0_2_TOS_MP				2 | ||||
| 
 | ||||
| /* PSCI version decoding (independent of PSCI version) */ | ||||
| #define PSCI_VERSION_MAJOR_SHIFT		16 | ||||
| #define PSCI_VERSION_MINOR_MASK			\ | ||||
| 		((1U << PSCI_VERSION_MAJOR_SHIFT) - 1) | ||||
| #define PSCI_VERSION_MAJOR_MASK			~PSCI_VERSION_MINOR_MASK | ||||
| #define PSCI_VERSION_MAJOR(ver)			\ | ||||
| 		(((ver) & PSCI_VERSION_MAJOR_MASK) >> PSCI_VERSION_MAJOR_SHIFT) | ||||
| #define PSCI_VERSION_MINOR(ver)			\ | ||||
| 		((ver) & PSCI_VERSION_MINOR_MASK) | ||||
| 
 | ||||
| /* PSCI return values (inclusive of all PSCI versions) */ | ||||
| #define PSCI_RET_SUCCESS			0 | ||||
| #define PSCI_RET_NOT_SUPPORTED			-1 | ||||
| #define PSCI_RET_INVALID_PARAMS			-2 | ||||
| #define PSCI_RET_DENIED				-3 | ||||
| #define PSCI_RET_ALREADY_ON			-4 | ||||
| #define PSCI_RET_ON_PENDING			-5 | ||||
| #define PSCI_RET_INTERNAL_FAILURE		-6 | ||||
| #define PSCI_RET_NOT_PRESENT			-7 | ||||
| #define PSCI_RET_DISABLED			-8 | ||||
| 
 | ||||
| #endif /* _UAPI_LINUX_PSCI_H */ | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Linus Torvalds
				Linus Torvalds