All of lore.kernel.org
 help / color / mirror / Atom feed
From: George Dunlap <George.Dunlap@eu.citrix.com>
To: Julien Grall <julien.grall@linaro.org>
Cc: Keir Fraser <keir@xen.org>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Vijay Kilari <vijay.kilari@gmail.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Prasun Kapoor <Prasun.Kapoor@caviumnetworks.com>,
	Vijaya Kumar K <vijaya.kumar@caviumnetworks.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	Stefano Stabellini <stefano.stabellini@citrix.com>,
	Jan Beulich <JBeulich@suse.com>
Subject: Re: [RFC PATCH v1 01/10] xen/arm: make secondary gic init as notifier call
Date: Wed, 26 Mar 2014 17:22:14 +0000	[thread overview]
Message-ID: <CAFLBxZY+vJ6UHQd_qpAHkt9Vq5qc-NP9VqfqFdB26zz6NUOWqA@mail.gmail.com> (raw)
In-Reply-To: <5332E710.1060105@linaro.org>

On Wed, Mar 26, 2014 at 2:41 PM, Julien Grall <julien.grall@linaro.org> wrote:
> Hello Vijay,
>
> (Adding George for the scheduler part)
>
> On 03/26/2014 11:27 AM, Vijay Kilari wrote:
>> Hi Julien,
>>
>>>>>> @@ -283,7 +283,7 @@ void __cpuinit start_secondary(unsigned long
>>>>>> boot_phys_offset,
>>>>>>
>>>>>>       mmu_init_secondary_cpu();
>>>>>>
>>>>>> -    gic_init_secondary_cpu();
>>>>>> +    notify_cpu_starting(cpuid);
>>>>>
>>>>>
>>>>> Can you explain why it's safe to move notify_cpu_starting earlier?
>>>>>
>>>>     When gic registers a notifier with action as CPU_STARTING, I am
>>>> getting a panic
>>>>     from gic driver because notify_cpu_starting() is called after most of
>>>> the GIC
>>>>     initialization calls as below from start_secondary() are called.
>>>> Especially the issue is coming
>>>>     with init_maintenanc_interrupt(). So I have moved this notifier
>>>> before other GIC initialization
>>>>     calls and since I move notifier only before GIC initialization
>>>> calls it not be a problem.
>>>
>>>
>>> It doesn't explain why it's safe... CPU_STARTING is also used in some place
>>> to initialize internal data structure. Are you sure that theses callbacks
>>> can be called earlier?
>>>
>>
>> The below callback is the only callback that is using CPU_STARTING,
>> IMO it is only initializing pcpu data.
>>
>> static int cpu_credit2_callback(
>>     struct notifier_block *nfb, unsigned long action, void *hcpu)
>> {
>>     unsigned int cpu = (unsigned long)hcpu;
>>     int rc = 0;
>>
>>     switch ( action )
>>     {
>>     case CPU_STARTING:
>>         csched_cpu_starting(cpu);
>>         break;
>>     default:
>>         break;
>>     }
>>
>>     return !rc ? NOTIFY_DONE : notifier_from_errno(rc);
>> }
>>
>> With this patch, notifier is only called just before GIC initialization.
>> So should not be a problem. Let me know your opinion? I am
>> not very familiar with this piece of code.
>
> I think, the sched credit2 initialization code is relying on the sibling
> map (see cpu_to_socket), which is basically a no-op for now on ARM.
>
> You may have to also move setup_cpu_sibling_map(cpuid) earlier.
>
> I don't know enough the scheduler to say it's safe to move earlier.
> George any opinion?

Well it definitely breaks the interface of what CPU_STARTING means
defined in cpu.h:

/* CPU_STARTING: CPU nearly online. Runs on new CPU, irqs still disabled. */
#define CPU_STARTING     (0x0003 | NOTIFY_FORWARD)

I'm not sure exactly what you're trying to accomplish by running this
as a notifier instead of just calling it directly, but I think using
CPU_STARTING it not what you want.  In any case, you'd need to change
the definition in generic code, and in the x86 code if that's what you
wanted to do.

 -George

  reply	other threads:[~2014-03-26 17:22 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-19 14:17 [RFC PATCH v1 00/10] xen/arm: Add GICv3 support vijay.kilari
2014-03-19 14:17 ` [RFC PATCH v1 01/10] xen/arm: make secondary gic init as notifier call vijay.kilari
2014-03-20 12:48   ` Julien Grall
2014-03-22  8:16     ` Vijay Kilari
2014-03-23 14:38       ` Julien Grall
2014-03-26 11:27         ` Vijay Kilari
2014-03-26 14:41           ` Julien Grall
2014-03-26 17:22             ` George Dunlap [this message]
2014-03-21 17:15   ` Ian Campbell
2014-03-22  8:32     ` Vijay Kilari
2014-03-22 13:54       ` Julien Grall
2014-03-24 10:53         ` Ian Campbell
2014-03-19 14:17 ` [RFC PATCH v1 02/10] xen/arm: register mmio handler at runtime vijay.kilari
2014-03-20 13:18   ` Julien Grall
2014-03-21 13:19     ` Andrii Tseglytskyi
2014-03-21 17:17   ` Ian Campbell
2014-03-21 17:23     ` Julien Grall
2014-03-26 12:29       ` Vijay Kilari
2014-03-26 14:47         ` Julien Grall
2014-03-27  5:40           ` Vijay Kilari
2014-03-27 15:02             ` Julien Grall
2014-04-01  9:34               ` Vijay Kilari
2014-04-01 11:00                 ` Julien Grall
2014-04-01 12:32                   ` Vijay Kilari
2014-04-01 12:44                     ` Ian Campbell
2014-04-01 12:51                     ` Julien Grall
2014-04-01 13:05                       ` Vijay Kilari
2014-04-01 13:56                         ` Julien Grall
2014-03-19 14:17 ` [RFC PATCH v1 03/10] xen/arm: move vgic data to vgic driver vijay.kilari
2014-03-20 13:51   ` Julien Grall
2014-03-21 17:23     ` Ian Campbell
2014-03-22  9:20       ` Vijay Kilari
2014-03-24 10:57         ` Ian Campbell
2014-03-26 11:44           ` Vijay Kilari
2014-03-26 12:00             ` Ian Campbell
2014-03-26 12:42               ` Vijay Kilari
2014-03-22  9:17     ` Vijay Kilari
2014-03-20 17:14   ` Stefano Stabellini
2014-03-20 17:56     ` Julien Grall
2014-03-20 18:11       ` Stefano Stabellini
2014-03-21  9:22         ` Ian Campbell
2014-03-19 14:17 ` [RFC PATCH v1 04/10] arm/xen: move gic save and restore registers to gic driver vijay.kilari
2014-03-20 15:22   ` Julien Grall
2014-03-21 17:26     ` Ian Campbell
2014-03-22  9:22     ` Vijay Kilari
2014-03-20 17:23   ` Stefano Stabellini
2014-03-21 17:28     ` Ian Campbell
2014-03-22  9:27     ` Vijay Kilari
2014-03-19 14:17 ` [RFC PATCH v1 05/10] xen/arm: move gic definitions to seperate file vijay.kilari
2014-03-20 15:13   ` Julien Grall
2014-03-19 14:17 ` [RFC PATCH v1 06/10] xen/arm: split gic driver into generic and gicv2 driver vijay.kilari
2014-03-20 11:55   ` Stefano Stabellini
2014-03-22  9:32     ` Vijay Kilari
2014-03-23 14:43       ` Julien Grall
2014-03-24 11:01         ` Ian Campbell
2014-03-20 16:02   ` Julien Grall
2014-03-21 17:32     ` Ian Campbell
2014-03-21 17:37       ` Julien Grall
2014-03-22  9:40     ` Vijay Kilari
2014-03-23 15:05       ` Julien Grall
2014-03-20 16:39   ` Stefano Stabellini
2014-03-21 17:38   ` Ian Campbell
2014-03-22  9:59     ` Vijay Kilari
2014-03-24 11:06       ` Ian Campbell
2014-03-19 14:17 ` [RFC PATCH v1 07/10] xen/arm: split vgic into generic and GIC v2 specific drivers vijay.kilari
2014-03-19 14:17 ` [RFC PATCH v1 08/10] xen/arm: Add support for GIC v3 vijay.kilari
2014-03-20 12:37   ` Stefano Stabellini
2014-03-22 10:07     ` Vijay Kilari
2014-03-24 11:28       ` Ian Campbell
2014-03-24 17:01       ` Stefano Stabellini
2014-03-26 13:16         ` Vijay Kilari
2014-03-26 17:22           ` Stefano Stabellini
2014-03-20 16:40   ` Julien Grall
2014-03-22 10:21     ` Vijay Kilari
2014-03-23 14:49       ` Julien Grall
2014-03-24 11:26         ` Ian Campbell
2014-03-24 11:50           ` Julien Grall
2014-03-24 17:02       ` Stefano Stabellini
2014-03-19 14:17 ` [RFC PATCH v1 09/10] xen/arm: Add vgic " vijay.kilari
2014-03-20 12:38   ` Stefano Stabellini
2014-03-19 14:17 ` [RFC PATCH v1 10/10] xen/arm: GICv3 device tree parsing vijay.kilari
2014-03-20 16:08   ` Julien Grall
2014-03-22 10:30     ` Vijay Kilari
2014-03-24 11:43       ` Ian Campbell
2014-03-24 12:03         ` Julien Grall
2014-03-24 12:07           ` Ian Campbell
2014-03-24 12:08           ` Julien Grall
2014-03-24 17:34             ` Stefano Stabellini
2014-03-24 18:00               ` Julien Grall
2014-03-25 11:04                 ` Stefano Stabellini
2014-03-25 12:33                   ` Julien Grall
2014-03-25 12:34                     ` Julien Grall
2014-04-01 12:59                     ` Ian Campbell
2014-04-01 13:07                       ` Julien Grall
2014-03-20 11:55 ` [RFC PATCH v1 00/10] xen/arm: Add GICv3 support Stefano Stabellini

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=CAFLBxZY+vJ6UHQd_qpAHkt9Vq5qc-NP9VqfqFdB26zz6NUOWqA@mail.gmail.com \
    --to=george.dunlap@eu.citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=Prasun.Kapoor@caviumnetworks.com \
    --cc=julien.grall@linaro.org \
    --cc=keir@xen.org \
    --cc=stefano.stabellini@citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=vijay.kilari@gmail.com \
    --cc=vijaya.kumar@caviumnetworks.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.