-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
None
vswitchperf has a few hardcodes for "x86_64", which prevent easy porting vswitchperf on other archictectures, like "i686" or "aarch64".
I pushed two very small changes [1, 2], which will most probably be abandoned and merged into a bigger change later.
Martin did a very nice overview analysis of the problems we expect to encounter while working on multiarch support:
"Thanks for looking at platform dependency issues. However to make vsperf independent on x86_64 platform will require changes at other places too. It would be good to solve them within one patch.
I can see x86_64 hardcoded in following files:
solved - ./ci/build-vsperf.sh: sudo killall -9 qemu-system-x86_64 &> /dev/null
solved - ./ci/build-vsperf.sh: if pgrep qemu-system-x86_64 &> /dev/null ; then
solved - ./ci/build-vsperf.sh: sudo killall -9 qemu-system-x86_64 &> /dev/null
./conf/00_common.conf: 'qemu-system' : 'qemu-system-x86_64'},
./conf/02_vswitch.conf:RTE_TARGET = 'x86_64-native-linuxapp-gcc'
./conf/04_vnf.conf:QEMU_BIN = os.path.join(QEMU_DIR, 'x86_64-softmmu/qemu-system-x86_64')
./conf/05_collector.conf:PIDSTAT_MONITOR = ['ovs-vswitchd', 'ovsdb-server', 'qemu-system-x86_64']
./conf/06_pktfwd.conf:PIDSTAT_MONITOR = ['ovs-vswitchd', 'ovsdb-server', 'qemu-system-x86_64', 'testpmd']
./src/dpdk/Makefile:# v1.2.3r0-v1.6.0r2 - configuration inside config/defconfig_x86_64-default-linuxapp-gcc
./src/dpdk/Makefile: DPDK_TARGET = x86_64-native-linuxapp-gcc
./src/dpdk/Makefile: DPDK_TARGET = x86_64-default-linuxapp-gcc
./src/dpdk/Makefile: CONFIG_FILE_LINUXAPP = $(WORK_DIR)/config/defconfig_x86_64-default-linuxapp-gcc
./src/dpdk/Makefile: DPDK_TARGET = x86_64-native-linuxapp-gcc
./src/dpdk/Makefile: DPDK_TARGET = x86_64-native-linuxapp-gcc
./src/ovs/Makefile:DPDK_TARGET = x86_64-native-linuxapp-gcc
./src/qemu/Makefile:CONFIG_CMD += --target-list="x86_64-softmmu" --python="/usr/bin/python"
./systems/centos/build_base_machine.sh:wget https://www.softwarecollections.org/en/scls/rhscl/python33/epel-7-x86_64/download/rhscl-python33-epel-7-x86_64.noarch.rpm
./systems/centos/build_base_machine.sh:rpm -i rhscl-python33-epel-7-x86_64.noarch.rpm
solved - ./systems/ubuntu/build_base_machine.sh:cd /lib/x86_64-linux-gnu
solved - ./systems/ubuntu/build_base_machine.sh:cd /usr/lib/x86_64-linux-gnu
However in case of qemu binary name it won't be that simple. I'm currently working on patch, which will allow to execute any qemu binary, which might be complied for different platform (i386?). So for example function for getting pids for monitored processes has to be rewritten. It currently uses 'pidof', which doesn't accept regex, so we would probably need to change it to 'pgrep', etc.
Best Regards,
"
[1] https://gerrit.opnfv.org/gerrit/#/c/19593/
[2] https://gerrit.opnfv.org/gerrit/#/c/19595/