* Can jffs2 support XIP extensions? @ 2004-08-24 14:43 Christopher M Bergeron 2004-08-24 15:10 ` David Woodhouse 0 siblings, 1 reply; 8+ messages in thread From: Christopher M Bergeron @ 2004-08-24 14:43 UTC (permalink / raw) To: linux-mtd Does anyone know if jffs2 can utilize/support XIP (eXecute In Place)? I've read that only CramFS can work wit it. I'm a little unclear about how XIP works and it's implications with jffs2 / CramFS. Can anyone shed any light on this for me? Much thanks in advance... Chris B. P.S. Thanks for the replies re: my CVS question (and ipv6). I was hoping that ipv4 would have been restored by now, but I think this will give me the excuse to finally upgrade to ipv6. Also, thanks for the howto link David...! ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Can jffs2 support XIP extensions? 2004-08-24 14:43 Can jffs2 support XIP extensions? Christopher M Bergeron @ 2004-08-24 15:10 ` David Woodhouse 2004-08-24 18:27 ` Christopher M Bergeron 2004-08-24 18:54 ` Todd Poynor 0 siblings, 2 replies; 8+ messages in thread From: David Woodhouse @ 2004-08-24 15:10 UTC (permalink / raw) To: Christopher M Bergeron; +Cc: linux-mtd On Tue, 2004-08-24 at 10:43 -0400, Christopher M Bergeron wrote: > Does anyone know if jffs2 can utilize/support XIP (eXecute In Place)? > I've read that only CramFS can work wit it. I'm a little unclear about > how XIP works and it's implications with jffs2 / CramFS. > Can anyone shed any light on this for me? If you want Linux rather than something smaller, like eCos, then you almost certainly don't want XIP. XIP is for obvious reasons mutually exclusive with compression. You throw away flash space in order to save RAM and to make data and code access by the CPU slower. Flash is more expensive than RAM -- your board will be cheaper if you use half the flash and compress its contents, than it would be if you use half the _RAM_ and XIP instead. If you really really really care about power, then you might care that RAM actually takes more power at runtime than flash does. But then we'd just laugh at you for using Linux instead of something much smaller and in particular without a periodic timer tick :) In order to use XIP, you muck with the MMU to make mmap() of files on the file system actually set up page tables to point at the flash chip. You then have to care a lot about leaving the flash chip in read mode at all times when userspace might be looking at it. Because cramfs is a read-only file system, it's easy enough to do this. The files which are marked for XIP are carefully arranged so that each logical page is physically page-aligned on the medium to allow the MMU to map it. It would be a lot harder to achieve that in JFFS2, and largely pointless. The only reason for using XIP under Linux which is even vaguely sane is to improve boot time. But since the figures shown at OLS were comparing apples and oranges -- compressed non-XIP kernel vs. uncompressed XIP kernel, with a lot of the time taken being the actual decompression, I'm not entirely convinced. There may well be better alternatives, without the runtime and hardware overhead. -- dwmw2 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Can jffs2 support XIP extensions? 2004-08-24 15:10 ` David Woodhouse @ 2004-08-24 18:27 ` Christopher M Bergeron 2004-08-24 18:50 ` George G. Davis 2004-08-24 18:54 ` Todd Poynor 1 sibling, 1 reply; 8+ messages in thread From: Christopher M Bergeron @ 2004-08-24 18:27 UTC (permalink / raw) To: linux-mtd Unfortunately, boot time is my primary concern. However, I'm planning on booting an uncompressed linux kernel which should save quite a bit of boot time. I'd be curious to know how much of an improvement is gained by using XIP in an uncompressed kernel without XIP - versus - uncompressed kernel _with_ XIP. I would tend to think the difference is quite small, or OLS wouldn't have benchmarked with a compressed kernel against an uncompressed one. I think I'll steer clear of XIP for now... Since we're on the topic, does anyone have any pointers, website links or kernel patches that have tips on accelerating kernel boot time? Thanks! -CB David Woodhouse wrote: >On Tue, 2004-08-24 at 10:43 -0400, Christopher M Bergeron wrote: > > >>Does anyone know if jffs2 can utilize/support XIP (eXecute In Place)? >>I've read that only CramFS can work wit it. I'm a little unclear about >>how XIP works and it's implications with jffs2 / CramFS. >>Can anyone shed any light on this for me? >> >> > >If you want Linux rather than something smaller, like eCos, then you >almost certainly don't want XIP. > >XIP is for obvious reasons mutually exclusive with compression. You >throw away flash space in order to save RAM and to make data and code >access by the CPU slower. > >Flash is more expensive than RAM -- your board will be cheaper if you >use half the flash and compress its contents, than it would be if you >use half the _RAM_ and XIP instead. > >If you really really really care about power, then you might care that >RAM actually takes more power at runtime than flash does. But then we'd >just laugh at you for using Linux instead of something much smaller and >in particular without a periodic timer tick :) > >In order to use XIP, you muck with the MMU to make mmap() of files on >the file system actually set up page tables to point at the flash chip. >You then have to care a lot about leaving the flash chip in read mode at >all times when userspace might be looking at it. > >Because cramfs is a read-only file system, it's easy enough to do this. >The files which are marked for XIP are carefully arranged so that each >logical page is physically page-aligned on the medium to allow the MMU >to map it. It would be a lot harder to achieve that in JFFS2, and >largely pointless. > >The only reason for using XIP under Linux which is even vaguely sane is >to improve boot time. But since the figures shown at OLS were comparing >apples and oranges -- compressed non-XIP kernel vs. uncompressed XIP >kernel, with a lot of the time taken being the actual decompression, I'm >not entirely convinced. There may well be better alternatives, without >the runtime and hardware overhead. > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Can jffs2 support XIP extensions? 2004-08-24 18:27 ` Christopher M Bergeron @ 2004-08-24 18:50 ` George G. Davis 0 siblings, 0 replies; 8+ messages in thread From: George G. Davis @ 2004-08-24 18:50 UTC (permalink / raw) To: Christopher M Bergeron; +Cc: linux-mtd On Tue, Aug 24, 2004 at 02:27:01PM -0400, Christopher M Bergeron wrote: <snip> > Since we're on the topic, does anyone have any pointers, website links > or kernel patches that have tips on accelerating kernel boot time? http://tree.celinuxforum.org/pubwiki/moin.cgi/BootupTimeWorkingGroup <snip> -- Regards, George ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Can jffs2 support XIP extensions? 2004-08-24 15:10 ` David Woodhouse 2004-08-24 18:27 ` Christopher M Bergeron @ 2004-08-24 18:54 ` Todd Poynor 2004-08-24 19:10 ` Joshua Wise 1 sibling, 1 reply; 8+ messages in thread From: Todd Poynor @ 2004-08-24 18:54 UTC (permalink / raw) To: David Woodhouse; +Cc: linux-mtd David Woodhouse wrote: > If you really really really care about power, then you might care that > RAM actually takes more power at runtime than flash does. But then we'd > just laugh at you for using Linux instead of something much smaller and > in particular without a periodic timer tick :) A debate of the merits of various OS technologies for battery-powered portable devices would be interesting, but a number of awfully bright product designers are choosing Linux for *some* reason. ;) Makers of cell phones do really really care about power. And periodic timer ticks are being worked on (such as the Variable Scheduling Timeouts technology of George Anzinger's High Res Timers project). > The only reason for using XIP under Linux which is even vaguely sane is > to improve boot time. But since the figures shown at OLS were comparing > apples and oranges -- compressed non-XIP kernel vs. uncompressed XIP > kernel, with a lot of the time taken being the actual decompression, I'm > not entirely convinced. There may well be better alternatives, without > the runtime and hardware overhead. For the kernel boot time it's true that boot times tend to be dominated by the decompression step. I measured this on a couple platforms at one point (some of my measurements may have been in the OLS presentation, not sure). I didn't directly measure kernel boot times of an uncompressed non-XIP kernel, but would roughly guess an uncompressed non-XIP kernel would boot to /sbin/init in only about a few tens of milliseconds more time (I'm guessing about the increased time to copy an uncompressed tetx image to RAM) than an XIP kernel on a 266MHz PowerPC 405LP, and 168MHz OMAP ARM 926T is probably similar (it seems to better deal with the cache effects). Application startup times non-XIP vs. XIP, compared to either CramFS compressed or ROMFS uncompressed, can add up to a more significant savings -- about 2 seconds for a TinyX startup and app start in the configuration I tried. I have more data on kernel boot time, application startup, system sizing, and runtime performance benchmarks that I can send to anyone interested. And yes, lower-overhead alternative technologies to help reduce SDRAM needs and sub-second startup times for consumer electronics would be welcome and are the subject of various other projects... -- Todd Poynor MontaVista Software ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Can jffs2 support XIP extensions? 2004-08-24 18:54 ` Todd Poynor @ 2004-08-24 19:10 ` Joshua Wise 2004-08-25 6:08 ` Der Herr Hofrat 0 siblings, 1 reply; 8+ messages in thread From: Joshua Wise @ 2004-08-24 19:10 UTC (permalink / raw) To: Todd Poynor; +Cc: linux-mtd, David Woodhouse > For the kernel boot time it's true that boot times tend to be dominated > by the decompression step. I measured this on a couple platforms at one > point (some of my measurements may have been in the OLS presentation, > not sure). I didn't directly measure kernel boot times of an > uncompressed non-XIP kernel, but would roughly guess an uncompressed > non-XIP kernel would boot to /sbin/init in only about a few tens of > milliseconds more time (I'm guessing about the increased time to copy an > uncompressed tetx image to RAM) than an XIP kernel on a 266MHz PowerPC > 405LP, and 168MHz OMAP ARM 926T is probably similar (it seems to better > deal with the cache effects). Also remember that on many systems, flash is a lot slower than RAM, so it is entirely possible that an XIP kernel would actually be _SLOWER_ than non-XIP! joshua ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Can jffs2 support XIP extensions? 2004-08-24 19:10 ` Joshua Wise @ 2004-08-25 6:08 ` Der Herr Hofrat 2004-08-25 22:04 ` Todd Poynor 0 siblings, 1 reply; 8+ messages in thread From: Der Herr Hofrat @ 2004-08-25 6:08 UTC (permalink / raw) To: Joshua Wise; +Cc: linux-mtd, David Woodhouse > > For the kernel boot time it's true that boot times tend to be dominated > > by the decompression step. I measured this on a couple platforms at one > > point (some of my measurements may have been in the OLS presentation, > > not sure). I didn't directly measure kernel boot times of an > > uncompressed non-XIP kernel, but would roughly guess an uncompressed > > non-XIP kernel would boot to /sbin/init in only about a few tens of > > milliseconds more time (I'm guessing about the increased time to copy an > > uncompressed tetx image to RAM) than an XIP kernel on a 266MHz PowerPC > > 405LP, and 168MHz OMAP ARM 926T is probably similar (it seems to better > > deal with the cache effects). > Also remember that on many systems, flash is a lot slower than RAM, so > it is entirely possible that an XIP kernel would actually be _SLOWER_ > than non-XIP! > there are a number of examples of boot times and runtime performance posted on the web and ALL of them show that the boot times of XIP enabled kernels are primarily lower due to the kernel not being decompressed and other steps actually being slower. Table of bootup times: Boot Stage Non-XIP Time XIP Time Copy kernel to RAM 85 ms 12 ms Decompress kernel 453 ms 0 ms Kernel time to initialize (time to first user space program) 819 ms 882 ms Total kernel boot time 1357 ms 894 ms Reduction: - 463 ms (from: http://tree.celinuxforum.org/pubwiki/moin.cgi/KernelXIP) The execution times of most system calls are clearly longer (not sure if it was a 405/266 or a OMAP/168) fork was reported at 7.1 vs 4.8 us , trivial system calls will be about the same time (did not find the reference - if of interest I can dig it out). The only (?) real argument for XIP is system RAM requirements on very small systems (see: http://www.denx.de/twiki/publish/DULG/ConfigureLinuxForXIP.htm) hofrat ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Can jffs2 support XIP extensions? 2004-08-25 6:08 ` Der Herr Hofrat @ 2004-08-25 22:04 ` Todd Poynor 0 siblings, 0 replies; 8+ messages in thread From: Todd Poynor @ 2004-08-25 22:04 UTC (permalink / raw) To: Der Herr Hofrat; +Cc: David Woodhouse, linux-mtd Der Herr Hofrat wrote: > there are a number of examples of boot times and runtime performance posted > on the web and ALL of them show that the boot times of XIP > enabled kernels are primarily lower due to the kernel > not being decompressed and other steps actually being slower. > > Table of bootup times: > > Boot Stage Non-XIP Time XIP Time > Copy kernel to RAM 85 ms 12 ms > Decompress kernel 453 ms 0 ms > Kernel time to initialize > (time to first user space program) 819 ms 882 ms > Total kernel boot time 1357 ms 894 ms > Reduction: - 463 ms > > (from: http://tree.celinuxforum.org/pubwiki/moin.cgi/KernelXIP) Yes, those are the numbers I measured on a PPC405LP. The step of copying the necessary kernel image is also slower non-XIP, since XIP copies only the initialized data sections. If an uncompressed non-XIP image is used then that particular number will increase, partially offseting the gain due to skipping the decompression. Depending on the sizes involved XIP will likely be faster by a few tens or hundreds of milliseconds. When combined with application XIP of several executables and shared libraries from a CramFS filesystem this can add up to a significant gain; if ROMFS is used to avoid compression then the difference is less but still significant. > The execution times of most system calls are clearly longer (not sure if > it was a 405/266 or a OMAP/168) fork was reported at 7.1 vs 4.8 us , trivial > system calls will be about the same time (did not find the reference - if of > interest I can dig it out). Should be 7.1ms vs. 4.7ms, on OMAP (and 4.1ms vs. 1.1ms on PPC405LP, which seems to have a lower locality of reference or some other uninvestigated disadvantage running XIP). I've got the full LMbench runs and some additional experimentation that produced those numbers as well. The system will definitely run overall slower due to the slower memory, but certain operations such as the first exec of an image will be faster -- subsequent exec's of the same image may be as fast or faster after the block cache is warmed. > The only (?) real argument for XIP is system RAM requirements on very small > systems (see: http://www.denx.de/twiki/publish/DULG/ConfigureLinuxForXIP.htm) System startup time reduction (including applications) is certainly a consideration as well. After evaluating unit production cost, power consumption, startup time, and performance, some cell phone designers have chosen to go the XIP route, although no word on whether they'd choose it again the next time. ;) -- Todd Poynor MontaVista Software ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2004-08-25 22:04 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-08-24 14:43 Can jffs2 support XIP extensions? Christopher M Bergeron 2004-08-24 15:10 ` David Woodhouse 2004-08-24 18:27 ` Christopher M Bergeron 2004-08-24 18:50 ` George G. Davis 2004-08-24 18:54 ` Todd Poynor 2004-08-24 19:10 ` Joshua Wise 2004-08-25 6:08 ` Der Herr Hofrat 2004-08-25 22:04 ` Todd Poynor
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox