[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