All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: GP Orcullo <kinsamanka@gmail.com>
Cc: "xenomai@xenomai.org" <xenomai@xenomai.org>
Subject: Re: [Xenomai] Boot failure when CONFIG_XENOMAI is enabled
Date: Sat, 28 Mar 2015 15:56:28 +0100	[thread overview]
Message-ID: <20150328145628.GF25831@hermes.click-hack.org> (raw)
In-Reply-To: <20150328135303.GE25831@hermes.click-hack.org>

On Sat, Mar 28, 2015 at 02:53:03PM +0100, Gilles Chanteperdrix wrote:
> On Sat, Mar 28, 2015 at 08:27:33PM +0800, GP Orcullo wrote:
> > On Sat, Mar 28, 2015 at 7:36 PM, Gilles Chanteperdrix
> > <gilles.chanteperdrix@xenomai.org> wrote:
> > > On Sat, Mar 28, 2015 at 10:51:30AM +0100, Philippe Gerum wrote:
> > >> On 03/28/2015 10:05 AM, GP Orcullo wrote:
> > >> > On Fri, Mar 27, 2015 at 8:12 PM, GP Orcullo <kinsamanka@gmail.com> wrote:
> > >> >> On Fri, Mar 27, 2015 at 6:19 PM, GP Orcullo <kinsamanka@gmail.com> wrote:
> > >> >>> What happens in between the clocksource switch and head domain registration?
> > >> >>>
> > >> >>> [    0.090129] DMA: preallocated 4096 KiB pool for atomic coherent
> > >> >>> allocations
> > >> >>> [    0.095333] Switching to clocksource ipipe_tsc
> > >> >>> [    0.122397] I-pipe: head domain Xenomai registered.
> > >> >>> [    0.124618] Xenomai: hal/arm started.
> > >> >>>
> > >> >>> I'm trying to trace the code to find out where it stops. I tried
> > >> >>> adding printk to to the set and request functions and the code never
> > >> >>> runs when CONFIG_SMP is enabled.
> > >> >>>
> > >> >>> Thanks,
> > >> >>>
> > >> >>> GP Orcullo
> > >> >>
> > >> >> It gets stuck on the call to ipipe_critical_enter:
> > >> >> http://git.xenomai.org/ipipe-gch.git/tree/kernel/ipipe/timer.c?id=ipipe-core-3.10.32-arm-7#n279
> > >> >>
> > >> >> Which then gets stuck on ipipe_send_ipi:
> > >> >> http://git.xenomai.org/ipipe-gch.git/tree/kernel/ipipe/core.c?id=ipipe-core-3.10.32-arm-7#n1533
> > >> >>
> > >> >
> > >> > I've traced the issue to the ipipe_processor_id() function. It returns
> > >> > the value 512 for processor 0. This value comes from cpu node property
> > >> > of the DT file.
> > >> >
> > >> > Changing ipipe_processor_id() to return 0 instead of 512 allows the
> > >> > kernel to boot but it fails the switchtest regression test.
> > >> >
> > >> > Changing the cpu0 reg value on the DT file allows the kernel to boot
> > >> > and pass all the xenomai regression tests but it generates the
> > >> > following warning at boot:
> > >>
> > >> No, this property for armv7 must match MPIDR[23:0], i.e. the physical id
> > >> of the core.
> > >>
> > >> > What's the proper way of fixing this?
> > >> >
> > >>
> > >> By fixing ipipe_processor_id() in the CONFIG_LEGACY case, it's broken.
> > >> It assumes __cpu_logical_map[] is a hw->logical map, but it is actually
> > >> the opposite.
> > >>
> > >> We may have been lucky until now because the physical mapping seems to
> > >> have always matched the logical order on the SMP SoCs people used with
> > >> Xenomai so far, it looks like your A5 core does not follow this order.
> > >
> > > No, cpu_logical_map works both ways, it simply exchanges 0 with
> > > whatever number the boot cpu has
> > > so, since cpu_logical_map[0] == 512 and cpu_logical_map[512] == 0
> > > it should work both ways.
> > > At least, that was true before DT. Now, I find 512 a bit high, are
> > > you sure cpu_logical_map[] is large enough ? Or is it even
> > > initialized with DT ?
> > >
> > > --
> > >                                             Gilles.
> > 
> > cpu_logical_map[] contains these values: {512,1,2,3}
> > 
> > This is the cpu entry:
> > https://github.com/hardkernel/linux/blob/odroidc-3.10.y/arch/arm/boot/dts/meson8b_odroidc.dts#L9-L32
> > 
> > Changing the reg values alters the contents of cpu_logical_map[].
> 
> Actually, the code as it existed should either have worked, or bug
> because 512 is larger than __cpu_logical_map size (the largest of 16
> and NR_CPUS).

This is bugging me, if the kernel does not print a bug in
smp_setup_processor_id, it means that NR_CPUS is sufficiently large,
so larger than 512. How much is the compilation constant
CONFIG_NR_CPUS in your kernel configuration ?

-- 
					    Gilles.


  reply	other threads:[~2015-03-28 14:56 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-18 14:11 [Xenomai] Boot failure when CONFIG_XENOMAI is enabled GP Orcullo
2015-03-18 14:21 ` Gilles Chanteperdrix
2015-03-18 14:48   ` GP Orcullo
2015-03-18 14:56     ` Gilles Chanteperdrix
2015-03-25 14:48       ` GP Orcullo
2015-03-25 14:57         ` Gilles Chanteperdrix
2015-03-25 15:25           ` GP Orcullo
2015-03-25 16:08             ` Gilles Chanteperdrix
2015-03-25 23:44               ` GP Orcullo
2015-03-27 10:19                 ` GP Orcullo
2015-03-27 12:12                   ` GP Orcullo
2015-03-28  9:05                     ` GP Orcullo
2015-03-28  9:51                       ` Philippe Gerum
2015-03-28 11:36                         ` Gilles Chanteperdrix
2015-03-28 12:27                           ` GP Orcullo
2015-03-28 13:06                             ` Gilles Chanteperdrix
2015-03-28 13:12                               ` Gilles Chanteperdrix
2015-03-28 13:22                                 ` Gilles Chanteperdrix
2015-03-28 13:37                                   ` Gilles Chanteperdrix
2015-03-28 15:20                                     ` GP Orcullo
2015-03-28 17:23                                       ` Gilles Chanteperdrix
2015-03-28 19:14                                         ` Gilles Chanteperdrix
2015-03-28 13:53                             ` Gilles Chanteperdrix
2015-03-28 14:56                               ` Gilles Chanteperdrix [this message]
2015-03-28 15:17                                 ` GP Orcullo
2015-03-28 15:19                                   ` Gilles Chanteperdrix
2015-03-28 15:56                                     ` GP Orcullo
2015-03-28 16:02                                       ` Gilles Chanteperdrix
2015-03-28 18:59                             ` Gilles Chanteperdrix
2015-03-28 22:38                               ` GP Orcullo
2015-03-29 11:06                                 ` Gilles Chanteperdrix
2015-03-29 11:59                                   ` GP Orcullo
2015-03-29 12:02                                     ` Gilles Chanteperdrix
2015-03-29 12:09                                       ` Gilles Chanteperdrix
2015-03-29 12:38                                       ` GP Orcullo
2015-03-29 12:44                                         ` Gilles Chanteperdrix
2015-03-29 12:56                                           ` GP Orcullo
2015-03-30 15:21                                             ` GP Orcullo
2015-03-30 15:28                                               ` Gilles Chanteperdrix
2015-04-10 20:08                                           ` Henry Bausley
2015-04-10 21:33                                             ` Gilles Chanteperdrix
2015-04-10 21:39                                               ` Gilles Chanteperdrix
2015-03-29 12:18                                   ` Gilles Chanteperdrix
2015-03-28 12:31                           ` Philippe Gerum
2015-03-28 15:05                             ` Gilles Chanteperdrix
2015-03-28 17:58                               ` Philippe Gerum
2015-03-28 18:08                                 ` Philippe Gerum
2015-03-28 22:29                                   ` GP Orcullo
2015-03-28 18:10                                 ` Gilles Chanteperdrix
2015-03-28 18:18                                   ` Philippe Gerum
2015-03-28 18:28                                     ` Gilles Chanteperdrix

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=20150328145628.GF25831@hermes.click-hack.org \
    --to=gilles.chanteperdrix@xenomai.org \
    --cc=kinsamanka@gmail.com \
    --cc=xenomai@xenomai.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.