Debugging Continues (possible cam problem)

From: David Jeske <jeske_at_nospam.org>
Date: Mon Jun 26 1995 - 11:39:53 PDT

After digesting large amounts of code, I have come up with the source of
my 4096 byte problem.

For some reason, the second read request issued inside the cam code
always "fails", it reads 0 bytes (count=0) even though xfer_count=4096.

In other words, the first time through "cam_cntuio" (in scsicmds.c) 4096
bytes were read successfully. cam_cntuio then reschedules the second read,
and when cam_cntuio is called again, count=0, so it cleans up and signals
the read as finished.

It only happens on this ONE partition on this ONE drive. The partition
happens to be an extended DOS partition.

Here is the partition table from the second drive as printed from Linux
fdisk:

**********************

Command (m for help): p

Disk /dev/sdb: 64 heads, 32 sectors, 1029 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Boot Begin Start End Blocks Id System
/dev/sdb1 1 1 300 307184 7 OS/2 HPFS
/dev/sdb2 301 301 821 533504 83 Linux native
/dev/sdb3 822 822 842 21504 82 Linux swap
/dev/sdb4 843 843 1029 191488 5 Extended
Partition 4 has different physical/logical endings:
     phys=(1023, 63, 32) logical=(1028, 63, 32)
/dev/sdb5 843 843 1029 191472 6 DOS 16-bit >=32M

******************

/dev/sdb5 is the partition which cam has trouble with.

I'm going to be looking now into why "count" would end up zero on a read,
and in particular why it would happen every time on the SECOND read of a
request for this particular partition. If anyone has any idea or
pointers, they would be appreciated.
Received on Thu Jun 29 18:45:24 1995

This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:27 PDT