Hi Sebastian & Co, On Tue, 2012-11-27 at 16:20 +0100, Sebastian Andrzej Siewior wrote: > On 11/26/2012 06:54 PM, Michal Nazarewicz wrote: > > On Mon, Nov 26 2012, Sebastian Andrzej Siewior wrote: > >> Wouldn't say that. It may adds complexity on another level. The target > >> subsystem has the same problem with adding luns and there seems nothing > >> wrong with having lun3 and 4 and leaving 0 and 1 unsued. > > > > That's not what Wikipedia claims though (from > > <http://en.wikipedia.org/wiki/Logical_Unit_Number>): > > > > LUN 0: There is one LUN which is required to exist in every > > target: zero. The logical unit with LUN zero is special in that > > it must implement a few specific commands, most notably Report > > LUNs, which is how an initiator can find out all the other LUNs > > in the target. But LUN zero need not provide any other services, > > such as a storage volume. > > > > That's why I proposed solution where one needs to have continuous > > numbering of LUNs. I'm not an expert on SCSI though. > > Let me quote "4.6.4 Minimum LUN addressing requirements" of SAM4: > > | All SCSI target devices shall support LUN 0 (i.e., 00000000 > | 00000000h) or the REPORT LUNS well-known logical unit. For SCSI > | target devices that support the hierarchical addressing model the LUN > | 0 or the REPORT LUNS well-known logical unit shall be the logical > | unit that an application client addresses to determine > | information about the SCSI target device and the logical units > | contained within the SCSI target device. > > Nab, I think not having LUN0 configured as long as REPORT LUNS says > which luns are available is fine. Target seems to work on linux without > it and SAM4 does no claim otherwise unless I miss interpret it. Any > opinion on this from your side? >
So we use a special RAMDISK-MCP @ target_core_device.c:g_lun0_dev along with a se_lun (located @ se_portal_group->tpg_virt_lun0) to always service REPORT_LUNS to LUN=0, regardless of LUN=0 configfs fabric endpoint layout. Note this happens within target_core_device.c:transport_lookup_cmd_lun() once no active se_node_acl->device_list[unpacked_lun] entry can be located. > > > >> With the tcm gadget I get: > >> > >> |scsi 0:0:0:2: Direct-Access LIO-ORG RAMDISK-MCP 4.0 PQ: 0 > >> ANSI: 5 > >> |scsi 0:0:0:3: Direct-Access LIO-ORG FILEIO 4.0 PQ: 0 > >> ANSI: 5 > >> > >> You notice :2 and :3 instead :0 and :1. While should be there something > >> wrong with this? > > > > It may be that it works on Linux but fails on some other systems (or > > even older Linux kernels). Like I've said, I'm not SCSI expert, so my > > knowledge of it is (embarrassingly) minimal. > > Sure but still. You limit the user to create lunX folders where X can > be 0..255 for instance. If the user chooses not create lun0, why force > him? > It's certainly easier for the user if REPORT_LUNS always 'just works' to LUN=0. --nab -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/