Port-macppc archive

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

ATA driver and the clock



I had a problem this last couple of days where I was seeing the HW clock run
backwards, only under heavy (and only particular types of) disk load.

I was seeing this sort of thing in the log:

Jun 15 20:48:41 charm mdnsd: mDNSPlatformRawTime went backwards by 275 ticks; se
tting correction factor to 1462875659
Jun 15 20:49:18 charm mdnsd: mDNSPlatformRawTime went backwards by 503 ticks; se
tting correction factor to 1462876162
Jun 15 20:49:24 charm mdnsd: mDNSPlatformRawTime went backwards by 350 ticks; se
tting correction factor to 1462876512
Jun 15 20:50:41 charm mdnsd: mDNSPlatformRawTime went backwards by 438 ticks; se
tting correction factor to 1462876950
Jun 15 20:52:33 charm /netbsd: wdc0:0:0: lost interrupt
Jun 15 20:52:33 charm /netbsd:  type: ata tc_bcount: 16384 tc_skip: 0
Jun 15 20:52:33 charm /netbsd: wdc0:0:0: lost interrupt
Jun 15 20:52:33 charm /netbsd:  type: ata tc_bcount: 2048 tc_skip: 0
Jun 15 20:52:47 charm /netbsd: wdc0:0:0: lost interrupt
Jun 15 20:52:47 charm /netbsd:  type: ata tc_bcount: 16384 tc_skip: 0
Jun 15 20:52:48 charm mdnsd: mDNSPlatformRawTime went backwards by 315 ticks; se
tting correction factor to 1462877265
Jun 15 20:53:29 charm mdnsd: mDNSPlatformRawTime went backwards by 179 ticks; se
tting correction factor to 1462877444


I also could run "top -s 1" and see the clock "stop" while the disk
load was active.  When the activity stopped, the clock would resume.

I was afraid this was HW, and it was - the ATA cable.

I swapped out the cable, and now the problem is (almost?)
gone.

Me thinks that a bad cable should cause disk errors, and maybe
delays, but mess up the clock and make it run backwards?
Not so much.

The ATA (wd) driver must be turning off interrupts in some brutal
way, and then wandering off to handle (long duration)
errors.

Shame on that driver!

I'm back in business now, but I thought I'd document this.

-dgl-


Home | Main Index | Thread Index | Old Index