Re: can't access LUN >2TB with aic7xxx, Infortrend EonStor and 2.6.31-rc1

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

 



On Mon, 2009-06-29 at 15:08 +0200, Tomasz Torcz wrote:
> Hello,
> 
>   recently I've acquired Infortrend EonStor A16U-G2421 array
> with 16x 500GB SATA drives inside. It is connected via:
> 04:00.0 SCSI storage controller: Adaptec AHA-2940U2/U2W
> to host running Fedora 12 with following kernel:
> 2.6.31-0.33.rc1.git2.fc12.x86_64
> 
>   When I export LUN >2TB from array I got following errors:
> 
> scsi 5:0:0:1: Direct-Access     VW       VRU1610          347G PQ: 0 ANSI: 5
> scsi target5:0:0: FAST-40 WIDE SCSI 80.0 MB/s ST (25 ns, offset 127)
> scsi5:A:0:1: Tagged Queuing enabled.  Depth 4
> sd 5:0:0:1: Attached scsi generic sg3 type 0
> sd 5:0:0:1: [sdd] READ CAPACITY(16) failed
> sd 5:0:0:1: [sdd] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
> sd 5:0:0:1: [sdd] Sense not available.
> sd 5:0:0:1: [sdd] 4294967296 512-byte logical blocks: (2.19 TB/2.00 TiB)
> sd 5:0:0:1: [sdd] Write Protect is off
> sd 5:0:0:1: [sdd] Mode Sense: 9b 00 00 08
> sd 5:0:0:1: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
> sd 5:0:0:1: [sdd] READ CAPACITY(16) failed
> sd 5:0:0:1: [sdd] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
> sd 5:0:0:1: [sdd] Sense not available.
>  sdd: unknown partition table
> sd 5:0:0:1: [sdd] READ CAPACITY(16) failed
> sd 5:0:0:1: [sdd] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
> sd 5:0:0:1: [sdd] Sense not available.
> sd 5:0:0:1: [sdd] Attached SCSI disk
> 
>   According to manufacturer, this array supports LUNs up to 64TB, 
> although >2TB LUNs require enigmatic ,,support from OS side''.
> I was under impression that aic7xxx supports them, but it seems
> not true. What can I tweak on the Linux side to use 6TB volumes?

Both aic7xxx and aic79xx should support up to 32 byte CDBs, but no-one's
actually bothered to inform the kernel of this.  The attached patch will
do this.

There's a problem for you in that you have an aic7xxx and they use a
different SCB for >12 byte cdbs, so they have a separate code path,
which has obviously never been tested ... so don't try this with data
you care about.

James

----

diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
index 75b2331..e36d053 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.c
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
@@ -1241,6 +1241,7 @@ ahd_linux_register_host(struct ahd_softc *ahd, struct scsi_host_template *templa
 	host->max_lun = AHD_NUM_LUNS;
 	host->max_channel = 0;
 	host->sg_tablesize = AHD_NSEG;
+	host->max_cmd_len = 32;
 	ahd_lock(ahd, &s);
 	ahd_set_unit(ahd, ahd_linux_unit++);
 	ahd_unlock(ahd, &s);
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c
index fd2b978..2d069de 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_osm.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c
@@ -1115,6 +1115,7 @@ ahc_linux_register_host(struct ahc_softc *ahc, struct scsi_host_template *templa
 	host->max_lun = AHC_NUM_LUNS;
 	host->max_channel = (ahc->features & AHC_TWIN) ? 1 : 0;
 	host->sg_tablesize = AHC_NSEG;
+	host->max_cmd_len = 32;
 	ahc_lock(ahc, &s);
 	ahc_set_unit(ahc, ahc_linux_unit++);
 	ahc_unlock(ahc, &s);


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux