Comments (7)
noiommu could mean that virtualization may not be enabled in bios. pls check
from upf.
Hi @amarsri28 , thanks for your response.
Checked again and do see virtualization enabled in the BIOS.
Here are the flags enabled on my host linux machine, which includes svm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid overflow_recov succor smca
I also came across @krsna1729 's comment here: #304 (comment) which mentions that VM would require vfio_noiommu.
What else could I be missing?
Thanks!
from upf.
Hello - checking in to see if there are other suggestions for configuration I could check on my side?
I did attach the logs for running the dpdk ./examples/dpdk-helloworld
example which seemed to succeed.
Would any other example from here https://doc.dpdk.org/guides/sample_app_ug/index.html be useful to run to validate my dpdk or scripts/docker_setup.sh
and conf/up4.bess
configuration?
Thank you!
from upf.
@diwakargoel Thanks for cpu confg. I understand you are running under vm on amd host . below are few pointers
--> Bess uses particular version of dpdk , pls try to run sriov app with that to observe behaviour.
--> No iommu typically need kernel support as well. just check on that
--> there are other flags as well like "iommu" in amd and then virtual machine need some config as well for iommu support(just to test)
from upf.
Hi @amarsri28 , thanks for looking into this again.
With your pointers I switched to using the Vagrantfile from here: https://github.com/NetSys/bess/wiki/Build-and-Install-BESS which pulls and builds it's own version of dpdk.
This Vagrantfile sets up 2 virtio
interfaces which I then bound to vfio-pci
as shown below:
Before:
root@bessvm:/home/vagrant# dpdk-devbind.py -s
Network devices using DPDK-compatible driver
============================================
<none>
Network devices using kernel driver
===================================
0000:00:03.0 'Virtio network device 1000' if=eth0 drv=virtio-pci unused= *Active*
0000:00:08.0 'Virtio network device 1000' if=eth1 drv=virtio-pci unused=
0000:00:09.0 'Virtio network device 1000' if=eth2 drv=virtio-pci unused=
Other Network devices
=====================
<none>
Crypto devices using DPDK-compatible driver
===========================================
<none>
Crypto devices using kernel driver
==================================
<none>
Other Crypto devices
====================
<none>
Eventdev devices using DPDK-compatible driver
=============================================
<none>
Eventdev devices using kernel driver
====================================
<none>
Other Eventdev devices
======================
<none>
Mempool devices using DPDK-compatible driver
============================================
<none>
Mempool devices using kernel driver
===================================
<none>
Other Mempool devices
=====================
<none>
root@bessvm:/home/vagrant#
Binding:
root@bessvm:/home/vagrant# modprobe vfio enable_unsafe_noiommu_mode=1
root@bessvm:/home/vagrant# modprobe vfio-pci
root@bessvm:/home/vagrant# echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
root@bessvm:/home/vagrant# dpdk-devbind.py --bind=vfio-pci 00:08.0
root@bessvm:/home/vagrant# dpdk-devbind.py --bind=vfio-pci 00:09.0
After:
root@bessvm:/home/vagrant# dpdk-devbind.py -s
Network devices using DPDK-compatible driver
============================================
0000:00:08.0 'Virtio network device 1000' drv=vfio-pci unused=
0000:00:09.0 'Virtio network device 1000' drv=vfio-pci unused=
Network devices using kernel driver
===================================
0000:00:03.0 'Virtio network device 1000' if=eth0 drv=virtio-pci unused=vfio-pci *Active*
Other Network devices
=====================
<none>
Crypto devices using DPDK-compatible driver
===========================================
<none>
Crypto devices using kernel driver
==================================
<none>
Other Crypto devices
====================
<none>
Eventdev devices using DPDK-compatible driver
=============================================
<none>
Eventdev devices using kernel driver
====================================
<none>
Other Eventdev devices
======================
<none>
Mempool devices using DPDK-compatible driver
============================================
<none>
Mempool devices using kernel driver
===================================
<none>
Other Mempool devices
=====================
<none>
But on running ./scripts/docker_setup.sh
still get the same output:
+ docker exec bess ./bessctl run up4
E0711 23:40:16.708421776 14 fork_posix.cc:76] Other threads are currently calling into gRPC, skipping fork() handlers
E0711 23:40:16.710408346 14 fork_posix.cc:76] Other threads are currently calling into gRPC, skipping fork() handlers
Deprecation warning https://docs.pyroute2.org/ipdb_toc.html
To remove this DeprecationWarning exception, start IPDB(deprecation_warning=False, ...)
Deprecation warning https://docs.pyroute2.org/ipdb_toc.html
To remove this DeprecationWarning exception, start IPDB(deprecation_warning=False, ...)
Deprecation warning https://docs.pyroute2.org/ipdb_toc.html
To remove this DeprecationWarning exception, start IPDB(deprecation_warning=False, ...)
Deprecation warning https://docs.pyroute2.org/ipdb_toc.html
To remove this DeprecationWarning exception, start IPDB(deprecation_warning=False, ...)
Deprecation warning https://docs.pyroute2.org/ipdb_toc.html
To remove this DeprecationWarning exception, start IPDB(deprecation_warning=False, ...)
Deprecation warning https://docs.pyroute2.org/ipdb_toc.html
To remove this DeprecationWarning exception, start IPDB(deprecation_warning=False, ...)
*** Error: Unhandled exception in the configuration script (most recent call last)
File "/opt/bess/bessctl/conf/up4.bess", line 136, in <module>
p.init_port(idx, parser.mode)
File "/opt/bess/bessctl/conf/ports.py", line 181, in init_port
raise Exception(
Exception: Registered port for ens803f2 not detected!
Command failed: run up4
max_ip_defrag_flows value not set. Not installing IP4Defrag module.
ip_frag_with_eth_mtu value not set. Not installing IP4Frag module.
Can't parse unix socket paths for notify! Setting it to default values (/tmp/notifycp)
Can't parse unix socket paths for end marker! Setting it to default values (/tmp/pfcpport)
Setting up port ens803f2 on worker ids [0]
Should I be using a different driver instead of vfio-pci
to bind these virtio
interfaces?
Would appreciate if you could take another look? Or instructions similar to https://github.com/NetSys/bess/wiki/Build-and-Install-BESS#start-up-bess-and-run-a-sample-configuration could also be provided for this project.
Thanks!
from upf.
i understand you are running in vm over amd machine. i didnt tried with this config, few pointers will help.
- use dpdk-20.11.3 to run sample dpdk app where you bind with noiommu in sriov and see if it works. on your setup. (i think hello-world does'nt do that ).
from upf.
This issue has been stale for 30 days and will be closed in 5 days. Comment to keep it open.
from upf.
Related Issues (20)
- Run bess in dpdk mode using Mellanox VFs HOT 3
- protobuf python package and protoc version incompatibility when building docker image HOT 2
- PFCP messages bad UDP checksum HOT 2
- issue in Upf compilation HOT 2
- Patch not able to Merge due to failing background check HOT 13
- UPF performance issue for TCP traffic HOT 22
- code compilation issue -sim mode HOT 7
- Temporary issue deploying the UPF in standalone mode due to CNDP integration HOT 2
- Error deleting PDRs when using PFCP in simulation mode (-simulate delete) HOT 13
- Add documentation about configuring and deploying the UPF in af_packet and af_xdp modes HOT 15
- IPFrag module initialization fails when hugepage is not enabled HOT 6
- UPF dpdk-mode with virtio-net don't process downlink traffic HOT 11
- QUESTION: Is there a release schedule? HOT 1
- Possible need to revert PR #698 HOT 1
- Replace IPDB with NDB in UPF HOT 7
- Integration of omec-project UPF's BESS data plane inside PacketRusher HOT 12
- Error with affinity in up4.bess script
- Processor affinity is not re-entrant safe HOT 3
- Update `pfcpsim` dependency to `v1.0.0`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from upf.