Two patches:

- one regression fix for reducing the amount of ucontrol userspace exits
 - get rid of BUG_ONs in hot inner loops
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJTJtUZAAoJEBF7vIC1phx8K90P/1AViGwY1RQjB3gE8vggOm0S
 0PWG36vQw7zXy1P+veqyQqbusyn1TS5WcJn+5xg665nUv4s6PHIFYj8BcNDdcW1P
 GxzctKdaSY5dzunvY6gRhMcwT02h31xiAlajG39Bn8pEI/n/n+12jRIiuWndBqiC
 3mpsKTLIscRPslxNkOLKbP2yiLW0rxo4rAsad7iRZSOjkLtGXbCB2hEew+osKGmK
 Grz1R54+FyYdUrLhHcmWLcfp4XX/aKP0pBaYxUBcNl6BR6QWRQMhcyBAK8UT19BS
 mXRXBf5TCIg2VMQVs0Mdi9eNjjUevgJu8FRc/kkq29an6kyOvcVfEIp4Hk8dH+yy
 suG70D1QVLRh/dhjhaTo+dDBSql1YHHcxuEwJ89oXuXaxNC7Lis4SyxSvDI7rntF
 aQv5Tf5dW4j+SEue483g8ImYeLoa7pEPE19rRhR7/+m8/D8acdQ/9993Pi+3KX3L
 QgV8aIZHRo9YQbaPE/ajLC85Vg1lXQFRGCWjk80v9YBrcshUdfLw9INinoCZ5m2V
 X+0kAPgVjqr4XYG5+ud5fy5mFYAR8EdhRDvv7fHF10a9UbGO2+1gN3wcewr4y/7j
 i0kk6jCLAnryeLkRX+teStbVrLMyyQTJKtnCTTG6WYNgj3KqTpXsCs14mofJFaH6
 WVEMPvwvRpY3Xcslrq6e
 =Fq/F
 -----END PGP SIGNATURE-----

Merge tag 'kvm-s390-20140317' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD

Two patches:
- one regression fix for reducing the amount of ucontrol userspace exits
- get rid of BUG_ONs in hot inner loops
This commit is contained in:
Paolo Bonzini 2014-03-17 12:21:35 +01:00
commit 94b3ffcd41
2 changed files with 2 additions and 5 deletions

View File

@ -114,14 +114,12 @@ static int __interrupt_is_deliverable(struct kvm_vcpu *vcpu,
static void __set_cpu_idle(struct kvm_vcpu *vcpu)
{
BUG_ON(vcpu->vcpu_id > KVM_MAX_VCPUS - 1);
atomic_set_mask(CPUSTAT_WAIT, &vcpu->arch.sie_block->cpuflags);
set_bit(vcpu->vcpu_id, vcpu->arch.local_int.float_int->idle_mask);
}
static void __unset_cpu_idle(struct kvm_vcpu *vcpu)
{
BUG_ON(vcpu->vcpu_id > KVM_MAX_VCPUS - 1);
atomic_clear_mask(CPUSTAT_WAIT, &vcpu->arch.sie_block->cpuflags);
clear_bit(vcpu->vcpu_id, vcpu->arch.local_int.float_int->idle_mask);
}

View File

@ -896,7 +896,8 @@ static int vcpu_post_run(struct kvm_vcpu *vcpu, int exit_reason)
if (rc == 0) {
if (kvm_is_ucontrol(vcpu->kvm))
rc = -EOPNOTSUPP;
/* Don't exit for host interrupts. */
rc = vcpu->arch.sie_block->icptcode ? -EOPNOTSUPP : 0;
else
rc = kvm_handle_sie_intercept(vcpu);
}
@ -949,8 +950,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
atomic_clear_mask(CPUSTAT_STOPPED, &vcpu->arch.sie_block->cpuflags);
BUG_ON(kvm_get_vcpu(vcpu->kvm, vcpu->vcpu_id) == NULL);
switch (kvm_run->exit_reason) {
case KVM_EXIT_S390_SIEIC:
case KVM_EXIT_UNKNOWN: