From: George Dunlap <george.dunlap@eu.citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
Dario Faggioli <dario.faggioli@citrix.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
George.Dunlap@citrix.com,
"uma.sharma523@gmail.com" <uma.sharma523@gmail.com>
Subject: Re: [PATCH v2 2/2] sched_credit2.c: runqueue_per_core code
Date: Wed, 18 Mar 2015 16:08:28 +0000 [thread overview]
Message-ID: <5509A2FC.2010501@eu.citrix.com> (raw)
In-Reply-To: <5509AEFF020000780006B465@mail.emea.novell.com>
On 03/18/2015 03:59 PM, Jan Beulich wrote:
>>>> On 18.03.15 at 16:26, <george.dunlap@eu.citrix.com> wrote:
>> In both cases there's a slight risk in using system_state to determine
>> whether to rely on cpu_data[] or not, because there's actually a window
>> for each processor after system_state == SYS_STATE_smp_boot where
>> cpu_data[] is *not* initialized, but it's not obvious from looking at
>> the data itself. If the callback mechanisms ever change order with the
>> cpu_data[] initializations in the future, we risk a situation where
>> credit2 silently regresses to using a single massive runqueue.
>
> But such an ordering change is extremely unlikely, since the
> CPU_STARTING notification specifically tells you that the given
> CPU is now ready for normal use, which includes it having its
> topology related data set up.
I didn't mean so much that CPU_STARTING might change meaning, but that
someone looking only at schedule.c might think that it would make sense
to call alloc_pdata() somewhere else, before cpu_data[] had been
populated. Even if they look at init_pcpu() in credit2, they're
unlikely to know that cpu_to_socket() isn't valid until after
boot_secondary() has happened; and if they try it and boot it,
everything will seem to work perfectly for credit2 -- except that there
will be a single global runqueue.
If you, Dario and I don't happen to catch it -- or don't happen to
remember the exact details of the constraints -- nobody may notice until
a year later.
This is the point of having ASSERTs -- so that we don't have to worry
about remembering and catching all these crazy constraints.
-George
next prev parent reply other threads:[~2015-03-18 16:08 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-13 18:11 [PATCH v2 2/2] sched_credit2.c: runqueue_per_core code Uma Sharma
2015-03-13 18:29 ` Andrew Cooper
2015-03-13 19:13 ` George Dunlap
2015-03-16 12:48 ` Jan Beulich
2015-03-16 12:51 ` George Dunlap
2015-03-16 12:56 ` Jan Beulich
2015-03-16 13:26 ` Dario Faggioli
2015-03-17 18:18 ` Dario Faggioli
2015-03-18 7:56 ` Jan Beulich
2015-03-18 8:53 ` Dario Faggioli
2015-03-18 15:26 ` George Dunlap
2015-03-18 15:59 ` Jan Beulich
2015-03-18 16:08 ` George Dunlap [this message]
2015-03-18 16:30 ` Dario Faggioli
2015-03-18 16:49 ` Dario Faggioli
2015-03-18 17:05 ` George Dunlap
2015-03-19 10:03 ` Dario Faggioli
2015-03-19 10:50 ` Jan Beulich
2015-03-19 11:23 ` Dario Faggioli
2015-03-19 11:40 ` George Dunlap
2015-03-19 12:29 ` Dario Faggioli
2015-03-19 12:35 ` George Dunlap
2015-03-19 13:00 ` Dario Faggioli
2015-03-16 12:45 ` Jan Beulich
2015-03-16 12:49 ` Jan Beulich
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=5509A2FC.2010501@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=Andrew.Cooper3@citrix.com \
--cc=George.Dunlap@citrix.com \
--cc=JBeulich@suse.com \
--cc=dario.faggioli@citrix.com \
--cc=uma.sharma523@gmail.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 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.