Port-alpha archive

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

Re: Possible IDE corruption bug?



I do know that the driver for onboard ata on webbrick and slate works
more and more reliably as you regress the OS release versions.  At
version 8 is it almost useable.  With 10 it is nearly unuseable and
with 11 it is completely unuseable.

The driver hasn't changed, but structural changes in the operating
system alter its timing, exacerbating race conditions which existed
prior but with more benign symptoms.

The worlds fastest single-chip processor has been running PIO mode 4
with errors as below, for decades.

Over the course of time NetBSD has slowly foreclosed the onboard ATA
controllers, driving users to SCSI or nothing. 

Other machines, TSO machines like Sparc and Intel work fine with this
chip.  

The fellow asked for help and I have been down his road before.  I can
save him four years of forensic detective work.

The Driver is broken and has been since day one.

[   8.4604230] wd0 at atabus0 drive 0
[   8.5004605] wd0: <SanDisk SD8SBAT032G1122>
[   8.5483162] wd0: 30533 MB, 62037 cyl, 16 head, 63 sec, 512
bytes/sect x 62533296 sectors
[  23.6411849] stray isa irq 15
[  43.6745069] atapibus0 at atabus1: 2 targets
[  43.7227337] stray isa irq 15
[  43.7663041] cd0 at atapibus0 drive 0: <COMPAQ  CDR-8435, , 0013>
cdrom removable
[  43.8659143] wd1 at atabus2 drive 0
[  43.9050584] wd1: <Samsung SSD 870 EVO 1TB>
[  43.9539408] wd1: 931 GB, 1938021 cyl, 16 head, 63 sec, 512
bytes/sect x 1953525168 sectors
[  44.0553721] swwdog0: software watchdog initialized
[  44.1120140] wd0: no disk label
[  44.1472905] wd0: no disk label
[  44.1836936] wd0: excessive DMA errors - 4 in last 3 transfers
[  44.2523360] wd0c: error reading fsbn 32 of 32-33 (wd0 bn 32; cn 0 tn
0 sn 32), xfer 38, retry 0
[  44.2523360] wd0: (aborted command, interface CRC error)
[  45.4206099] wd0c: error reading fsbn 32 of 32-33 (wd0 bn 32; cn 0 tn
0 sn 32), xfer 38, retry 1
[  45.4206099] wd0: (aborted command, interface CRC error)
[  46.0836996] wd0c: error reading fsbn 32 of 32-33 (wd0 bn 32; cn 0 tn
0 sn 32), xfer 38, retry 2
[  46.0836996] wd0: (aborted command, interface CRC error)
[  46.7467893] wd0c: error reading fsbn 32 of 32-33 (wd0 bn 32; cn 0 tn
0 sn 32), xfer 38, retry 3
[  46.7467893] wd0: (aborted command, interface CRC error)
[  47.4098787] wd0: soft error (corrected) xfer 38
[  47.4675010] WARNING: 1 error while detecting hardware; check system
log.
[  47.5456227] wd0c: error reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0),
xfer 38, retry 0
[  47.5456227] wd0: (aborted command, interface CRC error)
[  48.1979688] wd0c: error reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0),
xfer 38, retry 1
[  48.1979688] wd0: (aborted command, interface CRC error)
[  48.8483630] wd0c: error reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0),
xfer 38, retry 2
[  48.8483630] wd0: (aborted command, interface CRC error)
[  49.4987572] wd0: soft error (corrected) xfer 38
[  49.5510686] wd0: no disk label
[  49.5874723] root on wd0a dumps on wd0b
[  49.6321942] wd0: no disk label

This is not normal, and has existed through decades of reports from us
about it, and the above is a modern representation of the results of
that relationship.

I didn't tell the fellow to call anyone, just told him it was broken
and that in all likelihood he is not, at this late juncture especially,
going to be the one to convince userland of that.

What I did tell him is that he can use the Hardware and firmware to get
the Kernel into memory and then he can use a driver that does work, in
this case the Sil3124 driver.  I suggested he regress to a much earlier
version of kernel, which would help him, and would help anyone
diagnosing the driver (as though it would do any good to report the
findings).

I could point to specifics: Those 'stray interrupts' can be created
only one way, unfenced io on a relaxed memory model.  Another example
is NEC USB.  That works great on 10.1 until there is ANY degradation,
any need for retries or handshaking.  To test that, try isochronous IO.
The driver will eat itself and you can watch.

Mechanical sympathy is utterly lacking and at the heart of the problems
I've explored on three apposite platforms.  Indivitual register writes
and status requests count as IO...


These problems are similar on PARISC, FX970, and Alpha ev6.  They all
have something in common and it isn't that we are stupid.

best,
jeff



On Tue, 2026-10-27 at 06:20 -0400, Jason Thorpe wrote:
> 
> > On Oct 27, 2026, at 12:57 AM, Jeffrey S. Worley
> > <technoid6502%gmail.com@localhost> wrote:
> > 
> > The onboard ata driver is broken on NetBSD 11.  It is moribund on
> > 10.1
> > and below.  It is unfenced, Alpha requires memory barriers for
> > ordered
> > IO, the coder did not get that memo.
> 
> While a bug in the driver may or may certainly exist, you might want
> to take a few minutes to understand how the driver abstractions in
> NetBSD work before making such confident-yet-false statements.
> 
> -- thorpej


Home | Main Index | Thread Index | Old Index