Further looking into the problem, the illegal instruction is shrx from bmi2 instruction
set and this CPU don't support it.
So this CPU is not supported by Clear Linux by deafult?
----- Original Message -----
From: "Marcos Felipe Schwarz" <marcos.schwarz(a)rnp.br>
To: "Arevalo, Mario Alfredo C" <mario.alfredo.c.arevalo(a)intel.com>
Cc: "dev" <dev(a)lists.clearlinux.org>
Sent: Friday, January 13, 2017 12:21:22 PM
Subject: Re: DPDK support is openvswitch is broken and configuration documentation is
Thanks for the update. I could verify that it workend on a VM, but on a physical machine I
keept getting the error: "Illegal instruction (core dumped)" when the
openvswitch was running ovsdb-tool at the service initialization.
Using gdb I found out the problem was generated by DPDK:
"Program received signal SIGILL, Illegal instruction.
0x00007ffff6e350a8 in rte_cpu_get_flag_enabled () from /usr/lib64/librte_eal.so.2.1"
Recompiling the DPDK SRPM and reinstalling dpdk-lib made it work. The CPU from my
equipment is an Atom C2758. Is this CPU not suposed to be supported by Clear Linux?
----- Original Message -----
From: "Arevalo, Mario Alfredo C" <mario.alfredo.c.arevalo(a)intel.com>
To: "Marcos Felipe Schwarz" <marcos.schwarz(a)rnp.br>, "dev"
Sent: Tuesday, January 10, 2017 9:28:38 PM
Subject: RE: DPDK support is openvswitch is broken and configuration documentation is
Hi again Marcos Schwarz, now OVS-DPDK use case on Clear Linux should work, at this moment
configuration steps have not been updated in Clear Linux web site, they will come soon,
however if you would
like to work with that as soon as possible, these are the new steps.
***************** OVS-DPDK use case steps ****************************
1. Update ClearLinux release by a release greater than 12490 in host.
# swupd update
2. Install network-basic bundle
# swupd bundle-add network-basic
3. Enable VT-d technology in BIOS
4. Enable VT-d in host kernel command line, it is necessary to edit
kernel-version>.conf file, and add iommu=pt intel_iommu=on to the end of the line. This
file is in
UEFI boot partion.
# systemctl start boot.mount
# cd /boot/loader/entries/
5. Umount UEFI partition and reboot the machine.
6. Set number of hugepages.
# echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
7. Allocate pages on NUMA machines.
# echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
# echo 1024 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
8. Make memory available for DPDK.
# mkdir -p /mnt/huge
# mount -t hugetlbfs nodev /mnt/huge
9. Download a clear linux image and OVMF.fd file, this image will be used as guest VMs
10. Start OpenvSwitch service.
# systemctl start openvswitch
11. OpenvSwitch requires some configuration to enable DPDK functionality such as: core
memory etc. this is and example in order to reproduce the environment in figure 1.0, more
about DPDK configuration in http://docs.openvswitch.org/en/latest/
# ovs-vsctl --no-wait init
# ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=0x2
# ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=2048
# ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
12. Restart OpenvSwitch service in order to update new DPDK configuration.
# systemctl restart openvswitch13. Create a virtual bridge using openvswitch.
# ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
14. Add vhost dpdk ports to the bridge.
# ovs-vsctl add-port br0 vhost-user1 -- set Interface vhost-user1 type=dpdkvhostuser
# ovs-vsctl add-port br0 vhost-user2 -- set Interface vhost-user2 type=dpdkvhostuser
15. Run guest virtual machine A using the next configuration as reference, where $IMAGE
var is the
name of the Clear Linux* OS for Intel Architecture image.
$ qemu-system-x86_64 \
-enable-kvm -m 1024 \
-bios OVMF.fd \
-smp 4 -cpu host \
-vga none -nographic \
-drive file="$IMAGE",if=virtio,aio=threads \
-chardev socket,id=char1,path=/run/openvswitch/vhost-user1 \
-netdev type=vhost-user,id=mynet1,chardev=char1,vhostforce \
-device virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1 \
-object memory-backend-file,id=mem,size=1024M,mem-path=/dev/ hugepages,share=on \
-numa node,memdev=mem -mem-prealloc \
-debugcon file:debug.log -global isa-debugcon.iobase=0x402
16. Run guest virtual machine B, use the configuration from the previous step; simply
change the MAC
address and the port socket. You can use 00:00:00:00:00:02 as a MAC address and
vhost-user2 as a
17. Follow the instructions from
From: Dev [dev-bounces(a)lists.clearlinux.org] on behalf of Marcos Felipe Schwarz
Sent: Thursday, January 05, 2017 5:42 AM
Subject: [Clr-dev] DPDK support is openvswitch is broken and configuration documentation
I tried to use the openvswitch with dpdk in Clear Linux 12450, but noticed a few
First, since version 2.6.0 the procedure to enable DPDK has changed and the flag --dpdk is
not supported by the ovs-vswitchd command anymore, instead it is now necessary to
configure DPDK using the ovs-vsctl command to set the other_config field with the desired
parameters as detailed in
. So the documentation
should be updated. Exchanging the
procedure number 7 from the "Using Linux OpenvSwitch-DPDK" section to the one
detailed in the 2.6 documentation, ex:
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="2048,0"
Second, even with the correct commands, dpdk was not working, since the package is missing
the flag "--with-dpdk" in the configure command of the SPEC file. After
regenerating the package and using the correct procedure, the dpdk support in OVS worked
Diretoria de Pesquisa & Desenvolvimento (DPD) / Research & Development Department
Gerência de Redes para Experimentos (GRE) / Management of Network for Experiments
RNP – Rede Nacional de Ensino e Pesquisa
Telefone: +55 (19) 3787 3386
Dev mailing list