* [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? @ 2014-08-30 21:34 Theodore Ts'o 2014-08-30 21:57 ` Dave Taht 2014-08-31 7:01 ` David Lang 0 siblings, 2 replies; 10+ messages in thread From: Theodore Ts'o @ 2014-08-30 21:34 UTC (permalink / raw) To: cerowrt-devel Potentially stupid question. I was taking a look at http://wiki.openwrt.org/doc/techref/filesystems and there was discussion there about how using raw squashfs doesn't deal with wear leveling and bad flash blocks, and that openwrt is now using ubifs for all targets with raw NAND flash --- and my understanding is that the WNDR 3800 uses raw NAND flash. Is there any particular reason why Cerowrt isn't using ubifs, or squashfs over ubi, other than purely historical and/or this wasn't the research focus of Cerowrt? Thanks, - Ted ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? 2014-08-30 21:34 [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? Theodore Ts'o @ 2014-08-30 21:57 ` Dave Taht 2014-08-31 1:38 ` Theodore Ts'o 2014-08-31 7:01 ` David Lang 1 sibling, 1 reply; 10+ messages in thread From: Dave Taht @ 2014-08-30 21:57 UTC (permalink / raw) To: Theodore Ts'o; +Cc: cerowrt-devel [-- Attachment #1: Type: text/plain, Size: 1288 bytes --] I tried ubifs in the early days. It doesn't squeeze stuff down even as good as jffs2, so the load of cerowrt exceeded 15mbyte. It does look to be an ever more reasonable answer once you have flash sizes greater than 128mbyte. I see a lot of ext4 on much larger flashes.... A thing that irks me in the age of 4G flash becoming fairly common is the general lack of compression aside from an option to btrfs. Debian barely fits into 2 gb. On Aug 30, 2014 2:35 PM, "Theodore Ts'o" <tytso@mit.edu> wrote: > Potentially stupid question. I was taking a look at > > http://wiki.openwrt.org/doc/techref/filesystems > > and there was discussion there about how using raw squashfs doesn't > deal with wear leveling and bad flash blocks, and that openwrt is now > using ubifs for all targets with raw NAND flash --- and my > understanding is that the WNDR 3800 uses raw NAND flash. Is there any > particular reason why Cerowrt isn't using ubifs, or squashfs over ubi, > other than purely historical and/or this wasn't the research focus of > Cerowrt? > > Thanks, > > - Ted > _______________________________________________ > Cerowrt-devel mailing list > Cerowrt-devel@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cerowrt-devel > [-- Attachment #2: Type: text/html, Size: 1883 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? 2014-08-30 21:57 ` Dave Taht @ 2014-08-31 1:38 ` Theodore Ts'o 2014-08-31 7:05 ` David Lang 0 siblings, 1 reply; 10+ messages in thread From: Theodore Ts'o @ 2014-08-31 1:38 UTC (permalink / raw) To: Dave Taht; +Cc: cerowrt-devel On Sat, Aug 30, 2014 at 02:57:05PM -0700, Dave Taht wrote: > I tried ubifs in the early days. It doesn't squeeze stuff down even as good > as jffs2, so the load of cerowrt exceeded 15mbyte. It does look to be an > ever more reasonable answer once you have flash sizes greater than 128mbyte. Another possible solution might be squashfs on top of ubi (instead of mtdblock). Ubi will provide the wear levelling and bad block remapping, which mtdblock doesn't do. > A thing that irks me in the age of 4G flash becoming fairly common is the > general lack of compression aside from an option to btrfs. Debian barely > fits into 2 gb It depends on what you have installed, of course. I have a debian test image which gets used for ext4 testing which is 189 megabytes uncompressed, and 57 megabytes using qcow2 compression (it gets run using qemu/kvm)[1]. It's a basic debootstrap image plus a handful of packages[2] plus xfstests (which is 22 megabytes uncompressed). [1] ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/kvm-xfstests/ [2] https://git.kernel.org/cgit/fs/ext2/xfstests-bld.git/tree/kvm-xfstests/test-appliance/packages This is still much larger than 7 megabytes in the Cerowrt's root image, granted, but it is possible to make a relatively svelte debian-based image. I've considered implementing MacOS X style compression (immutable files, compression which happens in userspace, with decompression in the kernel.) The main reason why I haven't is that for most use cases, space hasn't really been that much of an issue, or most of the files are already compressed (i.e., Java or Dalvik classpath files which are already zip compressed). It wouldn't be _that_ hard to do, but it's just not that high up on most people's priority lists. - Ted ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? 2014-08-31 1:38 ` Theodore Ts'o @ 2014-08-31 7:05 ` David Lang 2014-08-31 16:45 ` Theodore Ts'o 2014-08-31 16:58 ` Dave Taht 0 siblings, 2 replies; 10+ messages in thread From: David Lang @ 2014-08-31 7:05 UTC (permalink / raw) To: Theodore Ts'o; +Cc: cerowrt-devel On Sat, 30 Aug 2014, Theodore Ts'o wrote: >> A thing that irks me in the age of 4G flash becoming fairly common is the >> general lack of compression aside from an option to btrfs. Debian barely >> fits into 2 gb > > It depends on what you have installed, of course. I have a debian > test image which gets used for ext4 testing which is 189 megabytes > uncompressed, and 57 megabytes using qcow2 compression (it gets run > using qemu/kvm)[1]. It's a basic debootstrap image plus a handful of > packages[2] plus xfstests (which is 22 megabytes uncompressed). > > [1] ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/kvm-xfstests/ > [2] https://git.kernel.org/cgit/fs/ext2/xfstests-bld.git/tree/kvm-xfstests/test-appliance/packages > > This is still much larger than 7 megabytes in the Cerowrt's root > image, granted, but it is possible to make a relatively svelte > debian-based image. > > > I've considered implementing MacOS X style compression (immutable > files, compression which happens in userspace, with decompression in > the kernel.) The main reason why I haven't is that for most use > cases, space hasn't really been that much of an issue, or most of the > files are already compressed (i.e., Java or Dalvik classpath files > which are already zip compressed). It wouldn't be _that_ hard to do, > but it's just not that high up on most people's priority lists. One other place this sort of thing is likely to be useful is for Raspberry Pi and other small (embedded by some defintions) systems that use SD cards for their OS system. The I/O to the storage is so slow that the saved I/O time is likely to more than cover the cost of the decompression. Raspberry Pi systems have had to move to 4G cards as their base because it's just not possible to have the standard install do more than boot on a 2G card. David Lang ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? 2014-08-31 7:05 ` David Lang @ 2014-08-31 16:45 ` Theodore Ts'o 2014-08-31 17:29 ` Dave Taht 2014-08-31 19:37 ` David Lang 2014-08-31 16:58 ` Dave Taht 1 sibling, 2 replies; 10+ messages in thread From: Theodore Ts'o @ 2014-08-31 16:45 UTC (permalink / raw) To: David Lang; +Cc: cerowrt-devel On Sun, Aug 31, 2014 at 12:05:52AM -0700, David Lang wrote: > > One other place this sort of thing is likely to be useful is for Raspberry > Pi and other small (embedded by some defintions) systems that use SD cards > for their OS system. The I/O to the storage is so slow that the saved I/O > time is likely to more than cover the cost of the decompression. Yeah, that's the main argument I've heard for wanting to do decompression; it's to speed up I/O when using HDD's and cheap flash that has a minimal number of flash channels. > Raspberry Pi systems have had to move to 4G cards as their base because it's > just not possible to have the standard install do more than boot on a 2G > card. 2G SD cards -- $42.95 for a 10-pack 4G SD cards -- $53.95 for a 10-pack I have a design for adding compression, but except as a hobby effort, I've had a lot of trouble finding a company who would be willing to support an engineer to actually do the effort. :-( Unless the company is making a truly vast number of devices, and are very sensitive to the BOM cost, it might not make sense from an engineering / business plan point of view. So it will probably be something I do "for fun", when I can find the time.... and there are a lot of other projects where companies are willing to sponsor engineers to add new features, such as encryption, reflink support, data checksums, etc., where if I can help them land those features, it's unfortunately going to be higher priority than my personally working on compression support for ext4. But if someone is interested in working on it, they should talk to me; I'd be happy to work with someone interested in working on the project. - Ted ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? 2014-08-31 16:45 ` Theodore Ts'o @ 2014-08-31 17:29 ` Dave Taht 2014-08-31 19:37 ` David Lang 1 sibling, 0 replies; 10+ messages in thread From: Dave Taht @ 2014-08-31 17:29 UTC (permalink / raw) To: Theodore Ts'o; +Cc: cerowrt-devel Ted: Certainly making the big cpe makers and ISPs better able to meet their market requirements in the open source age is high on my list of things to fix. In the bad old days, a cpe maker would put out a big RFP with their requirements, some big ODM or ODMs would bid on it, and after 5 years the next product would come out, 2+ years late, there would be acrimony and finger pointing on all sides, and the product would not be as good as it could be. In the present day, it really pays for the cpe maker (or ISP) to "feed the penguins" - to identify key technologies *and their primary authors* during their RFP process, and to try to put a floor under them directly, to get the code more "out there" in an 18 month timescale... and thus thoroughly tested before it has to be integrated and then burned into flash by the ODM. I think this approach chops of *years* of development time off of shipping new stuff into embedded systems, and results in a much higher quality product overall as the new features have the elegance, and robustness that only an author with time, taste, and resources, can produce. On Sun, Aug 31, 2014 at 9:45 AM, Theodore Ts'o <tytso@mit.edu> wrote: > On Sun, Aug 31, 2014 at 12:05:52AM -0700, David Lang wrote: >> >> One other place this sort of thing is likely to be useful is for Raspberry >> Pi and other small (embedded by some defintions) systems that use SD cards >> for their OS system. The I/O to the storage is so slow that the saved I/O >> time is likely to more than cover the cost of the decompression. > > Yeah, that's the main argument I've heard for wanting to do > decompression; it's to speed up I/O when using HDD's and cheap flash > that has a minimal number of flash channels. Faster boot times are good. I also tend to think "using less flash" out of your total might extend the service life. I do not have a good awareness of what filesystem(s) people are planning to ship in the next generation of embedded systems, certainly I see a lot of ext4, I've seen some try btrfs, and the old standbys of squashfs and jffs2 are still good choices when you are below 32MB flaash. Better tailoring a fs (as ubi did) for better speed, higher reliability and easy updates in the field strikes me as a very good idea. > >> Raspberry Pi systems have had to move to 4G cards as their base because it's >> just not possible to have the standard install do more than boot on a 2G >> card. > > 2G SD cards -- $42.95 for a 10-pack > 4G SD cards -- $53.95 for a 10-pack It really is astounding isn't it! > > I have a design for adding compression, but except as a hobby effort, > I've had a lot of trouble finding a company who would be willing to > support an engineer to actually do the effort. :-( > > Unless the company is making a truly vast number of devices, and are > very sensitive to the BOM cost, it might not make sense from an > engineering / business plan point of view. It's a small matter of finding a company or companies with sufficient vision, moving potentially millions of units, that want to save 20 cents each, realizing that they can't go it alone. I am loving the hipnet, homenet and homewrt's efforts to further their goals, which are much wider than "saving money" - but in making new technologies more available on cpe. http://www.cablelabs.com/the-future-of-home-networking-putting-the-hip-in-hipnet/ http://www.homewrt.org/doku.php These groups have realized that for certain key new features, once identified, they can't get them from the ODM, but have to go direct to the authors of the technologies in our new age modern open source world in order to get them done enough - and "out there" enough and tested enough - for the ODM to integrate and ship, and put floors under various things needed. (I was delighted comcast stepped up to get dnssec into dnsmasq, in particular. So many people were whining about lack of dnssec adoption... and there has been much work on routing protocols as an outgrowth of all that, also... and so much behind the scenes integration and automation work in that quest for extra nines of reliability. ) > > So it will probably be something I do "for fun", when I can find the > time.... and there are a lot of other projects where companies are > willing to sponsor engineers to add new features, such as encryption, > reflink support, data checksums, etc., where if I can help them land > those features, it's unfortunately going to be higher priority than my > personally working on compression support for ext4. > > But if someone is interested in working on it, they should talk to me; > I'd be happy to work with someone interested in working on the > project. I will put possible work on ext4 compression and on ubifs on the possible roadmap for the next phase of the cerowrt effort. > - Ted -- Dave Täht NSFW: https://w2.eff.org/Censorship/Internet_censorship_bills/russell_0296_indecent.article ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? 2014-08-31 16:45 ` Theodore Ts'o 2014-08-31 17:29 ` Dave Taht @ 2014-08-31 19:37 ` David Lang 2014-08-31 22:03 ` Theodore Ts'o 1 sibling, 1 reply; 10+ messages in thread From: David Lang @ 2014-08-31 19:37 UTC (permalink / raw) To: Theodore Ts'o; +Cc: cerowrt-devel On Sun, 31 Aug 2014, Theodore Ts'o wrote: > On Sun, Aug 31, 2014 at 12:05:52AM -0700, David Lang wrote: >> >> One other place this sort of thing is likely to be useful is for Raspberry >> Pi and other small (embedded by some defintions) systems that use SD cards >> for their OS system. The I/O to the storage is so slow that the saved I/O >> time is likely to more than cover the cost of the decompression. > > Yeah, that's the main argument I've heard for wanting to do > decompression; it's to speed up I/O when using HDD's and cheap flash > that has a minimal number of flash channels. As a datapoint in this discussin, take a look at the openwrt thread [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment Apparently with BB they changed the gcc options on mips to produce 16 bit code because it results in smaller binaries, but this cripples performance in some cases It doesn't answer your funding issue, but it shows another case of people being very sensitive to storage size. David Lang >> Raspberry Pi systems have had to move to 4G cards as their base because it's >> just not possible to have the standard install do more than boot on a 2G >> card. > > 2G SD cards -- $42.95 for a 10-pack > 4G SD cards -- $53.95 for a 10-pack > > I have a design for adding compression, but except as a hobby effort, > I've had a lot of trouble finding a company who would be willing to > support an engineer to actually do the effort. :-( > > Unless the company is making a truly vast number of devices, and are > very sensitive to the BOM cost, it might not make sense from an > engineering / business plan point of view. > > So it will probably be something I do "for fun", when I can find the > time.... and there are a lot of other projects where companies are > willing to sponsor engineers to add new features, such as encryption, > reflink support, data checksums, etc., where if I can help them land > those features, it's unfortunately going to be higher priority than my > personally working on compression support for ext4. > > But if someone is interested in working on it, they should talk to me; > I'd be happy to work with someone interested in working on the > project. > > - Ted > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? 2014-08-31 19:37 ` David Lang @ 2014-08-31 22:03 ` Theodore Ts'o 0 siblings, 0 replies; 10+ messages in thread From: Theodore Ts'o @ 2014-08-31 22:03 UTC (permalink / raw) To: David Lang; +Cc: cerowrt-devel On Sun, Aug 31, 2014 at 12:37:07PM -0700, David Lang wrote: > As a datapoint in this discussin, take a look at the openwrt thread > [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of > binaries produced by Barrier Breaker relative to Attitude Adjustment > > Apparently with BB they changed the gcc options on mips to produce 16 bit > code because it results in smaller binaries, but this cripples performance > in some cases > > It doesn't answer your funding issue, but it shows another case of people > being very sensitive to storage size. Right, but *wrt is a bit of a special case, since what we're trying to do here is shoehorn a different software load unto pre-existing hardware where someone else has already cost-optimized the BOM so that it only has, say, 8MB of flash instead of 16MB of flash. But if company is designing a new product from scratch, the delta to the BOM cost of using 16MB of flash versus 8MB of flash (unless the company is making gazillions of units) is probably not going to justify sponsoring an engineer to do open source work on a new file system feature. So I'm sure there are cases where people are sensitive to storage size --- including for example, handset companies who want to be able to install a newer version of Android on an older handset which doesn't have enough flash for Kit Kat, or some such.... (and I hear the peanut gallery burst into laughter at this point --- what? handset vendors caring about software updates? They *want* people to buy a new phone since that's the only way they get money out of the deal. And if they can use the excuse of, "so sorry, the handset doesn't have enough flash storage space to upgrade to Kit Kat", so much the better. :-) :-/ - Ted ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? 2014-08-31 7:05 ` David Lang 2014-08-31 16:45 ` Theodore Ts'o @ 2014-08-31 16:58 ` Dave Taht 1 sibling, 0 replies; 10+ messages in thread From: Dave Taht @ 2014-08-31 16:58 UTC (permalink / raw) To: David Lang; +Cc: cerowrt-devel On Sun, Aug 31, 2014 at 12:05 AM, David Lang <david@lang.hm> wrote: > On Sat, 30 Aug 2014, Theodore Ts'o wrote: > >>> A thing that irks me in the age of 4G flash becoming fairly common is the >>> general lack of compression aside from an option to btrfs. Debian barely >>> fits into 2 gb >> >> >> It depends on what you have installed, of course. I have a debian >> test image which gets used for ext4 testing which is 189 megabytes >> uncompressed, and 57 megabytes using qcow2 compression (it gets run >> using qemu/kvm)[1]. It's a basic debootstrap image plus a handful of >> packages[2] plus xfstests (which is 22 megabytes uncompressed). >> >> [1] ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/kvm-xfstests/ >> [2] >> https://git.kernel.org/cgit/fs/ext2/xfstests-bld.git/tree/kvm-xfstests/test-appliance/packages >> >> This is still much larger than 7 megabytes in the Cerowrt's root >> image, granted, but it is possible to make a relatively svelte >> debian-based image. >> >> >> I've considered implementing MacOS X style compression (immutable >> files, compression which happens in userspace, with decompression in >> the kernel.) The main reason why I haven't is that for most use >> cases, space hasn't really been that much of an issue, or most of the >> files are already compressed (i.e., Java or Dalvik classpath files >> which are already zip compressed). It wouldn't be _that_ hard to do, >> but it's just not that high up on most people's priority lists. > > > One other place this sort of thing is likely to be useful is for Raspberry > Pi and other small (embedded by some defintions) systems that use SD cards > for their OS system. The I/O to the storage is so slow that the saved I/O > time is likely to more than cover the cost of the decompression. > > Raspberry Pi systems have had to move to 4G cards as their base because it's > just not possible to have the standard install do more than boot on a 2G > card. Beaglebone blacks updated to 4G also due to the same issue in building a useful debian system in < 2G. ... and they increased the price 10 bucks. The CPE market is highly price sensitive (and generally has preferred flash soldiered to the board vs something removable) Other things that bug me (on the x86 front), is that the onboard flash there is usually just large enough for the BIOS. I had kind of figured that flash sizes there would have increased to 8 or more MB in the general case by now, which would make it more possible to boot openwrt off of available on board flash (along with openbios, if needed) Also the new systemd init system alone is bigger than available flash on most router platforms shipped last year; same goes for android. (which is why openwrt went their own way with the json based procd system: http://wiki.openwrt.org/doc/techref/procd ) Now, I don't know how much time we have left before there are no cost or power reduction benefits from absurdly small flash sizes (my gut feel is we passed those a while ago), but I do feel there are significant benefits in an age of small caches and weak processors, in keeping the footprint of the codebase small, and the centralized uci based configuration system (which works well with guis) in openwrt is unmatched by anything else - as is (now, in barrier breaker), the ipv6, and de-bufferbloating support, and other tight integrations with various cpe concepts. > David Lang -- Dave Täht NSFW: https://w2.eff.org/Censorship/Internet_censorship_bills/russell_0296_indecent.article ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? 2014-08-30 21:34 [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? Theodore Ts'o 2014-08-30 21:57 ` Dave Taht @ 2014-08-31 7:01 ` David Lang 1 sibling, 0 replies; 10+ messages in thread From: David Lang @ 2014-08-31 7:01 UTC (permalink / raw) To: Theodore Ts'o; +Cc: cerowrt-devel On Sat, 30 Aug 2014, Theodore Ts'o wrote: > Potentially stupid question. I was taking a look at > > http://wiki.openwrt.org/doc/techref/filesystems > > and there was discussion there about how using raw squashfs doesn't > deal with wear leveling and bad flash blocks, and that openwrt is now > using ubifs for all targets with raw NAND flash --- and my > understanding is that the WNDR 3800 uses raw NAND flash. The 3800 is the last generation before NAND flash started shipping, the 3700v4, 4300 etc have NAND flash, and that is why support for them lagged for a long time (just hitting this year, even though the routers have been out for a couple of years) David Lang > Is there any > particular reason why Cerowrt isn't using ubifs, or squashfs over ubi, > other than purely historical and/or this wasn't the research focus of Cerowrt? > > Thanks, > > - Ted > _______________________________________________ > Cerowrt-devel mailing list > Cerowrt-devel@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cerowrt-devel > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-08-31 22:03 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-08-30 21:34 [Cerowrt-devel] Is there a particular reason cerowrt isn't using UBIFS? Theodore Ts'o 2014-08-30 21:57 ` Dave Taht 2014-08-31 1:38 ` Theodore Ts'o 2014-08-31 7:05 ` David Lang 2014-08-31 16:45 ` Theodore Ts'o 2014-08-31 17:29 ` Dave Taht 2014-08-31 19:37 ` David Lang 2014-08-31 22:03 ` Theodore Ts'o 2014-08-31 16:58 ` Dave Taht 2014-08-31 7:01 ` David Lang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox