Common: Optional support for adding a small amount of polling on each HLT
instruction executed in the guest (or equivalent for other architectures).
This can improve latency up to 50% on some scenarios (e.g. O_DSYNC writes
or TCP_RR netperf tests). This also has to be enabled manually for now,
but the plan is to auto-tune this in the future.
ARM/ARM64: the highlights are support for GICv3 emulation and dirty page
tracking
s390: several optimizations and bugfixes. Also a first: a feature
exposed by KVM (UUID and long guest name in /proc/sysinfo) before
it is available in IBM's hypervisor! :)
MIPS: Bugfixes.
x86: Support for PML (page modification logging, a new feature in
Broadwell Xeons that speeds up dirty page tracking), nested virtualization
improvements (nested APICv---a nice optimization), usual round of emulation
fixes. There is also a new option to reduce latency of the TSC deadline
timer in the guest; this needs to be tuned manually.
Some commits are common between this pull and Catalin's; I see you
have already included his tree.
ARM has other conflicts where functions are added in the same place
by 3.19-rc and 3.20 patches. These are not large though, and entirely
within KVM.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQEcBAABAgAGBQJU28rkAAoJEL/70l94x66DXqQH/1TDOfJIjW7P2kb0Sw7Fy1wi
cEX1KO/VFxAqc8R0E/0Wb55CXyPjQJM6xBXuFr5cUDaIjQ8ULSktL4pEwXyyv/s5
DBDkN65mriry2w5VuEaRLVcuX9Wy+tqLQXWNkEySfyb4uhZChWWHvKEcgw5SqCyg
NlpeHurYESIoNyov3jWqvBjr4OmaQENyv7t2c6q5ErIgG02V+iCux5QGbphM2IC9
LFtPKxoqhfeB2xFxTOIt8HJiXrZNwflsTejIlCl/NSEiDVLLxxHCxK2tWK/tUXMn
JfLD9ytXBWtNMwInvtFm4fPmDouv2VDyR0xnK2db+/axsJZnbxqjGu1um4Dqbak=
=7gdx
-----END PGP SIGNATURE-----
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM update from Paolo Bonzini:
"Fairly small update, but there are some interesting new features.
Common:
Optional support for adding a small amount of polling on each HLT
instruction executed in the guest (or equivalent for other
architectures). This can improve latency up to 50% on some
scenarios (e.g. O_DSYNC writes or TCP_RR netperf tests). This
also has to be enabled manually for now, but the plan is to
auto-tune this in the future.
ARM/ARM64:
The highlights are support for GICv3 emulation and dirty page
tracking
s390:
Several optimizations and bugfixes. Also a first: a feature
exposed by KVM (UUID and long guest name in /proc/sysinfo) before
it is available in IBM's hypervisor! :)
MIPS:
Bugfixes.
x86:
Support for PML (page modification logging, a new feature in
Broadwell Xeons that speeds up dirty page tracking), nested
virtualization improvements (nested APICv---a nice optimization),
usual round of emulation fixes.
There is also a new option to reduce latency of the TSC deadline
timer in the guest; this needs to be tuned manually.
Some commits are common between this pull and Catalin's; I see you
have already included his tree.
Powerpc:
Nothing yet.
The KVM/PPC changes will come in through the PPC maintainers,
because I haven't received them yet and I might end up being
offline for some part of next week"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (130 commits)
KVM: ia64: drop kvm.h from installed user headers
KVM: x86: fix build with !CONFIG_SMP
KVM: x86: emulate: correct page fault error code for NoWrite instructions
KVM: Disable compat ioctl for s390
KVM: s390: add cpu model support
KVM: s390: use facilities and cpu_id per KVM
KVM: s390/CPACF: Choose crypto control block format
s390/kernel: Update /proc/sysinfo file with Extended Name and UUID
KVM: s390: reenable LPP facility
KVM: s390: floating irqs: fix user triggerable endless loop
kvm: add halt_poll_ns module parameter
kvm: remove KVM_MMIO_SIZE
KVM: MIPS: Don't leak FPU/DSP to guest
KVM: MIPS: Disable HTW while in guest
KVM: nVMX: Enable nested posted interrupt processing
KVM: nVMX: Enable nested virtual interrupt delivery
KVM: nVMX: Enable nested apic register virtualization
KVM: nVMX: Make nested control MSRs per-cpu
KVM: nVMX: Enable nested virtualize x2apic mode
KVM: nVMX: Prepare for using hardware MSR bitmap
...
78 lines
1.9 KiB
C
78 lines
1.9 KiB
C
/*
|
|
* Copyright IBM Corp. 2007
|
|
* Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
|
|
*/
|
|
|
|
#ifndef _ASM_S390_SCLP_H
|
|
#define _ASM_S390_SCLP_H
|
|
|
|
#include <linux/types.h>
|
|
#include <asm/chpid.h>
|
|
#include <asm/cpu.h>
|
|
|
|
#define SCLP_CHP_INFO_MASK_SIZE 32
|
|
|
|
struct sclp_chp_info {
|
|
u8 recognized[SCLP_CHP_INFO_MASK_SIZE];
|
|
u8 standby[SCLP_CHP_INFO_MASK_SIZE];
|
|
u8 configured[SCLP_CHP_INFO_MASK_SIZE];
|
|
};
|
|
|
|
#define LOADPARM_LEN 8
|
|
|
|
struct sclp_ipl_info {
|
|
int is_valid;
|
|
int has_dump;
|
|
char loadparm[LOADPARM_LEN];
|
|
};
|
|
|
|
struct sclp_cpu_entry {
|
|
u8 core_id;
|
|
u8 reserved0[2];
|
|
u8 : 3;
|
|
u8 siif : 1;
|
|
u8 sigpif : 1;
|
|
u8 : 3;
|
|
u8 reserved2[10];
|
|
u8 type;
|
|
u8 reserved1;
|
|
} __attribute__((packed));
|
|
|
|
struct sclp_cpu_info {
|
|
unsigned int configured;
|
|
unsigned int standby;
|
|
unsigned int combined;
|
|
int has_cpu_type;
|
|
struct sclp_cpu_entry cpu[MAX_CPU_ADDRESS + 1];
|
|
};
|
|
|
|
int sclp_get_cpu_info(struct sclp_cpu_info *info);
|
|
int sclp_cpu_configure(u8 cpu);
|
|
int sclp_cpu_deconfigure(u8 cpu);
|
|
unsigned long long sclp_get_rnmax(void);
|
|
unsigned long long sclp_get_rzm(void);
|
|
unsigned int sclp_get_max_cpu(void);
|
|
unsigned int sclp_get_mtid(u8 cpu_type);
|
|
unsigned int sclp_get_mtid_max(void);
|
|
unsigned int sclp_get_mtid_prev(void);
|
|
int sclp_sdias_blk_count(void);
|
|
int sclp_sdias_copy(void *dest, int blk_num, int nr_blks);
|
|
int sclp_chp_configure(struct chp_id chpid);
|
|
int sclp_chp_deconfigure(struct chp_id chpid);
|
|
int sclp_chp_read_info(struct sclp_chp_info *info);
|
|
void sclp_get_ipl_info(struct sclp_ipl_info *info);
|
|
bool __init sclp_has_linemode(void);
|
|
bool __init sclp_has_vt220(void);
|
|
bool sclp_has_sprp(void);
|
|
int sclp_pci_configure(u32 fid);
|
|
int sclp_pci_deconfigure(u32 fid);
|
|
int memcpy_hsa(void *dest, unsigned long src, size_t count, int mode);
|
|
unsigned long sclp_get_hsa_size(void);
|
|
void sclp_early_detect(void);
|
|
int sclp_has_siif(void);
|
|
int sclp_has_sigpif(void);
|
|
unsigned int sclp_get_ibc(void);
|
|
|
|
long _sclp_print_early(const char *);
|
|
|
|
#endif /* _ASM_S390_SCLP_H */
|