From: George Dunlap <george.dunlap@eu.citrix.com>
To: Dario Faggioli <dario.faggioli@citrix.com>,
Xen-devel <xen-devel@lists.xen.org>
Cc: Keir Fraser <keir@xen.org>, Meng Xu <xumengpanda@gmail.com>,
Jan Beulich <JBeulich@suse.com>
Subject: Re: [PATCH 2/7] xen: sched_rt: implement the .free_pdata hook
Date: Mon, 16 Mar 2015 18:21:53 +0000 [thread overview]
Message-ID: <55071F41.4080700@eu.citrix.com> (raw)
In-Reply-To: <20150316170458.10279.60102.stgit@Solace.station>
On 03/16/2015 05:04 PM, Dario Faggioli wrote:
> which is called by cpu_schedule_down(), and is necessary
> for resetting the spinlock pointers in schedule_data from
> the RTDS global runqueue lock, back to the default _lock
> fields in the struct.
>
> Not doing so causes Xen to explode, e.g., when removing
> pCPUs from an RTDS cpupool and assigning them to another
> one.
>
> Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com>
> Cc: George Dunlap <george.dunlap@eu.citrix.com>
> Cc: Meng Xu <xumengpanda@gmail.com>
> Cc: Jan Beulich <JBeulich@suse.com>
> Cc: Keir Fraser <keir@xen.org>
Reviewed-by: George Dunlap <george.dunlap@eu.citrix.com>
> ---
> xen/common/sched_rt.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/xen/common/sched_rt.c b/xen/common/sched_rt.c
> index 055a50f..3e37e62 100644
> --- a/xen/common/sched_rt.c
> +++ b/xen/common/sched_rt.c
> @@ -444,6 +444,23 @@ rt_alloc_pdata(const struct scheduler *ops, int cpu)
> return (void *)1;
> }
>
> +static void
> +rt_free_pdata(const struct scheduler *ops, void *pcpu, int cpu)
> +{
> + struct rt_private *prv = rt_priv(ops);
> + struct schedule_data *sd = &per_cpu(schedule_data, cpu);
> + unsigned long flags;
> +
> + spin_lock_irqsave(&prv->lock, flags);
> +
> + /* Move spinlock back to the default lock */
> + ASSERT(sd->schedule_lock == &prv->lock);
> + ASSERT(!spin_is_locked(&sd->_lock));
> + sd->schedule_lock = &sd->_lock;
> +
> + spin_unlock_irqrestore(&prv->lock, flags);
> +}
> +
> static void *
> rt_alloc_domdata(const struct scheduler *ops, struct domain *dom)
> {
> @@ -1090,6 +1107,7 @@ const struct scheduler sched_rtds_def = {
> .init = rt_init,
> .deinit = rt_deinit,
> .alloc_pdata = rt_alloc_pdata,
> + .free_pdata = rt_free_pdata,
> .alloc_domdata = rt_alloc_domdata,
> .free_domdata = rt_free_domdata,
> .init_domain = rt_dom_init,
>
next prev parent reply other threads:[~2015-03-16 18:21 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-16 17:04 [PATCH 0/7] Improving dumping of scheduler related info Dario Faggioli
2015-03-16 17:04 ` [PATCH 1/7] xen: sched_rt: avoid ASSERT()ing on runq dump if there are no domains Dario Faggioli
2015-03-16 18:18 ` George Dunlap
2015-03-16 20:31 ` Meng Xu
2015-03-17 10:41 ` Jan Beulich
2015-03-17 11:00 ` Dario Faggioli
2015-03-16 17:04 ` [PATCH 2/7] xen: sched_rt: implement the .free_pdata hook Dario Faggioli
2015-03-16 17:10 ` Dario Faggioli
2015-03-16 18:23 ` Meng Xu
2015-03-17 13:00 ` Dario Faggioli
2015-03-16 18:17 ` Meng Xu
2015-03-16 18:21 ` George Dunlap [this message]
2015-03-16 17:05 ` [PATCH 3/7] xen: rework locking for dump of scheduler info (debug-key r) Dario Faggioli
2015-03-16 18:41 ` George Dunlap
2015-03-16 20:04 ` Meng Xu
2015-03-17 10:54 ` Jan Beulich
2015-03-17 11:05 ` George Dunlap
2015-03-17 11:18 ` Dario Faggioli
2015-03-17 11:25 ` Jan Beulich
2015-03-17 11:32 ` George Dunlap
2015-03-17 11:43 ` Jan Beulich
2015-03-17 12:01 ` George Dunlap
2015-03-17 11:14 ` Dario Faggioli
2015-03-17 11:31 ` Jan Beulich
2015-03-16 17:05 ` [PATCH 4/7] xen: print online pCPUs and free pCPUs when dumping scheduler info Dario Faggioli
2015-03-16 18:37 ` Juergen Gross
2015-03-16 18:46 ` George Dunlap
2015-03-17 10:59 ` Jan Beulich
2015-03-16 17:05 ` [PATCH 5/7] xen: make dumping vcpu info look better Dario Faggioli
2015-03-16 18:48 ` George Dunlap
2015-03-16 20:06 ` Meng Xu
2015-03-16 17:05 ` [PATCH 6/7] xen: sched_credit2: more info when dumping Dario Faggioli
2015-03-16 18:50 ` George Dunlap
2015-03-16 17:05 ` [PATCH 7/7] xen: sched_rt: print useful affinity " Dario Faggioli
2015-03-16 19:05 ` George Dunlap
2015-03-17 13:51 ` Dario Faggioli
2015-03-16 20:30 ` Meng Xu
2015-03-17 11:10 ` George Dunlap
2015-03-17 11:28 ` Jan Beulich
2015-03-18 1:05 ` Meng Xu
2015-03-17 14:12 ` Dario Faggioli
2015-03-18 1:07 ` Meng Xu
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=55071F41.4080700@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=dario.faggioli@citrix.com \
--cc=keir@xen.org \
--cc=xen-devel@lists.xen.org \
--cc=xumengpanda@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.