barometer-collectd: Add support for DPDK in container 39/65339/1
authorKamil Wiatrowski <kamilx.wiatrowski@intel.com>
Thu, 22 Nov 2018 17:07:46 +0000 (18:07 +0100)
committerKamil Wiatrowski <kamilx.wiatrowski@intel.com>
Thu, 22 Nov 2018 17:08:45 +0000 (18:08 +0100)
Build dpdk plugins in collectd container.

Change-Id: Ifdca827a419d6d3d4d9c6070d3a581372df8a2f9
Signed-off-by: Kamil Wiatrowski <kamilx.wiatrowski@intel.com>
docker/barometer-collectd-master/Dockerfile
docker/barometer-collectd/Dockerfile
src/collectd/Makefile
src/dpdk/Makefile
systems/centos/7/build_base_machine.sh

index a1c957f..0f890d0 100644 (file)
@@ -6,6 +6,7 @@ RUN yum update -y && \
 
 ENV DOCKER y
 ENV COLLECTD_USE_MASTER y
+ENV WITH_DPDK y
 ENV repos_dir /src
 ENV openstack_plugins /src/barometer/src/collectd-openstack-plugins
 
index 41ccad0..a7a8a07 100644 (file)
@@ -5,6 +5,7 @@ RUN yum update -y && \
         git config --global http.sslVerify false
 
 ENV DOCKER y
+ENV WITH_DPDK y
 ENV repos_dir /src
 ENV openstack_plugins /src/barometer/src/collectd-openstack-plugins
 
index 1312170..f676643 100644 (file)
@@ -56,6 +56,9 @@ CONFIG_CMD += --enable-write_redis
 CONFIG_CMD += --disable-perl
 CONFIG_CMD += --with-librdkafka=/usr
 CONFIG_CMD += --disable-lvm
+ifdef WITH_DPDK
+CONFIG_CMD += LIBDPDK_CFLAGS='-mssse3'
+endif
 
 .PHONY: install force_install config force_make
 
index f13449c..40fa482 100644 (file)
@@ -77,6 +77,11 @@ else
        $(AT)sed -i -e 's/CONFIG_RTE_EAL_PMD_PATH=.*/CONFIG_RTE_EAL_PMD_PATH=\"\/usr\/lib\/dpdk-pmd\/\"/g' $(CONFIG_FILE_LINUXAPP)
        $(AT)sed -i -e 's/CONFIG_RTE_BUILD_COMBINE_LIBS=./CONFIG_RTE_BUILD_COMBINE_LIBS=y/g' $(CONFIG_FILE_LINUXAPP)
 endif
+# do not build kernel module under docker
+ifdef DOCKER
+       $(AT)sed -i -e 's/CONFIG_RTE_EAL_IGB_UIO=y/CONFIG_RTE_EAL_IGB_UIO=n/' $(CONFIG_FILE_LINUXAPP)
+       $(AT)sed -i -e 's/CONFIG_RTE_KNI_KMOD=y/CONFIG_RTE_KNI_KMOD=n/' $(CONFIG_FILE_LINUXAPP)
+endif
 # CentOS 7.3 specific config changes to compile
 ifeq ($(ID),"centos")
 ifeq ($(VERSION_ID),"7")
@@ -98,7 +103,10 @@ install: $(INSTALL_TARGET)
        $(AT)cd $(WORK_DIR); sudo make -j install prefix=/usr; cd -
        $(AT)sudo mkdir -p /usr/lib/dpdk-pmd
        $(AT)find /usr/lib -type f -name 'librte_pmd*' | while read path; do sudo ln -fs $$path /usr/lib/dpdk-pmd/$$(echo $$path | grep -o 'librte_.*so'); done
+# under docker there won't be kernel module available
+ifndef DOCKER
        $(AT)sudo cp -a $(WORK_DIR)/build/kmod $(INSTALL_DIR)/lib/modules/$(KERNEL_VERSION)
+endif
        @echo "install done"
 
 # hard way to clean and clobber
index 7e1cf2d..35e65e6 100755 (executable)
@@ -60,4 +60,5 @@ hiredis-devel
 epel-release
 libvirt-python
 python2-pip
+numactl-devel
 " | grep -v ^#)