Subject: Re: linux-next: manual merge of the kvm-ppc tree with the tip tree

From: Paul Mackerras <[email-masked]>
Date: Wed, 26 Aug 2015 11:21:00 -0700

Hi Stephen,

On Mon, Aug 24, 2015 at 03:59:54PM +1000, Stephen Rothwell wrote:
> Hi Alexander,
> 
> Today's linux-next merge of the kvm-ppc tree got a conflict in:
> 
>   arch/powerpc/kvm/book3s_hv.c
> 
> between commit:
> 
>   c56dadf39761 ("sched/preempt, powerpc, kvm: Use need_resched() instead of should_resched()")
> 
> from the tip tree and commit:
> 
>   ec2571650826 ("KVM: PPC: Book3S HV: Make use of unused threads when running guests")
> 
> from the kvm-ppc tree.
> 
> I fixed it up (see below) and can carry the fix as necessary (no action
> is required).

The fix isn't quite correct (see below), but the error is benign.

> -- 
> Cheers,
> Stephen Rothwell                    [email-masked]
> 
> diff --cc arch/powerpc/kvm/book3s_hv.c
> index a9f753fb73a8,fad52f226c12..000000000000
> --- a/arch/powerpc/kvm/book3s_hv.c
> +++ b/arch/powerpc/kvm/book3s_hv.c
> @@@ -2178,11 -2670,12 +2670,13 @@@ static int kvmppc_run_vcpu(struct kvm_r
>   		vc->runner = vcpu;
>   		if (n_ceded == vc->n_runnable) {
>   			kvmppc_vcore_blocked(vc);
>  -		} else if (should_resched()) {
>  +		} else if (need_resched()) {
>  +			vc->vcore_state = VCORE_PREEMPT;

This line is removed in the kvm-ppc tree because it is now in the new
kvmppc_vcore_preempt() function.  Thus we don't need this line in the
merge result.  However, having it here just means that we set
vc->vcore_state to VCORE_PREEMPT twice.

> + 			kvmppc_vcore_preempt(vc);
>   			/* Let something else run */
>   			cond_resched_lock(&vc->lock);
> - 			vc->vcore_state = VCORE_INACTIVE;
> + 			if (vc->vcore_state == VCORE_PREEMPT)
> + 				kvmppc_vcore_end_preempt(vc);
>   		} else {
>   			kvmppc_run_core(vc);
>   		}

Regards,
Paul.