Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

NetBSD-7 %stick support on UltraSPARC IIe (Sun Fire V100)



I installed NetBSD 7.1 RC1 on a Sun Fire V100 (UltraSPARC-IIe CPU) and was happy to see %stick support for that CPU - I’ve enjoyed good NTP timekeeping on Sun Fire V240 and V125 (both UltraSPARC-IIIi CPU). However, it looks like it’s broken. On the exact same hardware, NetBSD-6 did this:

> timecounter: Timecounters tick every 10.000 msec
> mainbus0 (root): SUNW,UltraAX-i2 (Sun Fire V100): hostid XXXXXXXX
> cpu0 at mainbus0: SUNW,UltraSPARC-IIe @ 500 MHz, UPA id 0
> cpu0: 16K instruction (32 b/l), 16K data (32 b/l), 256K external (64 b/l)
> […]
> timecounter: Timecounters tick every 10.000 msec
> timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
> timecounter: Timecounter "tick-counter" frequency 500000000 Hz quality 100
> No counter-timer -- using %tick at 500MHz as system clock.

and NetBSD-7 RC1 did this:

> timecounter: Timecounters tick every 10.000 msec
> mainbus0 (root): SUNW,UltraAX-i2 (Sun Fire V100): hostid XXXXXXXX
> cpu0 at mainbus0: SUNW,UltraSPARC-IIe @ 500 MHz, CPU id 0
> cpu0: manuf 17, impl 13, mask 14
> cpu0: system tick frequency 5.555 MHz
> cpu0: 16K instruction (32 b/l), 16K data (32 b/l), 256K external (64 b/l)
> […]
> timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
> timecounter: Timecounter "tick-counter" frequency 500000000 Hz quality 100
> timecounter: Timecounter "stick-counter" frequency 5555555 Hz quality 200
> No counter-timer -- using STICK at 5.555MHz as system clock.

The result with NTP on NetBSD 7.1 RC1 was seeing:

> Jan 29 06:26:30 secondary ntpd[638]: frequency error 501 PPM exceeds tolerance 500 PPM


The timing was awful according to the ntpq(1) billboard - jittery jumping around. Something’s really wrong. So I reverted the kernel choice of stick-counter to tick-counter with sysctl(8) thusly:

> kern.timecounter.choice = stick-counter(q=200, f=5555555 Hz) tick-counter(q=100, f=500000000 Hz) clockinterrupt(q=0, f=100 Hz) dummy(q=-1000000, f=1000000 Hz)
> kern.timecounter.hardware = tick-counter
> kern.timecounter.timestepwarnings = 1


and now this system’s timekeeping is back to its previous netbsd-6 state: acceptable, but not as good as the UltraSPARC-IIIi systems with working %stick support.

Any ideas what’s going on here? Was the UltraSPARC-IIe stick register support tested before commit?

	curious,

	Erik Fair




Home | Main Index | Thread Index | Old Index