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>