From: Juergen Gross <jgross@suse.com>
To: Dario Faggioli <dario.faggioli@citrix.com>,
Jan Beulich <JBeulich@suse.com>
Cc: George Dunlap <george.dunlap@eu.citrix.com>,
xen-devel@lists.xenproject.org,
Josh Whitehead <josh.whitehead@dornerworks.com>,
Meng Xu <mengxu@cis.upenn.edu>,
Robert VanVossen <robert.vanvossen@dornerworks.com>
Subject: Re: [PATCH 03/16] xen: sched: make implementing .alloc_pdata optional
Date: Mon, 4 Apr 2016 06:21:25 +0200 [thread overview]
Message-ID: <5701EBC5.6080402@suse.com> (raw)
In-Reply-To: <1459530078.5082.289.camel@citrix.com>
On 01/04/16 19:01, Dario Faggioli wrote:
> On Mon, 2016-03-21 at 09:07 -0600, Jan Beulich wrote:
>>>>> On 21.03.16 at 15:48, <JGross@suse.com> wrote:
>>> On 18/03/16 20:04, Dario Faggioli wrote:
>>>> @@ -1491,9 +1491,9 @@ static int cpu_schedule_up(unsigned int
>>>> cpu)
>>>> if ( idle_vcpu[cpu] == NULL )
>>>> return -ENOMEM;
>>>>
>>>> - if ( (ops.alloc_pdata != NULL) &&
>>>> - ((sd->sched_priv = ops.alloc_pdata(&ops, cpu)) == NULL)
>>>> )
>>>> - return -ENOMEM;
>>>> + sd->sched_priv = SCHED_OP(&ops, alloc_pdata, cpu);
>>>> + if ( IS_ERR(sd->sched_priv) )
>>>> + return PTR_ERR(sd->sched_priv);
>>> Calling xfree() with an IS_ERR() value might be a bad idea.
>>> Either you need to set sd->sched_priv to NULL in error case or you
>>> modify xfree() to return immediately not only in the NULL case, but
>>> in the IS_ERR() case as well.
>> The latter option is a no-go imo.
>>
> Ok, I'll do:
>
> sd->sched_priv = SCHED_OP(&ops, alloc_pdata, cpu);
> if ( IS_ERR(sd->sched_priv) )
> {
> int err = PTR_ERR(sd->sched_priv);
>
> sd->sched_priv = NULL;
> return err;
> }
>
> Is this ok?
Yes, that's what I would prefer.
> And, just to be sure I got your point (Juergen), you're referring to
> the situation where cpu_schedule_up() fails, we go to CPU_UP_CANCELLED,
> which calls cpu_schedule_donw(), which calls free_pdata on
> sd->sched_priv (inside which we may reach an xfree()), aren't you?
Basically, yes.
> In fact, alloc_pdata is also called in schedule_cpu_switch(), but in
> that case, I don't see anyone calling xfree() if alloc_pdata fails...
> Am I missing it?
I just want to avoid the situation where sched_priv would contain a
non-NULL value not pointing to an allocated area. That's always
dangerous, even if with current code nothing bad might happen.
Juergen
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-04-04 4:21 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-18 19:03 [PATCH 00/16] Fixes and improvement (including hard affinity!) for Credit2 Dario Faggioli
2016-03-18 19:04 ` [PATCH 01/16] xen: sched: fix locking when allocating an RTDS pCPU Dario Faggioli
2016-03-19 2:22 ` Meng Xu
2016-03-23 15:37 ` George Dunlap
2016-03-18 19:04 ` [PATCH 02/16] xen: sched: add .init_pdata hook to the scheduler interface Dario Faggioli
2016-03-22 8:08 ` Juergen Gross
2016-03-23 17:32 ` George Dunlap
2016-03-18 19:04 ` [PATCH 03/16] xen: sched: make implementing .alloc_pdata optional Dario Faggioli
2016-03-19 2:23 ` Meng Xu
2016-03-21 14:22 ` Jan Beulich
2016-03-23 17:36 ` George Dunlap
2016-03-24 9:43 ` Jan Beulich
2016-03-24 13:14 ` Dario Faggioli
2016-03-21 14:48 ` Juergen Gross
2016-03-21 15:07 ` Jan Beulich
2016-04-01 17:01 ` Dario Faggioli
2016-04-04 4:21 ` Juergen Gross [this message]
2016-04-04 6:13 ` Jan Beulich
2016-04-05 16:01 ` Dario Faggioli
2016-03-23 17:38 ` George Dunlap
2016-03-18 19:04 ` [PATCH 04/16] xen: sched: implement .init_pdata in all schedulers Dario Faggioli
2016-03-19 2:24 ` Meng Xu
2016-03-22 8:03 ` Juergen Gross
2016-03-23 17:46 ` George Dunlap
2016-03-18 19:04 ` [PATCH 05/16] xen: sched: move pCPU initialization in an helper Dario Faggioli
2016-03-23 17:51 ` George Dunlap
2016-03-23 18:09 ` George Dunlap
2016-03-24 13:21 ` Dario Faggioli
2016-03-18 19:04 ` [PATCH 06/16] xen: sched: prepare a .switch_sched hook for Credit1 Dario Faggioli
2016-03-18 19:04 ` [PATCH 07/16] xen: sched: prepare a .switch_sched hook for Credit2 Dario Faggioli
2016-03-18 19:04 ` [PATCH 08/16] " Dario Faggioli
2016-03-19 2:24 ` Meng Xu
2016-03-21 14:25 ` Jan Beulich
2016-03-18 19:05 ` [PATCH 09/16] xen: sched: close potential races when switching scheduler to CPUs Dario Faggioli
2016-03-19 2:25 ` Meng Xu
2016-03-23 19:05 ` George Dunlap
2016-04-05 16:26 ` Dario Faggioli
2016-04-06 15:51 ` Dario Faggioli
2016-03-24 12:14 ` George Dunlap
2016-04-05 17:37 ` Dario Faggioli
2016-04-06 16:21 ` Dario Faggioli
2016-03-18 19:05 ` [PATCH 10/16] xen: sched: improve credit2 bootparams' scope, placement and signedness Dario Faggioli
2016-03-21 14:51 ` Juergen Gross
2016-03-24 12:20 ` George Dunlap
2016-03-18 19:05 ` [PATCH 11/16] xen: sched: on Credit2, don't reprogram the timer if idle Dario Faggioli
2016-03-24 15:03 ` George Dunlap
2016-03-18 19:05 ` [PATCH 12/16] xen: sched: fix per-socket runqueue creation in credit2 Dario Faggioli
2016-03-24 12:24 ` George Dunlap
2016-03-18 19:05 ` [PATCH 13/16] xen: sched: allow for choosing credit2 runqueues configuration at boot Dario Faggioli
2016-03-22 7:46 ` Juergen Gross
2016-03-24 12:36 ` George Dunlap
2016-03-18 19:05 ` [PATCH 14/16] xen: sched: per-core runqueues as default in credit2 Dario Faggioli
2016-03-24 12:37 ` George Dunlap
2016-03-18 19:06 ` [PATCH 15/16] xen: sched: scratch space for cpumasks on Credit2 Dario Faggioli
2016-03-18 19:27 ` Andrew Cooper
2016-03-24 12:44 ` George Dunlap
2016-03-24 12:56 ` Andrew Cooper
2016-03-24 13:10 ` Dario Faggioli
2016-03-18 19:06 ` [PATCH 16/16] xen: sched: implement vcpu hard affinity in Credit2 Dario Faggioli
2016-03-24 15:42 ` George Dunlap
2016-04-05 16:50 ` Dario Faggioli
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=5701EBC5.6080402@suse.com \
--to=jgross@suse.com \
--cc=JBeulich@suse.com \
--cc=dario.faggioli@citrix.com \
--cc=george.dunlap@eu.citrix.com \
--cc=josh.whitehead@dornerworks.com \
--cc=mengxu@cis.upenn.edu \
--cc=robert.vanvossen@dornerworks.com \
--cc=xen-devel@lists.xenproject.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).