On Tue, Jan 12, 2016 at 11:12 PM, Alexandru Ardelean <ardeleana...@gmail.com> wrote: > On Tue, Jan 12, 2016 at 9:25 PM, Alexandru Ardelean <ardeleana...@gmail.com> > wrote: > >> On Tue, Jan 12, 2016 at 6:23 PM, Ben Pfaff <b...@ovn.org> wrote: >> >>> On Tue, Jan 12, 2016 at 09:26:35AM +0200, Alexandru Ardelean wrote: >>> > But as it turns out, OVS is getting bigger and bigger with each release, >>> > which means fewer and fewer devices can support it. >>> >>> When I run "strip" on the version from master, the binary is about 2 MB >>> (on i386). For version 2.0.0, it was about 1.5 MB. That's not very >>> big, and not too much of an increase. >>> >> >> I have about the same sizes for OVS. >> And we use strip for builds on OpenWRT. >> >> Let me give a bit more context. >> If it's too much email/info, I am sorry. I am trying to explain stuff as >> best as I can. >> The devices I'm referring to, have about 8 MB of flash. >> I know this sounds a bit ridiculous (when viewed from a server class POV), >> but it's a pretty common size among embedded devices, due to a price + cost >> + type-of-flash+ volume-of-devices equation. >> We also have devices with 256 MB flash, so those don't fit into this >> discussion. >> >> And now let me detail how this works. >> >> These 2 files get flashed to the (well) flash >> -rw-r--r-- 1 user users 5636096 Jan 12 14:15 >> openwrt-ar71xx-generic-root.squashfs >> -rw-r--r-- 1 user users 1095047 Jan 12 14:15 >> openwrt-ar71xx-generic-uImage-lzma.bin >> >> The uImage file is the kernel (at a minimum) and lzma-ed. >> The root.squashfs file contains kmods, busybox (with sh, and some reduced >> env-tools like awk, grep, etc), dhcp client, other stuff and of course OVS >> (version 2.4.0), also lzma-ed. >> The mips compiler produces smaller binaries than x86 (and most archs). >> All this makes having all this functionality fit in 8 MBs. >> And there might also be room for a lua interpreter, or maybe even a >> reduced Python interpreter, or a web server, etc. >> >> The way all this works is: device boots, bootloader uncompresses kernel >> and rootfs and mounts it to RAM, where all this runs ; except for a few >> bytes on the flash which are persistent, to keep configuration between >> reboots. >> 128 MB of RAM (which is in my case) is more than sufficient to run all >> this ; 64 MB would also be sufficient to run all this. >> And at a CPU of 700 Mhz (MIPS which is slower than x86), runs pretty >> decently. >> >> In general, it's safe to say that a 500k increase on the rootfs, ends up >> to around 50k ~ 100k (this is just a guess) >> >> Version 2.5.0 (trunk) adds about 100k-200k when compared to 2.4.0. >> And of course, if OVS increases it's binary footprint, there's also an >> increase in the RAM footprint (when it runs), but for now it's fine, and I >> think for another few versions we can handle this increase in OVS' size. >> I'm trying to find a way now to tackle version 4.0, when more stuff gets >> added. >> >> There are other ways that I see that could work to run OVS on our setups. >> Like loading the OVS binaries through the network directly into RAM. >> ( Atm, we package the OVS binaries into the FW image ) >> >> Another aspect of this discussion is that OVS would (normally) have no >> place in such devices (with 8 MB flash), but as it turned out, we've had >> OVS there for a few releases of OVS (since around version 2.2) and would >> like to (if possible) have it there for quite a few more. >> >> In any case (and to finalize), whatever you (and the OVS community) prefer >> is fine by me, and we can adapt for OpenWRT. >> >> Thanks >> Alex >> > > Let's step back a bit, and detail what we need atm. > We need OVS running on the more recent kernels, and [of course] to have it > running on embedded devices with 8 MB of flash. > > The LTS version (2.3.2) supports up to kernel 3.10 (? not sure; have to > check), and OpenWRT supports 3.18 and 4.1 with plans to move to 4.3 (or 4.4 > ; discussions are on-going). > Version 2.4 of OVS supports 4.0 ; and I've backported 4.1 support to it. > > I think most people using OpenWRT (including me) would be fine with > backporting support for kernel 4.4 back to LTS OVS. > But then, there would be another few people (also including me) that would > want to try the newer stuff (every once in a while) which may not be in LTS. > [Btw] We usually build the OVS kmod from the OVS repo and use that ; we > don't use the kernel's OVS kmod. > > Backporting kernel support sounds like a hassle, in general. > So, in order to satisfy all cases with OVS + OpenWRT (which seems to prefer > the newer kernels) , we usually try to use the most recent version of OVS. > And this brings us back to the discussion about it's increase in size with > each release.
Why not use the upstream kernel module? The out of tree kernel module is primarily a backport which people use to get newer features on older kernels. If you are using newer kernels than the OVS release then that's not really a concern. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev