time for bed.
By timatworkhomeandinbetween on Apr 06, 2005
We have visitors as it is the Easter school break, I hope the
recycling bin is big enough for all the wine bottles.
I discovered that my father did his Sapper basic training in the army camp that was flattened to make our campus
by Hawley Lake - small world.
I worked out how to rip (as i think the young folks say these days) from a cd using cdrw and then convert that wav file into mp3 using lame from http://www.mp3dev.org/ then just mount the mp3 player and cp the mp3's onto it - fab.
Gosh it is busy, I much prefer that to quiet periods. Apart from the normal boring escalations I have couple of interesting ones..
- An empty directory that rmdir can't remove, truss shows rmdir() failing with EEXISTS as theerrno , just as though the directory wasn't empty, ls -ali shows that the inodes are unique (so no hard links) but the link count on this empty directory is > 2. So how is this directory manipulated? sftp-server! so that is a file transfer protocol over ssh with a ftp like command line. As it was being run as root the rm implementation in sftp-server just applies unlink() to whatever it is told too, its rmdir implementation uses rmdir() to remove directories. To protect against erring clients/users I logged a bug against the sftp-server Sun ships in solaris 10 so that it will check if the target of an rm command is a directory and fail if it is.
- A machine with pcisch host/pci bridge was showing one cpu taking 200k interrupts/sec. mpstat shows the interrupts in the "intr" column which counts all interrupts and not in the "ithr" column where interrupts at a pil < 10 are recorded. lockstat profiling shows nothing on that cpu apart from some interesting latency issues with the level 14 profiling interrupt. But other cpus seem to have a lot of stacks in pci_cdma_sync(). The new dma sync mechanism bites back, scarily in modern computers dma's can finish before the data really arrives so device driver writers must use ddi_dma_sync() to synchronise things. The new hi-performance mechansim relies on the host bridge having a rule that all outstanding dma must be completed before an interrupt can be asserted, so the ddi_dma_sync() call makes the pcisch chip send a level 14 interrupt for every ddi_dma_sync() call. The interrupt rate can be very high but the handler is very quick so causes little load but many tools that watch systems find the interrupt numbers disconcerting and trigger alarms...
- truss with the -d and -D options record the times both
absolute and deltas when events happen, these events are usually the return from syscalls so the delta
time reported includes userland processing before the current syscall
as well as the time in the syscall. One of the little published but
very important changes in solaris 10 is to introduce the -E flag which times the syscall from
start to finish so truss -d -D -E -fl
will be very useful, as it will allow us to differentiate user and
system time .
In Between.15 miles in the smart as it was raining heavily
15 miles on the bike, kosheen on the mp3 ,but it was very cold - numb feet both ways.