-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Virtualization support in raspberry pi kernel #377
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
So, I'm guessing no. My suspicion is that virtualizion support would add some overhead to the kernel (when not being used), so I'd need some evidence that this option doesn't cause an overhead (in CPU/memory) and is wanted by a number of people. If you want to play with config options, here would be a good start: |
CONFIG_VIRTUALIZATION is a dummy config that activates a submenu for KVM and virtio-net drivers, neither of which should be needed for this. If unspecified Namespace support is enabled by deefault, including network namespaces. Additionally, 'process based virtualization' is marketing gibberish for process sandboxing, which is done using standard syscalls that are always in the kernel (ie chroot). |
The usual reason for running Mininet is to build a virtual network of OpenVSwitches, often controlled by an OpenFlow controller. $ gzip -d -c /proc/config.gz | grep CONFIG_OPENVSWITCH CONFIG_OPENVSWITCH is not set |
Isn't openvswitch inserted as a module when you compile its source. Are you sure that there is a separate config option for that in the Linux kernel? |
http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=FAQ;hb=HEAD
$ grep Hardware /proc/cpuinfo CONFIG_OPENVSWITCH is not set |
Are we happy CONFIG_OPENVSWITCH is all that is needed for mininet? |
Checking the documentation for OpenVSwitch, it looks like it also needs VLANs, and that's configured anyway. Checking the documentation for Mininet itself: https://github.com/mininet/mininet/blob/master/INSTALL
$ gzip -d -c /proc/config.gz | grep CONFIG_NET_NS So that looks good too. In short, I'm confident but at the same time wouldn't be shocked if some minor option was missing. Is that a high enough bar? And if not then what do you need? |
Sounds good enough for me. I'll add it with next update. |
Thanks heaps. Give me a ping when the next update happens and I'll install mininet on the RPi and put the directions on my blog for others. The RPi should be a good platform for messing about with OpenFlow, as controller scaling problems can be made to happen using a average PC rather than needing professional test gear. |
Please update and test:
|
Since mesh powersaving was added, pending bcast/mcast frames may go out the CAB queue now. Unfortunately, the queue was only set up for AP mode, so we would try to tx on the IEEE80211_INVAL_HW_QUEUE. Allow cab_queue for mesh interfaces as well. Fixes the following warning (or crash without MAC80211_VERBOSE_DEBUG): WARNING: at net/mac80211/tx.c:1223 __ieee80211_tx+0x162/0x35f [mac80211]() Modules linked in: mac80211_hwsim mac80211 cfg80211 [...] Pid: 3085, comm: avahi-daemon Tainted: G W 3.8.0-rc1+ raspberrypi#377 Call Trace: [<ffffffff81045c20>] warn_slowpath_common+0x83/0x9c [<ffffffff81045c53>] warn_slowpath_null+0x1a/0x1c [<ffffffffa083aef0>] __ieee80211_tx+0x162/0x35f [mac80211] [<ffffffffa083cb1d>] ieee80211_tx+0xd3/0xf9 [mac80211] [<ffffffffa083cc0f>] ieee80211_xmit+0xcc/0xd5 [mac80211] [<ffffffffa083db59>] ieee80211_subif_start_xmit+0xc53/0xcd8 [mac80211] [<ffffffff81319acd>] dev_hard_start_xmit+0x259/0x3ce [<ffffffff81333d6b>] sch_direct_xmit+0x74/0x17d [<ffffffff8131a0b1>] dev_queue_xmit+0x230/0x414 [<ffffffff8134877a>] ip_finish_output2+0x348/0x3aa [<ffffffff81349029>] ip_finish_output+0x6c/0x71 [<ffffffff81349046>] NF_HOOK_COND.constprop.44+0x18/0x58 [<ffffffff8134a03a>] ip_mc_output+0x134/0x13c [<ffffffff8134835a>] dst_output+0x18/0x1c [<ffffffff81349a24>] ip_local_out+0x20/0x24 [<ffffffff8134a8cf>] ip_send_skb+0x16/0x3c [<ffffffff8136bfba>] udp_send_skb+0x254/0x2b9 [<ffffffff8136c85e>] udp_sendmsg+0x5a8/0x7d4 Signed-off-by: Bob Copeland <[email protected]> Signed-off-by: Johannes Berg <[email protected]>
WARNING: line over 80 characters #205: FILE: kernel/locking/rwsem-xadd.c:275: + old = cmpxchg(&sem->count, count, count + RWSEM_ACTIVE_WRITE_BIAS); WARNING: line over 80 characters #376: FILE: kernel/locking/rwsem-xadd.c:434: + * If there were already threads queued before us and there are no WARNING: line over 80 characters #377: FILE: kernel/locking/rwsem-xadd.c:435: + * active writers, the lock must be read owned; so we try to wake total: 0 errors, 3 warnings, 417 lines checked Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Peter Zijlstra <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Cc: Davidlohr Bueso <[email protected]> Cc: Tim Chen <[email protected]> Cc: Linus Torvalds <[email protected]> Link: http://lkml.kernel.org/n/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
Tested and works. Documented at Installing OpenVSwitch and Mininet on Raspberry Pi |
How much virtualization support is enabled in the kernel by default.
Specifically, I want to run mininet on raspberry pi and mininet.
Mininet's Github page lists this
Mininet creates virtual networks using process-based virtualization and network namespaces - features that are available in recent Linux kernels.
I want to know if the raspberry pi kernel can support this by default.
The text was updated successfully, but these errors were encountered: