[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] xen: Always ask the scheduler to re-place the vcpu when the affinity changes

On 04/03/2013 13:45, "George Dunlap" <George.Dunlap@xxxxxxxxxxxxx> wrote:

>> The code right below the context visible here is
>>      if ( test_bit(_VPF_migrating, &v->pause_flags) )
>>      {
>>          vcpu_sleep_nosync(v);
>>          vcpu_migrate(v);
>>      }
>> and I think the conditional could (and should) now be removed.
> Yeah, I wasn't sure what to make of that one -- it looked as though it
> was coded such that someone else might be able to clear _VPF_migrating
> between releasing the lock and this test.  But if that can happen, it's
> racy anyway.  vcpu_force_reschedule() has this "set, unlock, re-check"
> pattern.
> It looks like there actually is a way that it could conceivably be
> cleared: if the vcpu is running on another pcpu, if after we release the
> lock the vcpu is de-scheduled and context_saved() is called, it will
> check for _VPF_migrating and call vcpu_migrate(), which can clear the flag.
> But that's probably a rare enough occurrence that it's better overall to
> take the occasional double-migrate.

Yes, the check is safe to remove, or indeed safe to keep.

 -- Keir

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.