On Fri, Mar 20, 2020 at 01:55:26AM -0700, Davidlohr Bueso wrote:
> -     swait_event_interruptible_exclusive(*wq, ((!vcpu->arch.power_off) &&
> -                                    (!vcpu->arch.pause)));
> +     rcuwait_wait_event(*wait,
> +                        (!vcpu->arch.power_off) && (!vcpu->arch.pause),
> +                        TASK_INTERRUPTIBLE);

> -     for (;;) {
> -             prepare_to_swait_exclusive(&vcpu->wq, &wait, 
> TASK_INTERRUPTIBLE);
> -
> -             if (kvm_vcpu_check_block(vcpu) < 0)
> -                     break;
> -
> -             waited = true;
> -             schedule();
> -     }
> -
> -     finish_swait(&vcpu->wq, &wait);
> +     rcuwait_wait_event(&vcpu->wait,
> +                        (block_check = kvm_vcpu_check_block(vcpu)) < 0,
> +                        TASK_INTERRUPTIBLE);

Are these yet more instances that really want to be TASK_IDLE ?

Reply via email to