From: George Dunlap <george.dunlap@eu.citrix.com>
To: Dario Faggioli <dario.faggioli@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
Juergen Gross <juergen.gross@ts.fujitsu.com>,
David Vrabel <david.vrabel@citrix.com>,
xen-devel@lists.xen.org
Subject: Re: [PATCH] sched: fix race between sched_move_domain() and vcpu_wake()
Date: Fri, 11 Oct 2013 12:32:43 +0100 [thread overview]
Message-ID: <5257E1DB.8070002@eu.citrix.com> (raw)
In-Reply-To: <1381490132.5006.33.camel@Abyss.lan>
On 11/10/13 12:15, Dario Faggioli wrote:
> On ven, 2013-10-11 at 11:32 +0100, George Dunlap wrote:
>> So going through the code and trying to reconstruct all the state in my
>> head...
>>
>> If you look at vcpu_migrate(), it grabs both locks. But it looks like
>> the main purpose for that is so that we can call the migrate SCHED_OP(),
>> which for credit2 needs to do some mucking about with runqueues, and
>> thus needs both locks.
>>
> Just to make sure I understood what's going on, the SCHED_OP you're
> referring is SCHED_OP(..,migrate,..) here, right?
>
>> In the case of move_domain, this is unnecessary,
>> since it is removed from the old scheduler and then added to the new one.
>>
> I think that too, and that's why I wouldn't take both locks: it'd
> actually be misleading rather than enlightening for people reading the
> code, at least that's how I see it.
>
> Perhaps, we can put a comment somewhere (as George is also saying).
>
> Regarding the patch, I personally like Jan's idea.
>
>> But I think this patch is still not quite right: both v->processor and
>> per_cpu(schedule_data, ...).schedule_lock may change under your feet; so
>> you always need to do the lock in a loop, checking to make sure that you
>> *still* have the right lock after you have actually grabbed it.
>>
> Which, if I'm not mistaken, we sort of get for free it we go Jan's way,
> don't we?
You mean, we could just call vcpu_schedule_lock..() instead of writing a
bespoke loop code? Sure, that's definitely an advantage.
-George
next prev parent reply other threads:[~2013-10-11 11:32 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-10 17:29 [PATCH] sched: fix race between sched_move_domain() and vcpu_wake() David Vrabel
2013-10-10 18:01 ` Andrew Cooper
2013-10-10 18:27 ` Keir Fraser
2013-10-11 7:12 ` Jan Beulich
2013-10-11 8:07 ` Keir Fraser
2013-10-11 9:02 ` Andrew Cooper
2013-10-11 9:32 ` Jan Beulich
2013-10-11 9:36 ` David Vrabel
2013-10-11 9:37 ` Jan Beulich
2013-10-11 12:20 ` Jan Beulich
2013-10-11 14:39 ` George Dunlap
2013-10-11 14:45 ` George Dunlap
2013-10-11 15:00 ` Processed: " xen
2013-10-11 10:36 ` George Dunlap
2013-10-11 6:37 ` Juergen Gross
2013-10-11 10:32 ` George Dunlap
2013-10-11 11:15 ` Dario Faggioli
2013-10-11 11:32 ` George Dunlap [this message]
2013-10-11 11:49 ` Dario Faggioli
2013-10-11 12:03 ` Jan Beulich
2013-10-11 11:47 ` Keir Fraser
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5257E1DB.8070002@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=dario.faggioli@citrix.com \
--cc=david.vrabel@citrix.com \
--cc=juergen.gross@ts.fujitsu.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).