Port-arm archive

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

Re: strange ld(4) behavior when reading off end of disk

gdt%lexort.com@localhost (Greg Troxel) writes:

>Are you saying this is a bug in my particular uSD card, basically that
>the kernel is doing a valid IO operation and the card is incorrectly
>handling it?  That is how it is seeming to me now that I have looked in
>more detail.

Since I can easily repeat it, I doubt it's a bug or at least it would be
very widespread. No, I think the sdmmc driver fails to handle an edge
case correctly.

>  [     1.718247] ld0: 30436 MB, 7729 cyl, 128 head, 63 sec, 512 bytes/sect x 62333952 sectors

>  [ 1385560.114941] ld0c: error reading fsbn 62333824 of 62333824-62333951 (ld0 bn 62333824; cn 30436 tn 28 sn 0), retrying

You see that this is the read of the last block (and some before it).

I think the read-multiple command apparently falls over the edge before
being stopped and results in an error. I'm not sure if that error can
be avoided, but maybe it can be identified and ignored). The alternative is
to issue a series of single block I/O commands whenever the last block is
part of the transaction.

                                Michael van Elst
Internet: mlelstv%serpens.de@localhost
                                "A potential Snark may lurk in every tree."

Home | Main Index | Thread Index | Old Index