cvs commit: src/sys/conf Makefile.sun4v files.sun4v options.sun4v src/sys/sun4v/compile .cvsignore src/sys/sun4v/conf DEFAULTS GENERIC GENERIC.hints MAC Makefile NOTES src/sys/sun4v/include _bus.h _inttypes.h _limits.h _stdint.h _types.h asi.h asm.h ...

John Birrell jb at what-creek.com
Thu Oct 5 00:29:30 PDT 2006


On Thu, Oct 05, 2006 at 06:14:29AM +0000, Kip Macy wrote:
> kmacy       2006-10-05 06:14:29 UTC
> 
>   FreeBSD src repository
> 
>   Added files:
>     sys/conf             Makefile.sun4v files.sun4v options.sun4v 
>     sys/sun4v/compile    .cvsignore 
>     sys/sun4v/conf       DEFAULTS GENERIC GENERIC.hints MAC 
>                          Makefile NOTES 
>     sys/sun4v/include    _bus.h _inttypes.h _limits.h _stdint.h 
>                          _types.h asi.h asm.h asmacros.h atomic.h 
>                          bus.h bus_common.h bus_dma.h 
>                          bus_private.h cache.h ccr.h clock.h cpu.h 
>                          cpufunc.h db_machdep.h elf.h endian.h 
>                          exec.h float.h floatingpoint.h fp.h 
>                          frame.h fsr.h gdb_machdep.h hv_pcivar.h 
>                          hviommu.h hypervisor_api.h 
>                          hypervisorvar.h idprom.h ieee.h ieeefp.h 
>                          in_cksum.h instr.h intr_machdep.h 
>                          iommureg.h iommuvar.h kdb.h kerneldump.h 
>                          ktr.h limits.h lsu.h md_var.h mdesc_bus.h 
>                          mdesc_bus_subr.h memdev.h metadata.h 
>                          mmu.h mutex.h nexusvar.h ofw_bus.h 
>                          ofw_machdep.h ofw_mem.h ofw_nexus.h 
>                          ofw_upa.h param.h pcb.h pcpu.h pmap.h 
>                          pmc_mdep.h proc.h profile.h pstate.h 
>                          ptrace.h reg.h reloc.h resource.h runq.h 
>                          sc_machdep.h setjmp.h sf_buf.h sigframe.h 
>                          signal.h smp.h stdarg.h sun4v_cpufunc.h 
>                          sysarch.h tick.h tlb.h trap.h tsb.h 
>                          tstate.h tte.h tte_hash.h ucontext.h 
>                          upa.h utrap.h varargs.h ver.h vmparam.h 
>                          watch.h wstate.h 
>     sys/sun4v/include/cddl mdesc.h mdesc_impl.h 
>     sys/sun4v/mdesc      mdesc_bus_if.m mdesc_bus_subr.c 
>                          mdesc_diff.c mdesc_findname.c 
>                          mdesc_findnodeprop.c mdesc_fini.c 
>                          mdesc_getbinsize.c mdesc_getgen.c 
>                          mdesc_getpropdata.c mdesc_getpropstr.c 
>                          mdesc_getpropval.c mdesc_init.c 
>                          mdesc_init_intern.c mdesc_nodecount.c 
>                          mdesc_rootnode.c mdesc_scandag.c 
>                          mdesc_subr.c mdesc_vdevfindval.c 
>     sys/sun4v/sun4v      autoconf.c bus_machdep.c clock.c 
>                          counter.c db_disasm.c db_hwwatch.c 
>                          db_interface.c db_trace.c dump_machdep.c 
>                          eeprom.c elf_machdep.c exception.S 
>                          fpemu.c gdb_machdep.c genassym.c hcall.S 
>                          hv_pci.c hvcons.c hviommu.c identcpu.c 
>                          in_cksum.c interrupt.S intr_machdep.c 
>                          iommu.c locore.S machdep.c mem.c 
>                          mp_exception.S mp_locore.S mp_machdep.c 
>                          nexus.c ofw_bus.c ofw_machdep.c pmap.c 
>                          prof_machdep.c rtc.c rwindow.c simdisk.c 
>                          support.S swtch.S sys_machdep.c t1_copy.S 
>                          tick.c tlb.c trap.c trap_trace.S tsb.c 
>                          tte.c tte_hash.c uio_machdep.c 
>                          vm_machdep.c vnex.c wbuf.S 

A couple of things I'll add:

There are a few of us who have been running this code, and while it's not
bug free or a complete port, we need to have it in -current so that changes to
-current take sun4v into account.

The FreeBSD Foundation has sourced 2 T1000 boxes which will allow FreeBSD
developers access to the platform. As a developer group we need to take
advantage of that investment.

There is work to do to implement floating point support.

When self-hosting on local disk on the T2000 (with SATA drives) there is a 
bug which causes a processor to go off into the weeds. To debug this, kmacy
needs someone to donate another SATA drive. Sun hasn't been responsive to
his request for one. 8-( Can anyone help with that?

There is a binutils update required to -current before sun4v will build
out of the box. It seems we have a problem being able to make non-vendor
branch commits to GNU tools just to support building a new arch. This is
a bit disappointing. Surely we should be able to handle taking one or
two files off the vendor branch on the odd occasion we add a significant
new arch!

Thread support is a problem because with KSE in the kernel, signal
delivery on sun4v is a problem. In fact it is such a problem that a
simple buildworld won't complete. When the T1000s are added to the
FreeBSD cluster, there is work required by KSE folks to fix those problems
or a non-KSE solution will be required. This is a major problem.

My personal interest in sun4v is based on the fact that Sun Microsystems
sent me a T2000 with all the bells and whistles in response to my work
on DTrace for FreeBSD. In return I would like to see sun4v supported
nicely in FreeBSD. One good turn deserves another. Sun has been generous
in their support for FreeBSD, so we should return the favour.

--
John Birrell


More information about the cvs-all mailing list