Date: Thu, 11 Aug 2016 18:59:36 +0200 From: Ben RUBSON <ben.rubson@gmail.com> To: freebsd-scsi@freebsd.org Cc: Hans Petter Selasky <hanss@mellanox.com>, Oren Duer <oren@mellanox.com>, Oded Shanoon <odeds@mellanox.com>, Meny Yossefi <menyy@mellanox.com>, Roy Shterman <roysh@mellanox.com> Subject: Re: Help to make iSER working Message-ID: <621BCC32-4612-410F-B658-D1086A7A3A09@gmail.com> In-Reply-To: <a8b1cd70-3e96-2dd6-20ae-1bf3b315ff89@mellanox.com> References: <71E4886B-61C3-4091-A7FF-E5A4F59AEACE@gmail.com> <64d8bc44-b6a3-4c0a-6d13-f919bf26685a@mellanox.com> <41CCC244-A781-4087-A811-B33847EDEC01@gmail.com> <6a464f2c-c048-d29c-e602-c129b35a5d4a@mellanox.com> <B3B47B30-D253-4543-A813-1AEDD3EE2656@gmail.com> <a8b1cd70-3e96-2dd6-20ae-1bf3b315ff89@mellanox.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 11 Aug 2016, at 18:10, Max Gurtovoy <maxg@mellanox.com> wrote: >=20 > On 8/11/2016 6:33 PM, Ben RUBSON wrote: >> Thank you very much Max for your help. >>=20 >>=20 >>=20 >> I managed to compile the kernel with iSER support doing the 3 = modifications below. >>=20 >> I added the following to /usr/src/sys/conf/options : >> ICL_KERNEL_PROXY opt_global.h >>=20 >> And I added "options ICL_KERNEL_PROXY" to my kernel configuration = file. >>=20 >> I then faced this compilation error : >> /usr/src/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1358:2: = error: implicit declaration of function 'icl_conn_handoff_sock' >> icl_conn_handoff_sock(cs->cs_conn, so); >> /usr/src/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1358:2: = note: did you mean 'icl_soft_handoff_sock'? >> /usr/src/sys/dev/iscsi/icl.h:158:7: note: 'icl_soft_handoff_sock' = declared here >> int icl_soft_handoff_sock(struct icl_conn *ic, struct socket *so); >>=20 >> So I replaced icl_conn_handoff_sock by icl_soft_handoff_sock (sounds = like it is the needed correction). >>=20 >> iscsictl -r now does not produce previous "invalid argument" error. >>=20 >> @trasz : perhaps these modifications should be done in FreeBSD 11 = source tree ? I'm also rebuilding world with the following to see if it can help : # cat /etc/src.conf=20 WITH_ICL_KERNEL_PROXY=3D"YES" WITH_OFED=3D"YES" >> Now I'm facing the following issue : >>=20 >> # iscsictl -A -r -t iqn.2012-06.com.test:target1 -p 192.168.2.2 >> iscsid[8743]: 192.168.2.2 (iqn.2012-06.com.test:target1): failed to = connect to 192.168.2.2 using ICL kernel proxy: ISCSIDCONNECT: = Input/output error >> kernel: ERROR: iser_connect_error: conn 0xfffff8096786f000 >> iscsid[1078]: child process 8743 terminated with exit status 1 >=20 > please increase the debug level in both initiator and target and sent = it out. Logs from the initiator : iscsid[39668]: 192.168.2.2 (iqn.2012-06.com.test:target1): failed to = connect to 192.168.2.2 using ICL kernel proxy: ISCSIDCONNECT: = Input/output error kernel: INFO: iser_free_ib_conn_res: freeing conn 0xfffff8048d276000 = cma_id 0 qp 0 kernel: DEBUG: iser_conn_connect: before cv_wait: 0xfffff8048d276000 kernel: INFO: iser_cma_handler: event 1 status -19 conn = 0xfffff8048d276000 id 0xfffff80880606800 kernel: ERROR: iser_connect_error: conn 0xfffff8048d276000 kernel: DEBUG: iser_conn_connect: after cv_wait: 0xfffff8048d276000 iscsid[1078]: child process 39668 terminated with exit status 1 Logs from the target (here I tried TGT) : No logs, as if TGT did not receive anything. If I try to connect without the "-r", here is what I get : tgtd: login_start(502) Target iqn.2012-06.com.test:target1 is RDMA, but = conn cid:0 from iqn.1994-09.org.freebsd:srv1 is TCP So target is correctly iSER configured. I tried without iSER on both sides, of course it works. > =46rom first look I think you need to configure the LIO target to work = with demo mode. I double-checked, LIO was in demo mode, I followed this guideline : https://community.mellanox.com/docs/DOC-1468 One strange thing, on initiator, sounds like no packet goes through the = interface when trying to connect : # sysctl hw.mlxen1.stat.rx_packets hw.mlxen1.stat.tx_packets hw.mlxen1.stat.rx_packets: 386 hw.mlxen1.stat.tx_packets: 409 # iscsictl -A -r -t iqn.2012-06.com.test:target1 -p 192.168.2.2 # sysctl hw.mlxen1.stat.rx_packets hw.mlxen1.stat.tx_packets hw.mlxen1.stat.rx_packets: 386 hw.mlxen1.stat.tx_packets: 409 > Another thing you can try is the user space tgt target (compile with = make ISCSI_RDMA=3D1) that I work with mostly. >=20 >>=20 >> If I remove the "-r" option from the iscsictl command, it correctly = connects to the target. >>=20 >> On target side, Lio, targetcli : >> /> ls iscsi/ >> o- iscsi ............................................. [1 Target] >> o- iqn.2012-06.com.test:target1 ....................... [1 TPG] >> o- tpg1 ........................................... [enabled] >> o- acls .......................................... [0 ACLs] >> o- luns ........................................... [1 LUN] >> | o- lun0 ..................... [iblock/block1 (/dev/sdc7)] >> o- portals ..................................... [1 Portal] >> o- 192.168.2.2:3260 .................. [OK, iser enabled] >>=20 >> I wanted to make some RDMA connection tests with udaddy for example, = but I did not found the FreeBSD version. >>=20 >> Any advice ? >>=20 >> Many thanks ! >>=20 >> Ben >>=20 >>=20 >>=20 >>> On 11 Aug 2016, at 15:44, Max Gurtovoy <maxg@mellanox.com> wrote: >>>=20 >>> These are the instructions I get from iscsi maintainer that merged = our code to FreeBSD-11: >>> 1. set WITH_OFED=3Dyes in /etc/make.conf >>> 2. "make buildkernel buildworld installkernel installworld" >>> 3. reboot >>> 4. kldload iser >>>=20 >>> After that, make sure you configured all the interfaces correctly = and that you have ping between the 2 servers. >>> later you need to check basic RDMA stuff on your servers (Added = Hans/Oded/Meny to help you if needed). >>>=20 >>> Only if the above are working you can proceed to check iser. >>>=20 >>> Max. >>>=20 >>> On 8/11/2016 4:22 PM, Ben RUBSON wrote: >>>> I just tested to connect to a Linux iSER enabled target, but I = still get this error message at initiator side : >>>> iscsid[1187]: 192.168.2.2 (iqn.2012-06.com.test:target1): failed to = connect to 192.168.2.2 using ICL kernel proxy: ISCSIDCONNECT: Invalid = argument >>>>=20 >>>>> as if my initiator did not understand the iSER command = "ISCSIDCONNECT". >>>>> How to be sure everything is correctly compiled with = ICL_KERNEL_PROXY enabled ? >>>>=20 >>>> Ben >>>>=20 >>>>=20 >>>>> On 10 Aug 2016, at 22:51, Max Gurtovoy <maxg@mellanox.com> wrote: >>>>>=20 >>>>> Hi Ben, >>>>>=20 >>>>> iSER initiator is supported in FreeBSD-11 but not the iser target. >>>>> for the target you should use Linux target such as TGT (user = space), >>>>> Lio or SCST. >>>>>=20 >>>>> thanks, >>>>> Max. >>>>>=20 >>>>>=20 >>>>> On 8/10/2016 8:13 PM, Ben RUBSON wrote: >>>>>> Hello, >>>>>>=20 >>>>>> I have some difficulties to make iSER (FreeBSD 11 BETA3) working. >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>> ### My configuration : >>>>>>=20 >>>>>> 2 servers with Mellanox ConnectX-3 NICs. >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>> ### What I did : >>>>>>=20 >>>>>> I rebuilt kernel adding the following to GENERIC : >>>>>> options OFED >>>>>> device mlxen >>>>>> options COMPAT_LINUXKPI >>>>>>=20 >>>>>> I built iser : >>>>>> cd /usr/src/sys/modules/iser/ ; make ; make install ; kldload = iser >>>>>> (I saw later-on that I could have used "device iser" in kernel = configuration) >>>>>>=20 >>>>>> My /etc/ctl.conf : >>>>>> portal-group pg0 { >>>>>> discovery-auth-group no-authentication >>>>>> listen 192.168.2.2 >>>>>> offload iser >>>>>> } >>>>>> target iqn.2012-06.com.test:target1 { >>>>>> auth-group no-authentication >>>>>> portal-group pg0 >>>>>> alias my-iser-disk >>>>>> lun 0 { >>>>>> path /dev/da8 >>>>>> } >>>>>> } >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>> ### Error : >>>>>>=20 >>>>>> As soon as I do the following : >>>>>> iscsictl -A -r -t iqn.2012-06.com.test:target1 -p 192.168.2.2 >>>>>> I get this error : >>>>>> iscsid[1187]: 192.168.2.2 (iqn.2012-06.com.test:target1): failed = to connect to 192.168.2.2 using ICL kernel proxy: ISCSIDCONNECT: Invalid = argument >>>>>> iscsid[655]: child process 1187 terminated with exit status 1 >>>>>>=20 >>>>>> "sysctl hw.mlxen1.stat.tx_packets" on initiator shows that no = packet is sent at all when trying to connect. >>>>>>=20 >>>>>> Did I miss something ? >>>>>>=20 >>>>>> Many thanks ! >>>>>>=20 >>>>>> Ben
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?621BCC32-4612-410F-B658-D1086A7A3A09>