Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Apr 2010 10:24:09 +0530
From:      "C. Jayachandran" <c.jayachandran@gmail.com>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        freebsd-mips@freebsd.org
Subject:   Re: SMP support for XLR processors.
Message-ID:  <l2o98a59be81004202154hf628435fle2727d27ad2d8b69@mail.gmail.com>
In-Reply-To: <20100420.155633.1075901050443800973.imp@bsdimp.com>
References:  <w2z98a59be81004171540t2f0d5193nca2ec9e2540502e2@mail.gmail.com> <l2tdffe84831004201436nf3e9fb18q652ccb3142e5e4f7@mail.gmail.com> <20100420.155633.1075901050443800973.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 21, 2010 at 3:26 AM, M. Warner Losh <imp@bsdimp.com> wrote:
> In message: <l2tdffe84831004201436nf3e9fb18q652ccb3142e5e4f7@mail.gmail.c=
om>
> =A0 =A0 =A0 =A0 =A0 =A0Neel Natu <neelnatu@gmail.com> writes:
> : Hi JC,
> :
> : On Sat, Apr 17, 2010 at 3:40 PM, C. Jayachandran
> : <c.jayachandran@gmail.com> wrote:
> : > I've a set of initial patches to enable SMP for RMI processors. It
> : > comes up in multi-user with 32 CPUs. =A0I could do buildworld before =
I
> : > updated to HEAD - with head there is a hang during buildworld which
> : > I'm looking at, but I think the initial work can be checked in.
> : >
> : > Neel, can you have a look at the first two patches - one is to enable
> : > ULE scheduler and the second one is to move platform_init_ap to
> : > slightly later in the initialization sequence.
> : >
> : > The patches are :
> : > 1. mips-ule-support.patch
> : > - Enable ULE scheduler for MIPS
> : >
> : > 2. mips-smp-move-platform.patch
> : > - We need a hook to setup message ring and its interrupts, we use
> : > platform_init_ap now, and move it be called later for XLR
> : >
> :
> : I would like to see us move away from #ifdef TARGET_FOO in files under
> : mips/mips as much as possible. I think that is achieved easily in this
> : instance.
> :
> : How about we create a function platform_ap_enable_interrupts() that is
> : called from smp_init_secondary()? This function will be defined for
> : each platform.
> :
> : In the common case this function will simply call
> : mips_ap_enable_interrupts() that encapsulates the logic that we
> : currently have to setup interrupt masks for clock and ipi interrupts
> : in the status register. In the XLR case however it can do something
> : different.
> :
> : Ditto about the #ifdef TARGET_XLR_XLS in mpboot.S. You can simply have
> : an empty platform_init_ap() for XLR.
>
> In general, I'd love to see the TARGET_xxx stuff die entirely in the
> mips tree. =A0That's a hack inherited from the Octeon port. =A0There's
> other mechanisms that are better suited for this stuff...

Agree with you and Neel on this here.  That explains why status
register handling for Octeon is the most common ifdef :)

JC.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?l2o98a59be81004202154hf628435fle2727d27ad2d8b69>