[openfabrics-ewg] [PATCH 1/4] IB/iSER: Integrate open-iscsi into the OFED build scripts

Erez Zilber erezz at voltaire.com
Wed Jan 3 23:02:33 PST 2007


Vladimir Sokolovsky wrote:
>
> Erez Zilber wrote:
> > Add open-iscsi into configure & Makefile.
> >
> > Signed-off-by: Erez Zilber <erezz at voltaire.com>
> >
> > diff -ruN ofa_1_2_kernel-20061228-0200/Makefile
> ofa_1_2_kernel-20061228-0200-open-iscsi/Makefile
> > --- ofa_1_2_kernel-20061228-0200/Makefile     2006-12-31
> 14:49:38.000000000 +0200
> > +++ ofa_1_2_kernel-20061228-0200-open-iscsi/Makefile  2006-12-31
> 14:32:38.000000000 +0200
> > @@ -15,6 +15,8 @@
> >          export KERNEL_MEMTRACK_CFLAGS =
> >  endif
> > 
> > +export OPEN_ISCSI_MODULES = iscsi_tcp.ko libiscsi.ko
> scsi_transport_iscsi.ko
> > +
> >  configure.mk:
> >       @echo Please run ./configure.kernel
> >       @exit 1
> > @@ -75,6 +77,22 @@
> >               ' \
> >               modules
> > 
> > +     if [ "$(CONFIG_INFINIBAND_ISER)" == "m" ]; then \
> > +             echo "Building open-iscsi"; \
> > +             $(MAKE) -C $(KSRC) SUBDIRS="$(CWD)/drivers/scsi"
> KERNELRELEASE=$(KVERSION) \
> > +                     EXTRAVERSION=$(EXTRAVERSION) V=1
> $(WITH_MAKE_PARAMS) \
> > +                    
> CONFIG_SCSI_ISCSI_ATTRS=$(CONFIG_SCSI_ISCSI_ATTRS) \
> > +                     CONFIG_ISCSI_TCP=$(CONFIG_ISCSI_TCP) \
> > +                     LINUXINCLUDE=' \
> > +                     $(BACKPORT_INCLUDES) \
> > +                     -I$(CWD)/include \
> > +                     -Iinclude \
> > +                     $$(if $$(KBUILD_SRC),-Iinclude2
> -I$$(srctree)/include) \
> > +                     -include include/linux/autoconf.h \
> > +                     -include $(CWD)/include/linux/autoconf.h \
> > +                     ' \
> > +                     modules; \
> > +     fi             
> > 
> >  #########################
> >  #    Install kernel  #
> > @@ -88,8 +106,15 @@
> >               KERNELRELEASE=$(KVERSION) EXTRAVERSION=$(EXTRAVERSION) \
> >               INSTALL_MOD_DIR="infiniband" INSTALL_MOD_PATH=$(CWD) \
> >               $(WITH_MAKE_PARAMS) modules_install
> > +    
> > +     if [ "$(CONFIG_INFINIBAND_ISER)" == "m" ]; then \
> > +             $(MAKE) -C $(KSRC) SUBDIRS="$(CWD)/drivers/scsi" \
> > +                     KERNELRELEASE=$(KVERSION)
> EXTRAVERSION=$(EXTRAVERSION) \
> > +                     INSTALL_MOD_DIR="scsi" INSTALL_MOD_PATH=$(CWD) \
> > +                     $(WITH_MAKE_PARAMS) modules_install; \
> > +     fi
> > 
> > -     # Backup original infiniband kernel modules
> > +     # Backup original infiniband (and open-iscsi if iSER was
> selected) kernel modules
> >       # under 'prefix'/backup directory
> >      
> >       if [ -d $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/infiniband ];
> then \
> > @@ -100,7 +125,25 @@
> >                       mv $(DESTDIR)/$(prefix)/backup/infko_tmp.tgz
> $(DESTDIR)/$(prefix)/backup/infiniband_ko-$(KVERSION).tgz; \
> >               fi; \
> >               /bin/rm -rf
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/infiniband; \
> > -     fi
> > +     fi;
> > +
> > +     if [ "$(CONFIG_INFINIBAND_ISER)" == "m" ]; then \
> > +             if [ -d $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/scsi
> ]; then \
> > +                     mkdir -p $(DESTDIR)/$(prefix)/backup; \
> > +                     if [ ! -f
> $(DESTDIR)/$(prefix)/backup/open_iscsi_ko-$(KVERSION).tgz ]; then \
> > +                             open_iscsi_mods_full_path=""; \
> > +                             for open_iscsi_module in
> $(OPEN_ISCSI_MODULES); \
> > +                             do \
> > +                                    
> open_iscsi_mods_full_path="$(DESTDIR)/$(MODULES_DIR)/kernel/drivers/scsi/$$open_iscsi_module
> $$open_iscsi_mods_full_path"; \
> > +                             done; \
> > +                             tar czfP
> $(DESTDIR)/$(prefix)/backup/open_iscsi_ko-$(KVERSION).tgz
> $$open_iscsi_mods_full_path; \
> > +                     fi; \
> > +                     for open_iscsi_module in $(OPEN_ISCSI_MODULES); \
> > +                     do \
> > +                             (/bin/rm -f
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/scsi/$$open_iscsi_module ); \
> > +                     done; \
> > +             fi; \
> > +     fi;
> >      
> >       # Copy new infiniband kernel modules to
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/infiniband
> >       if [ -d $(CWD)/lib/modules/$(KVERSION)/infiniband ]; then \
> > @@ -112,6 +155,24 @@
> >               mv $(CWD)/lib/modules/$(KVERSION)/extra
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/infiniband; \
> >       fi
> > 
> > +     # If iSER was selected, Copy new open-iscsi kernel modules to
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/scsi    
> > +     if [ "$(CONFIG_INFINIBAND_ISER)" == "m" ]; then \
> > +             if [ -d $(CWD)/lib/modules/$(KVERSION)/scsi ]; then \
> > +                     mkdir -p
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers; \
> > +                     for open_iscsi_module in $(OPEN_ISCSI_MODULES); \
> > +                     do \
> > +                             (mv
> $(CWD)/lib/modules/$(KVERSION)/scsi/$$open_iscsi_module
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/scsi ); \
> > +                     done; \
> > +             fi; \
> > +             if [ -d $(CWD)/lib/modules/$(KVERSION)/extra ]; then \
> > +                     mkdir -p
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers; \
> > +                        for open_iscsi_module in
> $(OPEN_ISCSI_MODULES); \
> > +                     do \
> > +                             (mv
> $(CWD)/lib/modules/$(KVERSION)/extra/$$open_iscsi_module
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/scsi ); \
> > +                     done; \
> > +             fi; \
> > +     fi;
> > +
> >       $(DEPMOD) -r -ae $(KVERSION)
> > 
> >  clean: clean_kernel
> > @@ -125,6 +186,16 @@
> >               tar xzfP
> $(DESTDIR)/$(prefix)/backup/infiniband_ko-$(KVERSION).tgz; \
> >               /bin/rm -f
> $(DESTDIR)/$(prefix)/backup/infiniband_ko-$(KVERSION).tgz; \
> >       fi
> > +     if [ "$(CONFIG_INFINIBAND_ISER)" == "m" ]; then \
> > +             if [ -f
> $(DESTDIR)/$(prefix)/backup/open_iscsi_ko-$(KVERSION).tgz ]; then \
> > +                        for open_iscsi_module in
> $(OPEN_ISCSI_MODULES); \
> > +                        do \
> > +                               (/bin/rm
> $(DESTDIR)/$(MODULES_DIR)/kernel/drivers/scsi/$$open_iscsi_module ); \
> > +                        done; \
> > +                        tar xzfP
> $(DESTDIR)/$(prefix)/backup/open_iscsi_ko-$(KVERSION).tgz; \
> > +                        /bin/rm -f
> $(DESTDIR)/$(prefix)/backup/open_iscsi_ko-$(KVERSION).tgz; \
> > +             fi; \
> > +     fi;
> > 
> >       $(DEPMOD) -r -ae $(KVERSION)
> > 
> > diff -ruN ofa_1_2_kernel-20061228-0200/configure
> ofa_1_2_kernel-20061228-0200-open-iscsi/configure
> > --- ofa_1_2_kernel-20061228-0200/configure    2006-12-31
> 14:49:38.000000000 +0200
> > +++ ofa_1_2_kernel-20061228-0200-open-iscsi/configure 2006-12-31
> 14:53:45.000000000 +0200
> > @@ -555,9 +555,13 @@
> >                          ;;
> >                          --with-iser-mod)
> >                              CONFIG_INFINIBAND_ISER="m"
> > +                            CONFIG_SCSI_ISCSI_ATTRS="m"
> > +                            CONFIG_ISCSI_TCP="m"
> >                          ;;
> >                          --without-iser-mod)
> >                              CONFIG_INFINIBAND_ISER=
> > +                            CONFIG_SCSI_ISCSI_ATTRS=
> > +                            CONFIG_ISCSI_TCP=
> >                          ;;
> >                          --with-ehca-mod)
> >                              CONFIG_INFINIBAND_EHCA="m"
> > @@ -667,6 +671,8 @@
> > 
> >  CONFIG_INFINIBAND_IPOIB_DEBUG=${CONFIG_INFINIBAND_IPOIB_DEBUG:-''}
> >  CONFIG_INFINIBAND_ISER=${CONFIG_INFINIBAND_ISER:-''}
> > +CONFIG_SCSI_ISCSI_ATTRS=${CONFIG_SCSI_ISCSI_ATTRS:-''}
> > +CONFIG_ISCSI_TCP=${CONFIG_ISCSI_TCP:-''}
> >  CONFIG_INFINIBAND_EHCA=${CONFIG_INFINIBAND_EHCA:-''}
> >  CONFIG_INFINIBAND_EHCA_SCALING=${CONFIG_INFINIBAND_EHCA_SCALING:-''}
> >  CONFIG_INFINIBAND_RDS=${CONFIG_INFINIBAND_RDS:-''}
> > @@ -728,6 +734,8 @@
> > 
> >  CONFIG_INFINIBAND_IPOIB_DEBUG=${CONFIG_INFINIBAND_IPOIB_DEBUG}
> >  CONFIG_INFINIBAND_ISER=${CONFIG_INFINIBAND_ISER}
> > +CONFIG_SCSI_ISCSI_ATTRS=${CONFIG_SCSI_ISCSI_ATTRS}
> > +CONFIG_ISCSI_TCP=${CONFIG_ISCSI_TCP}
> >  CONFIG_INFINIBAND_EHCA=${CONFIG_INFINIBAND_EHCA}
> >  CONFIG_INFINIBAND_EHCA_SCALING=${CONFIG_INFINIBAND_EHCA_SCALING}
> >  CONFIG_INFINIBAND_RDS=${CONFIG_INFINIBAND_RDS}
> > @@ -797,8 +805,12 @@
> >  fi
> >  if [ "X${CONFIG_INFINIBAND_ISER}" == "Xm" ]; then
> >          DEFINE_INFINIBAND_ISER="#define CONFIG_INFINIBAND_ISER 1"
> > +        DEFINE_SCSI_ISCSI_ATTRS="#define CONFIG_SCSI_ISCSI_ATTRS 1"
> > +        DEFINE_ISCSI_TCP="#define CONFIG_ISCSI_TCP 1"
> >  else
> >          DEFINE_INFINIBAND_ISER="#undef CONFIG_INFINIBAND_ISER"
> > +        DEFINE_SCSI_ISCSI_ATTRS="#undef CONFIG_SCSI_ISCSI_ATTRS"
> > +        DEFINE_ISCSI_TCP="#undef CONFIG_ISCSI_TCP"
> >  fi
> >  if [ "X${CONFIG_INFINIBAND_EHCA}" == "Xm" ]; then
> >          DEFINE_INFINIBAND_EHCA="#define CONFIG_INFINIBAND_EHCA 1"
> > @@ -918,6 +930,8 @@
> > 
> >  ${DEFINE_INFINIBAND_IPOIB_DEBUG}
> >  ${DEFINE_INFINIBAND_ISER}
> > +${DEFINE_SCSI_ISCSI_ATTRS}
> > +${DEFINE_ISCSI_TCP}
> >  ${DEFINE_INFINIBAND_EHCA}
> >  ${DEFINE_INFINIBAND_RDS}
> >  ${DEFINE_INFINIBAND_RDS_DEBUG}
> >
> >
> >
> > _______________________________________________
> > openfabrics-ewg mailing list
> > openfabrics-ewg at openib.org
> > http://openib.org/mailman/listinfo/openfabrics-ewg
> >  
> Hi Erez,
> I got the following compilation error while compiling iscsi on
> 2.6.16.21-0.8-smp kernel (SLES10 x86_64)
>
>   gcc
> -Wp,-MD,/tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/.libiscsi.o.d 
> -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.1.0/include
> -D__KERNEL__
> -I/tmp/gen2_devel_kernel-20070102-1823/kernel_addons/backport/2.6.16_sles10/include/ 
> -I/tmp/gen2_devel_kernel-20070102-1823/include  -Iinclude  -Iinclude2
> -I/usr/src/linux-2.6.16.21-0.8/include  -include
> include/linux/autoconf.h  -include
> /tmp/gen2_devel_kernel-20070102-1823/include/linux/autoconf.h   
> -I/tmp/gen2_devel_kernel-20070102-1823/drivers/scsi  -Wall -Wundef
> -Wstrict-prototypes -Wno-trigraphs -Werror-implicit-function-declaration
> -fno-strict-aliasing -fno-common -ffreestanding -Os -fomit-frame-pointer
> -mtune=generic -m64 -mno-red-zone -mcmodel=kernel -pipe
> -fno-reorder-blocks -Wno-sign-compare -fno-asynchronous-unwind-tables
> -funit-at-a-time -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
> -Wdeclaration-after-statement -Wno-pointer-sign -DMODULE
> -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(libiscsi)" 
> -D"KBUILD_MODNAME=KBUILD_STR(libiscsi)" -c -o
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/.tmp_libiscsi.o
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/libiscsi.c
>   gcc
> -Wp,-MD,/tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/.iscsi_tcp.o.d 
> -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.1.0/include
> -D__KERNEL__
> -I/tmp/gen2_devel_kernel-20070102-1823/kernel_addons/backport/2.6.16_sles10/include/ 
> -I/tmp/gen2_devel_kernel-20070102-1823/include  -Iinclude  -Iinclude2
> -I/usr/src/linux-2.6.16.21-0.8/include  -include
> include/linux/autoconf.h  -include
> /tmp/gen2_devel_kernel-20070102-1823/include/linux/autoconf.h   
> -I/tmp/gen2_devel_kernel-20070102-1823/drivers/scsi  -Wall -Wundef
> -Wstrict-prototypes -Wno-trigraphs -Werror-implicit-function-declaration
> -fno-strict-aliasing -fno-common -ffreestanding -Os -fomit-frame-pointer
> -mtune=generic -m64 -mno-red-zone -mcmodel=kernel -pipe
> -fno-reorder-blocks -Wno-sign-compare -fno-asynchronous-unwind-tables
> -funit-at-a-time -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
> -Wdeclaration-after-statement -Wno-pointer-sign -DMODULE
> -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(iscsi_tcp)" 
> -D"KBUILD_MODNAME=KBUILD_STR(iscsi_tcp)" -c -o
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/.tmp_iscsi_tcp.o
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c
> In file included from
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:44:
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.h:96: error:
> field ?tx_hash? has incomplete type
>
I think that you didn't use the backport patch. If you take a look at
the the patch that I sent in  [PATCH 3/4], you will see that:

       /* data and header digests */
-      struct hash_desc        tx_hash;        /* CRC32C (Tx) */
-      struct hash_desc        rx_hash;        /* CRC32C (Rx) */
+      struct crypto_tfm       *tx_tfm;        /* CRC32C (Tx) */
+      struct crypto_tfm       *rx_tfm;        /* CRC32C (Rx) */

> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.h:97: error:
> field ?rx_hash? has incomplete type
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c: In
> function ?iscsi_hdr_digest?:
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:111:
> error: implicit declaration of function ?crypto_hash_digest?
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c: In
> function ?partial_sg_digest_update?:
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:687:
> error: implicit declaration of function ?crypto_hash_update?
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c: In
> function ?iscsi_tcp_data_recv?:
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:890:
> error: implicit declaration of function ?crypto_hash_init?
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:950:
> error: implicit declaration of function ?crypto_hash_final?
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c: In
> function ?iscsi_tcp_conn_create?:
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:1777:
> error: implicit declaration of function ?crypto_alloc_hash?
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:1778:
> error: ?CRYPTO_ALG_ASYNC? undeclared (first use in this function)
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:1778:
> error: (Each undeclared identifier is reported only once
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:1778:
> error: for each function it appears in.)
> /tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.c:1792:
> error: implicit declaration of function ?crypto_free_hash?
> make[4]: ***
> [/tmp/gen2_devel_kernel-20070102-1823/drivers/scsi/iscsi_tcp.o] Error 1
> make[3]: *** [_module_/tmp/gen2_devel_kernel-20070102-1823/drivers/scsi]
> Error 2
> make[2]: *** [modules] Error 2
> make[1]: *** [modules] Error 2
> make[1]: Leaving directory `/usr/src/linux-2.6.16.21-0.8-obj/x86_64/smp'
> make: *** [kernel] Error 2
>
> Did I missed something?
>
> Regards,
> Vladimir
>






More information about the ewg mailing list