Date: Tue, 20 Apr 2010 15:56:33 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: neelnatu@gmail.com Cc: freebsd-mips@FreeBSD.org Subject: Re: SMP support for XLR processors. Message-ID: <20100420.155633.1075901050443800973.imp@bsdimp.com> In-Reply-To: <l2tdffe84831004201436nf3e9fb18q652ccb3142e5e4f7@mail.gmail.com> References: <w2z98a59be81004171540t2f0d5193nca2ec9e2540502e2@mail.gmail.com> <l2tdffe84831004201436nf3e9fb18q652ccb3142e5e4f7@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <l2tdffe84831004201436nf3e9fb18q652ccb3142e5e4f7@mail.gmail= .com> Neel 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 befor= e 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 enab= le : > 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 unde= r : mips/mips as much as possible. I think that is achieved easily in thi= s : instance. : = : How about we create a function platform_ap_enable_interrupts() that i= s : 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 hav= e : an empty platform_init_ap() for XLR. In general, I'd love to see the TARGET_xxx stuff die entirely in the mips tree. That's a hack inherited from the Octeon port. There's other mechanisms that are better suited for this stuff... Warner : best : Neel : = : > 3. rmi-prid.patch : > Add RMI processor ID prints - right now it prints unknown processor= .= : > : > 4. rmi-pcib-fix.patch : > XLR pci bridge should be off the IODI bus, currently it is off the : > nexus bus which will cause issue when bus_setup_intr on nexus is : > called : > : > 5. cleanup-reorg-cpuid-rge-kx.patch : > This set has a many changes rolled up: : > =A0- clean up rge driver, remove unused code paths and commented co= de : > (long way to go still) : > =A0- xlr_cpu_id(), xlr_core_id() and xlr_thr_id() updated and usage= updated : > =A0- fix a bug - we cannot use MIPS_PHYS_TO_KSEG0 on physical addre= sses : > here, I have made changes for using XKPHYS to do the same process. : > =A0- the KX bit is enabled and interrupts are disabled before the : > physical memory is read, to avoid the KX bit setting from affecting= : > other code. : > - move message ring code to on_chip.c from xlr_machdep.c, now all : > message ring code is in on_chip.c : > : > 6. rmi-xlr-smp.patch : > SMP Support for XLR : > - mpwait.S added to get the other CPUs out of bootloader code at st= artup. : > - SMP platform related functions. : > - disable shared TLB code for SMP - since threads have different ma= ppings. : > : > The patches are also available at : > http://sites.google.com/site/cjayachandran/files : > : > Enabling all 32 threads will need a minor fix in the SMP code, see = the : > patch subr_smp-fix.patch at the same place. : > : > Regards, : > JC. : > : _______________________________________________ : freebsd-mips@freebsd.org mailing list : http://lists.freebsd.org/mailman/listinfo/freebsd-mips : To unsubscribe, send any mail to "freebsd-mips-unsubscribe@freebsd.or= g" : = : =
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100420.155633.1075901050443800973.imp>