<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test/sys/dev/iscsi/icl_soft.c, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/'/>
<updated>2020-10-28T13:46:11Z</updated>
<entry>
<title>Drop "All rights reserved" from all my stuff.  This includes</title>
<updated>2020-10-28T13:46:11Z</updated>
<author>
<name>Edward Tomasz Napierala</name>
<email>trasz@FreeBSD.org</email>
</author>
<published>2020-10-28T13:46:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=bce7ee9d412b6410e6d799c4a417617cbb148e09'/>
<id>urn:sha1:bce7ee9d412b6410e6d799c4a417617cbb148e09</id>
<content type='text'>
Foundation copyrights, approved by emaste@.  It does not include
files which carry other people's copyrights; if you're one
of those people, feel free to make similar change.

Reviewed by:	emaste, imp, gbe (manpages)
Differential Revision:	https://reviews.freebsd.org/D26980
</content>
</entry>
<entry>
<title>iscsi: clean up empty lines in .c and .h files</title>
<updated>2020-09-01T21:30:22Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2020-09-01T21:30:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=2140d5b64f0afc5a5f5c317d1f66a6ca3f8be2b2'/>
<id>urn:sha1:2140d5b64f0afc5a5f5c317d1f66a6ca3f8be2b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement zero-copy iSCSI target transmission/read.</title>
<updated>2020-06-08T20:53:57Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-06-08T20:53:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=9a4510ac3220b97781768bf250897c152d94c436'/>
<id>urn:sha1:9a4510ac3220b97781768bf250897c152d94c436</id>
<content type='text'>
Add ICL_NOCOPY flag to icl_pdu_append_data(), specifying that the method
can just reference the data buffer instead of immediately copying it.

Extend the offload KPI with optional PDU queue method, allowing to specify
completion callback, called when all the data referenced by above has been
transferred and won't be accessed any more (the buffers can be freed).

Implement the above functionality in software iSCSI driver using mbufs
with external storage and reference counter.  Note that some NICs (ixl(4))
may keep the mbuf in TX queue for a long time, so CTL has to be ready.

Add optional method to struct ctl_scsiio for buffer reference counting.
Implement it for CTL block backend, allowing to delay free of the struct
ctl_be_block_io and memory it references as needed.  In first reincarnation
of the patch I tried to delay whole I/O as it is done for FibreChannel,
that was cleaner, but due to the above callback delays I had to rewrite
it this way to not leave LUN referenced potentially for hours or more.

All together on sequential read from ZFS ARC this saves about 30% of CPU
time and memory bandwidth by avoiding one of 3 memory copies (the other
two are from ZFS ARC to DMU cache and then from DMU cache to CTL buffers).
On tests with 2x Xeon Silver 4114 this allows to reach full line rate of
100GigE NIC.  Tests with Gold CPUs and two 100GigE NICs are stil TBD,
but expectations to saturate them are pretty high. ;)

Discussed with:	Chelsio
Sponsored by:	iXsystems, Inc.
</content>
</entry>
<entry>
<title>Do not try to fill socket send buffer to the last byte.</title>
<updated>2020-05-22T18:10:46Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2020-05-22T18:10:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=1f29b46c42e430d2ce974640ea3f0e3fc52c7aa4'/>
<id>urn:sha1:1f29b46c42e430d2ce974640ea3f0e3fc52c7aa4</id>
<content type='text'>
Setting so_snd.sb_lowat to at least 1/8 of the socket buffer size allows
send thread more actively use PDUs coalescing, that dramatically reduces
TCP lock congestion and number of context switches, when the socket is
full and PDUs are small.

MFC after:	1 week
Sponsored by:	iXsystems, Inc.
</content>
</entry>
<entry>
<title>Separate kernel crc32() implementation to its own header (gsb_crc32.h) and</title>
<updated>2019-06-17T19:49:08Z</updated>
<author>
<name>Xin LI</name>
<email>delphij@FreeBSD.org</email>
</author>
<published>2019-06-17T19:49:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=f89d2072795407d7c3afff865b988e021c1451a2'/>
<id>urn:sha1:f89d2072795407d7c3afff865b988e021c1451a2</id>
<content type='text'>
rename the source to gsb_crc32.c.

This is a prerequisite of unifying kernel zlib instances.

PR:		229763
Submitted by:	Yoshihiro Ota &lt;ota at j.email.ne.jp&gt;
Differential Revision:	https://reviews.freebsd.org/D20193
</content>
</entry>
<entry>
<title>Add SPDX tags to iscsi(4).</title>
<updated>2018-01-24T16:58:26Z</updated>
<author>
<name>Edward Tomasz Napierala</name>
<email>trasz@FreeBSD.org</email>
</author>
<published>2018-01-24T16:58:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=43ee6e9d7bea350d40fd00bde00429e9477d401a'/>
<id>urn:sha1:43ee6e9d7bea350d40fd00bde00429e9477d401a</id>
<content type='text'>
MFC after:	2 weeks
</content>
</entry>
<entry>
<title>Move the DIAGNOSTIC check for lost iSCSI PDUs from icl_conn_close()</title>
<updated>2017-12-09T15:34:40Z</updated>
<author>
<name>Edward Tomasz Napierala</name>
<email>trasz@FreeBSD.org</email>
</author>
<published>2017-12-09T15:34:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=22d3bb2625f587b9d09a8cfb4228a7e760a3344e'/>
<id>urn:sha1:22d3bb2625f587b9d09a8cfb4228a7e760a3344e</id>
<content type='text'>
to icl_conn_free().  It's perfectly valid for the counter to be non-zero
in the former.

MFC after:	2 weeks
Sponsored by:	playkey.net
</content>
</entry>
<entry>
<title>Make sure the iSCSI I/O limits are set properly so that the ISCSIDSEND IOCTL</title>
<updated>2017-11-23T13:57:44Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2017-11-23T13:57:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=9ac7c5a64ca5728ea0ed15fc3c191695938f226d'/>
<id>urn:sha1:9ac7c5a64ca5728ea0ed15fc3c191695938f226d</id>
<content type='text'>
can be used prior to the ISCSIDHANDOFF IOCTL which set the negotiated values.
Else the login PDU will fail when passing the "-r" option to "iscsictl" which
means iSCSI over RDMA instead of TCP/IP.

Discussed with:	np@ and trasz@
Sponsored by:	Mellanox Technologies
MFC after:	1 week
</content>
</entry>
<entry>
<title>Inline some trivial wrapper functions.</title>
<updated>2017-03-02T16:14:15Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2017-03-02T16:14:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=82f7fa7ae6496c5f73dd24f04c7057a2269de744'/>
<id>urn:sha1:82f7fa7ae6496c5f73dd24f04c7057a2269de744</id>
<content type='text'>
MFC after:	2 weeks
</content>
</entry>
<entry>
<title>Fix handling of negative sbspace() return values.</title>
<updated>2017-02-15T19:46:00Z</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2017-02-15T19:46:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=605703b5dfe92b64a2127637f30db6385a89f685'/>
<id>urn:sha1:605703b5dfe92b64a2127637f30db6385a89f685</id>
<content type='text'>
I found that at least with Chelsio NICs TOE sockets quite often report
negative sbspace() values.  Using unsigned variable to store it resulted
in attempts to aggregate too much data in one sosend() call, that caused
errors and following connection termination.

MFC after:	2 weeks
</content>
</entry>
</feed>
