Current Status
The sun4v (UltraSPARC-T1) code was removed from -HEAD in May 2011 in (see below). The reason was due to lack of stability somewhere in the VM system, combined with lack of interest from other developers once the initial developer ceased working on it. Because of the latter, the codebase was not keeping up with changes in -HEAD, leading to bitrot.
As of mid-2015 there has been some interest on the mailing lists in picking up sun4v.
The two main difficulties will be:
- getting the existing code back in sync with all the SVN changes to the source tree in the years since the removal
- finishing the existing code
Status as of code removal
The removal happened in two parts. It was disconnected from the build in SVN commit 221869 on 20150514 and then removed completely in SVN commit 221870 also on 20150514.
The version of param.h just previous to the removal was 900037 on 20110513. param.h was not incremented as of the removal.
The last time that the code was built as part of make universe is not yet known, but it is safe to assume that it was some time before the removal.
The last merge of changes into the sun4v tree appears to be SVN revision 221855 of 20110513 affecting vmparam.h. Previous to that the last change to GENERIC was SVN revision 221124 of 20110427. Perhaps we can speculate that sun4v was still being build-tested as of that commit? In any case it might be the best place to start.
As a further hint, you can directly compare sys/sparc64 as of 221124 to sys/sun4v as of 221124. Happy spelunking.
Status as of around 7.0R
(below here are the notes from the original developer)
UltraSPARC-T1 support is functionally complete.
Recent changes:
- tod support added
- dynamic hash resizing
- dynamic tsb resizing
- fix TSO and PCIe support for em on sparc
- cddl licensed hypervisor interface code removed and replaced with bsd licensed versions
- "shutdown -r" and "shutdown -h" now work correctly
- loadable modules now work on large memory systems
- fixups for unaligned loads/stores now work
Current work item:
- Virtual network driver - LDC and mdesc support are in
There are a number of known issues that need to be fixed before release:
- serial port not currently supported
The following is a list of items that I would like to see done by the time 7.0 is released.
Longer-term work for logical domaining support:
- virtual disk driver
- CPU hotplug
- memory hotplug - longer term issue, will not happen by 7.0
Desired platform-specific optimizations / features:
- balance interrupts between cpus
- MSI
- profiling
- dynamic TSB resizing - (not yet enabled)
- superpage support
- optimized copyin/copyout
- optimized bzero / bcopy in libc
- T2 10GigE support
Desired platform-independent optimizations:
- reduce coverage of vm page queue mutex
- remove sched_lock
Nice to have functionality:
- minidumps
- java support