#10911 NORM 11.2.0-: investigate XO-1 build growth

Zarro Boogs per Child bugtracker at laptop.org
Thu May 26 07:52:22 EDT 2011


#10911: investigate XO-1 build growth
---------------------------------+------------------------------------------
           Reporter:  dsd        |       Owner:  dsd          
               Type:  task       |      Status:  new          
           Priority:  normal     |   Milestone:  11.2.0-final 
          Component:  distro     |     Version:  not specified
         Resolution:             |    Keywords:               
        Next_action:  never set  |    Verified:  0            
Deployment_affected:             |   Blockedby:               
           Blocking:             |  
---------------------------------+------------------------------------------

Comment(by dsd):

 IRC conversation suggests that a ubifs space inefficiency (compared to
 jffs2) is to be expected, but there is room for improvement.

 {{{
 12:16 < dedekind_> Only UBI wastes ~15MiB
 12:17 < dedekind_> because it takes 2 KiB from each eraseblock
 12:17 < dedekind_> because AFAIR cafe controller does not support sub-
 pages
 12:18 < dedekind_> dsd, with a fair amount of work it is possible to
 optimize
                    things
 12:18 < dedekind_> dsd, space efficiency has not been our concern
 12:18 < dsd> ah yes, our wiki notes "    If we can enable sub-page writes
 on
              our flash device, we can recover some extra space from UBI. "
 12:19 < dedekind_> yes, around 7-8 MiB
 12:19 < dsd> i'll look into that
 12:19 < dedekind_> but AFAIR this is a controller limitation, dwmw2 should
 know
 12:19 < dedekind_> dsd, of course things like using zlib could help
 12:19 < dedekind_> dsd, but they have a side effect
 12:19 < dwmw2> er
 12:20 < dwmw2> why wouldn't we support sub-pages? Just because our HW ECC
                doesn't cope?
 12:20 < dedekind_> dwmw2, yes
 12:20  * dwmw2 tries to remember the café hw ecc
 12:20 < dedekind_> dwmw2, but if you could hack the driver and use SW ecc
 for
                    the first page ...
 12:20 < dwmw2> I thought it supported 512-byte pages, which would have
 meant it
                was *likely* to support subpages too (although not
 guaranteed)
 12:20 < dwmw2> oh, wait.
 12:20 < dedekind_> dsd, that may give even more that 7-8 MiB because
 you'll fit
                    more nodes and spend less
 12:21 < dsd> ok, that would be 1 step
 12:21 < dwmw2> I think it hard-codes the layout, with the ecc in last
 bytes of
                the 2KiB page
 12:21 < dsd> i'll look into it
 12:21 < dwmw2> I don't think it can support subpages with hardware ecc
 12:21 < dwmw2> you'd have to do it in software
 12:22 < dedekind_> dwmw2, could there be a hack - use sw ECC for the first
 page
                    ?
 12:22 < dwmw2> 'first page'?
 12:22 < dedekind_> firs NAND page of every eraseblock
 12:22 < dwmw2> oh
 12:22 < dwmw2> ew :)
 12:22 < dedekind_> where we store headers and need sub-pages
 12:22 < dedekind_> we do not need them for the rest
 12:24 < dedekind_> dsd, the other easy thing to do could be to just make
 UBIFS
                    on-flash data structures smaller, but this would make
 olpc
                    incompatible with stock kernels
 12:24 < dedekind_> dsd, currently we have plenty of "reserved for future"
 bytes
                    in node headers
 12:24 < dedekind_> see ubifs-media.h
 12:25 < dsd> mm ok, i'll try that at least as an experiment to see how
 much
              difference it makes
 12:25 < dedekind_> dsd, and also, there is a possiblity to make UBIFS
 reserve
                    less for internal needs, but I would not suggest to
 touch
                    that - it can open a can of worms
 12:25 < dedekind_> unless you have plenty of time, of course
 12:27 < dedekind_> dsd, we tried to make things correctly, but of course
 there
                    is no guarantee that everything will work well if you
 just
                    change size of UBIFS node headers
 12:27 < dedekind_> dsd, but in theory - it should work
 12:27 < dsd> i dont have "plenty" but i certainly have time to run
 experiments
              such as these and post numbers to your mailing list, be
              responsive, and hope that i can spur some developer interest
 12:28 < dsd> dilinger will also be interested in this, he is also playing
 with
              ubifs on debian on XO
 12:31 < dedekind_> dsd, unfortunately I have no time to really look at
 this
 12:32 < dedekind_> dsd, but there is for sure enough room to optimize
 space
                    overhead
 12:32 < dedekind_> dsd, but you cannot make it as good as in JFFS2 for
 sure
 }}}

-- 
Ticket URL: <http://dev.laptop.org/ticket/10911#comment:4>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system


More information about the Bugs mailing list