Just how good is Solaris realtime? Pretty good. I've been running some tests on a 4 way Opteron box. Running an updated latstat, I decided to copy what the Linux folks have been doing in their world and add a "bit of load" to the mix.
A sample mpstat:
| CPU | minf | mjf | xcal | intr | ithr | csw | icsw | migr | smtx | srw | syscl | usr | sys | wt | idl | ||
| 0 | 0 | 0 | 0 | 1662 | 830 | 1659 | 0 | 0 | 0 | 0 | 830 | 0 | 0 | 0 | 100 | ||
| 1 | 7636 | 4 | 310 | 1657 | 245 | 4759 | 1776 | 248 | 25182 | 26 | 126552 | 33 | 67 | 0 | 0 | ||
| 2 | 9271 | 3 | 156 | 1387 | 56 | 4998 | 1785 | 372 | 27408 | 23 | 153037 | 27 | 73 | 0 | 0 | ||
| 3 | 8816 | 3 | 170 | 1412 | 1 | 4854 | 1788 | 540 | 27938 | 37 | 150544 | 27 | 73 | 0 | 0 |
# uptime
1:45am up 4 day(s), 21:49, 3 users, load average: 3499.27, 3795.80, 3734.16
This is with a full nightly build of Solaris coupled with a background job that throws 240 processes on the system talking through pipes. The background jobs run at CPU priority 0 so they only run when CPU cycles are available. The realtime task is running on CPU 0 in a single CPU processor set with interrupts driven away and waits for a high level timer interrupt. It takes measurements of its progress from receiving the interrupt until it returns to user land. The results are in this postscript file. The best sheet to look at is the last one. This is simply the delta between the time the interrupt was to be delivered and the time the application was running in userspace. This graph is from over 320 million points. The worst is about 30 microseconds and there are roughly 300 points out of the 320 million that are in the range of 13 microseconds to 30 microseconds. The fun part is to understand what's going on in that space. This run will continue for several more days.
The system is a 4 CPU x4200 with 4 disks and 3968 MB of physical memory. Everything is done locally. There is some network traffic from mpstat displays and other things.
More later including details as to the benchmark and what each of the other sheets mean.