[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 14:03, "George Dunlap" <George.Dunlap@xxxxxxxxxxxxx> wrote:

>> But that's probably a rare enough occurrence that it's better overall
>> to take the occasional double-migrate.
> Hmm -- but thinking it further, it actually seems likely that a
> different double-migrate race will happen:
> 1. vcpu is running on pcpu A
> 2. pcpu B runs set_affinity, setting VPF_migrate
> 3. pcpu B calls vcpu_sleep_nosync
> 4. pcpu A wakes up and grabs the schedule lock
> 5. pcpu A notices that VPF_migrate is set, and calls vcpu_migrate()
> 6. pcpu B calls vcpu_migrate()
> Either that, or 6 happens before 4, but 4 still happens before pcpu B
> clears VPF_migrate.
> It seems like we should really only call if (!v->is_running ||
> v->processor == this_cpu).

It's harmless for vcpu_migrate() to be called twice. It grabs locks then
checks it has work to do (and can do that work!).

 -- Keir

Xen-devel mailing list



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