Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools headers kvm: Sync kvm headers with the kernel sources

To pick up the changes from:

14edff88315a Merge tag 'kvmarm-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
a4b28f5c6798 Merge remote-tracking branch 'kvmarm/kvm-arm64/stolen-time' into kvmarm-master/next
58772e9a3db7 ("KVM: arm64: Provide VCPU attributes for stolen time")
da345174ceca ("KVM: arm/arm64: Allow user injection of external data aborts")
c726200dd106 ("KVM: arm/arm64: Allow reporting non-ISV data aborts to userspace")
efe5ddcae496 ("KVM: PPC: Book3S HV: XIVE: Allow userspace to set the # of VPs")

No tools changes are caused by this, as the only defines so far used
from these files are for syscall arg pretty printing are:

$ grep KVM tools/perf/trace/beauty/*.sh
tools/perf/trace/beauty/kvm_ioctl.sh:regex='^#[[:space:]]*define[[:space:]]+KVM_(\w+)[[:space:]]+_IO[RW]*\([[:space:]]*KVMIO[[:space:]]*,[[:space:]]*(0x[[:xdigit:]]+).*'
$

Some are also include by:

tools/perf/arch/x86/util/kvm-stat.c
tools/perf/arch/powerpc/util/kvm-stat.c

This addresses these tools/perf build warnings:

Warning: Kernel ABI header at 'tools/include/uapi/linux/kvm.h' differs from latest version at 'include/uapi/linux/kvm.h'
diff -u tools/include/uapi/linux/kvm.h include/uapi/linux/kvm.h
Warning: Kernel ABI header at 'tools/arch/powerpc/include/uapi/asm/kvm.h' differs from latest version at 'arch/powerpc/include/uapi/asm/kvm.h'
diff -u tools/arch/powerpc/include/uapi/asm/kvm.h arch/powerpc/include/uapi/asm/kvm.h
Warning: Kernel ABI header at 'tools/arch/arm/include/uapi/asm/kvm.h' differs from latest version at 'arch/arm/include/uapi/asm/kvm.h'
diff -u tools/arch/arm/include/uapi/asm/kvm.h arch/arm/include/uapi/asm/kvm.h
Warning: Kernel ABI header at 'tools/arch/arm64/include/uapi/asm/kvm.h' differs from latest version at 'arch/arm64/include/uapi/asm/kvm.h'
diff -u tools/arch/arm64/include/uapi/asm/kvm.h arch/arm64/include/uapi/asm/kvm.h

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Christoffer Dall <christoffer.dall@arm.com>
Cc: Fabiano Rosas <farosas@linux.ibm.com>
Cc: Greg Kurz <groug@kaod.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@ozlabs.org>
Cc: Steven Price <steven.price@arm.com>
Link: https://lkml.kernel.org/n/tip-qrjdudhq25mk5bfnhveofbm4@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

+20 -2
+2 -1
tools/arch/arm/include/uapi/asm/kvm.h
··· 131 131 struct { 132 132 __u8 serror_pending; 133 133 __u8 serror_has_esr; 134 + __u8 ext_dabt_pending; 134 135 /* Align it to 8 bytes */ 135 - __u8 pad[6]; 136 + __u8 pad[5]; 136 137 __u64 serror_esr; 137 138 } exception; 138 139 __u32 reserved[12];
+4 -1
tools/arch/arm64/include/uapi/asm/kvm.h
··· 164 164 struct { 165 165 __u8 serror_pending; 166 166 __u8 serror_has_esr; 167 + __u8 ext_dabt_pending; 167 168 /* Align it to 8 bytes */ 168 - __u8 pad[6]; 169 + __u8 pad[5]; 169 170 __u64 serror_esr; 170 171 } exception; 171 172 __u32 reserved[12]; ··· 324 323 #define KVM_ARM_VCPU_TIMER_CTRL 1 325 324 #define KVM_ARM_VCPU_TIMER_IRQ_VTIMER 0 326 325 #define KVM_ARM_VCPU_TIMER_IRQ_PTIMER 1 326 + #define KVM_ARM_VCPU_PVTIME_CTRL 2 327 + #define KVM_ARM_VCPU_PVTIME_IPA 0 327 328 328 329 /* KVM_IRQ_LINE irq field index values */ 329 330 #define KVM_ARM_IRQ_VCPU2_SHIFT 28
+3
tools/arch/powerpc/include/uapi/asm/kvm.h
··· 667 667 668 668 /* PPC64 eXternal Interrupt Controller Specification */ 669 669 #define KVM_DEV_XICS_GRP_SOURCES 1 /* 64-bit source attributes */ 670 + #define KVM_DEV_XICS_GRP_CTRL 2 671 + #define KVM_DEV_XICS_NR_SERVERS 1 670 672 671 673 /* Layout of 64-bit source attribute values */ 672 674 #define KVM_XICS_DESTINATION_SHIFT 0 ··· 685 683 #define KVM_DEV_XIVE_GRP_CTRL 1 686 684 #define KVM_DEV_XIVE_RESET 1 687 685 #define KVM_DEV_XIVE_EQ_SYNC 2 686 + #define KVM_DEV_XIVE_NR_SERVERS 3 688 687 #define KVM_DEV_XIVE_GRP_SOURCE 2 /* 64-bit source identifier */ 689 688 #define KVM_DEV_XIVE_GRP_SOURCE_CONFIG 3 /* 64-bit source identifier */ 690 689 #define KVM_DEV_XIVE_GRP_EQ_CONFIG 4 /* 64-bit EQ identifier */
+11
tools/include/uapi/linux/kvm.h
··· 235 235 #define KVM_EXIT_S390_STSI 25 236 236 #define KVM_EXIT_IOAPIC_EOI 26 237 237 #define KVM_EXIT_HYPERV 27 238 + #define KVM_EXIT_ARM_NISV 28 238 239 239 240 /* For KVM_EXIT_INTERNAL_ERROR */ 240 241 /* Emulate instruction failed. */ ··· 395 394 } eoi; 396 395 /* KVM_EXIT_HYPERV */ 397 396 struct kvm_hyperv_exit hyperv; 397 + /* KVM_EXIT_ARM_NISV */ 398 + struct { 399 + __u64 esr_iss; 400 + __u64 fault_ipa; 401 + } arm_nisv; 398 402 /* Fix the size of the union. */ 399 403 char padding[256]; 400 404 }; ··· 1006 1000 #define KVM_CAP_PMU_EVENT_FILTER 173 1007 1001 #define KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 174 1008 1002 #define KVM_CAP_HYPERV_DIRECT_TLBFLUSH 175 1003 + #define KVM_CAP_PPC_GUEST_DEBUG_SSTEP 176 1004 + #define KVM_CAP_ARM_NISV_TO_USER 177 1005 + #define KVM_CAP_ARM_INJECT_EXT_DABT 178 1009 1006 1010 1007 #ifdef KVM_CAP_IRQ_ROUTING 1011 1008 ··· 1236 1227 #define KVM_DEV_TYPE_ARM_VGIC_ITS KVM_DEV_TYPE_ARM_VGIC_ITS 1237 1228 KVM_DEV_TYPE_XIVE, 1238 1229 #define KVM_DEV_TYPE_XIVE KVM_DEV_TYPE_XIVE 1230 + KVM_DEV_TYPE_ARM_PV_TIME, 1231 + #define KVM_DEV_TYPE_ARM_PV_TIME KVM_DEV_TYPE_ARM_PV_TIME 1239 1232 KVM_DEV_TYPE_MAX, 1240 1233 }; 1241 1234