Re: [PATCH] scsi: Allow 64-bit LUNs during report lun scan

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

 



On 02/14/2013 07:02 PM, Jeremy Linton wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2/13/2013 9:38 PM, James Bottomley wrote:
Yes.  The two functions are simple transforms ensuring that we can pack up
to two levels of luns into a u32 whatever address method is used.  At the
time it was done, no array or other extant system went beyond this.

At the end of the day, a LUN is just a handle, so even if we go to 64 bits
we're still going to be packing the address method into the logical unit
"number".

	Ok, I will buy that (probably violates SAM5, 4.7.1, but no big deal), two
points.

	First this requires basically every adapter capable of recieving address
method!=0 LUNs to set the 64-bit capable flag that is included in this patch.
Otherwise the "scsi: %s lun%d has a LUN larger than allowed by the host
adapter\n" path fires even for a small number of luns because the address
method bit creates a "lun" > max_luns in all cases.

Hehe. As we're down to nitpicking:
The 'support_64bit_luns' is a _hardware_ flag.
Some HBA hardware (SPI, and most RAID HBAs) simply do not have the facilities to _send_ 64bit LUNs; SPI HBAs in most cases simply reserve a byte for the LUN.

So irrespective of what response they'll be getting via REPORT_LUNS they lack the possibility of addressing all of them.
And for those we need the 'max_luns' setting.



	Second, its possible with address method 11b, that none of the devices are
actually visible even with this patch, as a device that chooses to use address
method=11b and one of the >16 bit addressing methods gets its LSB truncated by
the 32-bit return from scsilun_to_int(). Not that I have see one of those, no
one needs that many LUNs <chuckle>. So, the flag in this patch is somewhat
misnamed as it doesn't really support 64-bit luns. To stick to the existing
method scsilun_to_int needs to be u64.

Correct. This I'll be addressing with a later patch, moving 'lun' to full 64bit.


	BTW: Tiny syntax cleanup, scsilun_to_int() should have a return type of
unsigned.

Will be cleaned up with the next round of patches.

Cheers,

Hannes
--
Dr. Hannes Reinecke		      zSeries & Storage
hare@xxxxxxx			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
--
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