On Thu, 04 Feb 2010 10:39:09 +0100 juergen.kadidlo@xxxxxxxxxx wrote: > FUJITA Tomonori schrieb: > > On Wed, 03 Feb 2010 18:06:55 +0100 > > juergen.kadidlo@xxxxxxxxxx wrote: > > > > > >> I'm trying to write a driver for a new type of iSCSI target and I'm > >> using "bs_rdwr.c" as a reference. However, there are some things that > >> are pretty unclear to me, and one of them is: how are parameters like > >> sector-size and number of sectors of a device determined? I could not > >> find code that queries these parameters from the target-device. And > >> tgtadm doesn't seem to support such params. However, there is not much > >> documentation, so I'm not sure about that... > >> > >> To be more precise: assuming that I want to use a file as a target, how > >> can I specify the sector-size and number of sectors/bytes? > >> > > > > I'm not sure what exactly you want to try. What is 'your anew type of > > iSCSI target'? > > > > Probably 'bs_rdwr.c' is a wrong reference for you. It just does I/Os > > via system calls. There is not much SCSI stuff there. > > > That's not easy to explain... you may call it a "Software SAN". It has > it's own interface and needs another daemon to talk to it, so it's not > possible to access it via a classic linux device file. I'd like to make > it accessible via iSCSI by writing a new driver (or backing-store, not > sure how you call it) that handles read/write/open/close requests by > talking to to that daemon through its native interface... That's why > I've chosen "bs_rdwr.c" as a reference. ok. > I thought it would be sufficient > to replace the functions there and use it as a > driver/backing-store/device-type. But maybe I didn't understand tgt's > architecture right... any help or documentation would be greatly > appreciated! > > The device size (the number of sectors) is stored in struct > > scsi_lu. The sector size depends on what device type you want to > > use. If you are trying something with disk (sbc), then the following > > patch might be useful for you: > > > > http://lists.wpkg.org/pipermail/stgt/2009-December/003469.html > > > So, in order to set the correct sector-size I have to apply that patch > and start "tgtd" manually? I thought that "tgtd" is only started by > "tgt-admin"!? You don't intend to push your modification into mainline, right? If so, then you can just modify BLK_SHIFT in sbc.c. > And what about the number of sectors of a device? I mean, > if a SCSI READ_CAPACITY command comes in, the device's sector-size and > number of sectors have to be determined somehow! I've looked at the > code, but couldn't find an explanation... You still don't tell me what device type you are interested in so I can't explain. If you want sbc, see sbc_read_capacity(). > After reading the patch description, I also wonder how to select the > type of device or driver. The "tgt-admin" man-page doesn't describe how > to choose between e.g. bs_rdwr, bs_ssc, bs_sg etc... tgt-admin is a handy tool for common people. You are trying to do what common people don't do. So see tgtadm.c about "bstype" option. -- To unsubscribe from this list: send the line "unsubscribe stgt" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html