[Stgt-devel] [Iscsitarget-devel] Re: stgt a new version of iscsi target?

Vladislav Bolkhovitin vst at vlnb.net
Thu Dec 15 19:53:48 CET 2005

Mike Christie wrote:
> Vladislav Bolkhovitin wrote:
>> Mike Christie wrote:
>>>> Are you sure that there are no now or will be available in the 
>>>> nearest feature such (eg iSCSI) SCSI arrays with response 
>>>> time/latency so small that having 5 (five) context switches or more 
>>>> per command, some of which include map/unmap operations, will not 
>>>> increase the latency too much? I mean, eg NFS server, which 
>>>> originally was user space daemon and many people didn't want it in 
>>>> the kernel. Eventually, it's in. I don't see any fundamental 
>>>> difference between NFS server and SCSI target server, 
>>> Isn't the reason a NFS server is still in the kernel is becuase some 
>>> of the locking difficulties?
>> Might be. But from what I remember, the major reason was the 
>> performance. After googling a bit I found many acknowledgments of that.
> I do not think we are going to get anywhere with this type of thread :(
> We should try to compare at least one of the userspace *nbd 
> implementations with the unh target in scst. I see some that just do 
> some basic socket ops (no sendfile type hook in even) for the network 
> part then just async or normal read/writes. I do not want to comapre FC 
> to nbd, but maybe comparing software iscsi to userspace nbd is a little 
> more fair. I think ata over ethernet has a userspace target too. Is the 
> unh target defaults set ok for performance testing, or could you send 
> some off list, so we can at least test those.

Agree that we need to have some numbers. But currently it is impossible 
  to measure them correctly without very considerable effort. For 
instance, the comparision of nbd with iscsi includes in the measurements 
not only user space/kernel space differences, but also many additional 
parts, like different implementation architectures. For the correct 
comparison we need some target driver (for scst or sgt), which commands 
would be processed in both user and kernel space. Additionally, because 
we discuss not only user vs kernel implementations, but also SIRQ vs 
thread implementations, the target needs to be the hardware one.

Right now without big effort we can only compare SIRQ vs thread 
implementations over FC, because the QLA target driver and scst support 
both modes of SCSI commands execution. See DEBUG_WORK_IN_THREAD symbol. 
We did some comparisons some time ago and, if I recall correctly, on 
small blocks (especially 16K and smaller) the performance drop was quite 
visible, because ~40000+ cs/sec are not very good for the system health 
:). You can easily repeat those experiments using scst, the qlogic 
driver and disk_perf or tape_perf dev handler.

But, since FC has quite a big latencies, this comparision will not fully 
suit our needs. We need some some low latency link. Probably, some of 
hardware iSCSI cards, like Qlogic 4100. But this is not the nearest future.


This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
Iscsitarget-devel mailing list
Iscsitarget-devel at lists.sourceforge.net

More information about the stgt mailing list