~ubuntu-branches/ubuntu/edgy/mtd/edgy

« back to all changes in this revision

Viewing changes to fs/jffs2/TODO

  • Committer: Bazaar Package Importer
  • Author(s): Riku Voipio
  • Date: 2005-01-23 12:56:16 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050123125616-jlum1hlbtsj2sx5f
Tags: 20050122-2
* Fix the version, darn
* Get rid of historic conflict, closes: #160614

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
$Id: TODO,v 1.3 2001/03/01 23:26:48 dwmw2 Exp $
 
1
$Id: TODO,v 1.17 2004/04/14 20:11:38 gleixner Exp $
2
2
 
3
 
 - disable compression in commit_write()? Or at least optimise the 'always write
4
 
        whole page' bit.
5
 
 - fix zlib. It's ugly as hell and there are at least three copies in the kernel tree
 
3
 - support asynchronous operation -- add a per-fs 'reserved_space' count,
 
4
   let each outstanding write reserve the _maximum_ amount of physical
 
5
   space it could take. Let GC flush the outstanding writes because the
 
6
   reservations will necessarily be pessimistic. With this we could even
 
7
   do shared writable mmap, if we can have a fs hook for do_wp_page() to
 
8
   make the reservation.
 
9
 - disable compression in commit_write()?
6
10
 - fine-tune the allocation / GC thresholds
7
11
 - chattr support - turning on/off and tuning compression per-inode
8
12
 - checkpointing (do we need this? scan is quite fast)
10
14
        mount doesn't have to read the flash twice for large files.
11
15
        Make this a per-inode option, changable with chattr, so you can
12
16
        decide which inodes should be in-core immediately after mount.
13
 
 - stop it depending on a block device. mount(8) needs a change for this.
14
 
 - make it work on NAND flash. We need to know when we can GC
15
 
        deletion dirents, etc. And think about holes/truncation. It can
16
 
        all be done reasonably simply, but it need implementing.
17
 
 - NAND flash will require new dirent/dnode structures on the medium with
18
 
        ECC data in rather than just the CRC we're using ATM.
19
17
 - test, test, test
20
18
 
 
19
 - NAND flash support:
 
20
        - almost done :)
 
21
        - use bad block check instead of the hardwired byte check
 
22
 
 
23
 - Optimisations:
 
24
   - Split writes so they go to two separate blocks rather than just c->nextblock.
 
25
        By writing _new_ nodes to one block, and garbage-collected REF_PRISTINE
 
26
        nodes to a different one, we can separate clean nodes from those which
 
27
        are likely to become dirty, and end up with blocks which are each far
 
28
        closer to 100% or 0% clean, hence speeding up later GC progress dramatically.
 
29
   - Stop keeping name in-core with struct jffs2_full_dirent. If we keep the hash in 
 
30
     the full dirent, we only need to go to the flash in lookup() when we think we've
 
31
     got a match, and in readdir(). 
 
32
   - Doubly-linked next_in_ino list to allow us to free obsoleted raw_node_refs immediately?
 
33
   - Remove totlen from jffs2_raw_node_ref? Need to have totlen passed into
 
34
        jffs2_mark_node_obsolete(). Can all callers work it out?
 
35
   - Remove size from jffs2_raw_node_frag.