]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/cwfs/doc/changes
merge
[plan9front.git] / sys / src / cmd / cwfs / doc / changes
1         changes to Ken's file server to make this 63-bit file server
2
3                 Geoff Collyer
4                 July—October 2004
5
6 note: 2⁶⁳=9,223,372,036,854,775,808 or 8EB (9.2×10ⁱ⁸)
7
8 • identified longs that refer to offsets, sizes and block numbers, and
9 changed them to type Off (vlong); fixed all print formats to match.
10 fixed byte-swapping for the 'x' config to match.
11
12 • fixed VLONG 9p1 message packing and unpacking macros to actually
13 handle 64-bit offsets and sizes.
14
15 • implemented triple-indirect blocks.  affected code in
16         dev/cw.c        port/con.c      port/dentry.c   port/sub.c
17         port/chk.c      port/console.c  port/portdat.h
18
19 • Fri Aug  6 16:50:59 PDT 2004
20         ; ./sizes
21         Plan 9 v4 63-bit file server
22                 sizeof(Dentry) = 124
23                 sizeof(Cache)  =  88
24
25 • added long(er) file name components (56 bytes), long enough for all but one
26   name in my /.longnames file (68-byte .xml name).
27
28 • Fri Aug  6 21:43:41 PDT 2004
29         ; ./sizes
30         Plan 9 v4 63-bit file server sizes
31                 sizeof(Dentry) = 160
32                 sizeof(Cache)  =  88
33
34 • touched up lib.h (from libc.h) to bring it up to date with formatting
35   functions, verbs & flags.
36 • check now reports stack usage: 320 bytes upon entry to fsck first time,
37   92 bytes of stack per recursion.  given 16000 bytes of stack,
38   that's 170 recursions maximum.
39 • booted xtc (terminal) from fs64 (used fs64 as main file system)
40
41 note: current file server with triple-indirect blocks at 4k block size
42         has a maximum file size of ~505GB (5.42×10ⁱⁱ).
43         with quadruple-indirect blocks, max would be ~275TB @ 4k block size.
44
45 • got igbe fs driver working (a couple small changes)
46 • eliminated some gotos (started with 580, down to 454)
47 • added quadruple indirect blocks: lets us reach 2⁶⁳ with a 32kB block size
48 • got igbe boot driver & pxe booting working
49 • on-disk qid paths are now Offs, but 9p1 qids on the wire are still ulongs
50 • generalised & parameterised indirect block implementation
51 • tested with plain w0 fs, cached fake worm on w0, cw jukebox (hp 160fx)
52 • ip directories in fs & fs64 are identical except for whitespace and
53   goto-elimination
54 • replaced most of nemo's ide code with newer ide code lifted from 9load,
55   then from cpu kernel (sdata.c & support).  this brings us dma, rwm & lba48,
56   finds ide controllers by itself, even pci ones, & copes with dead drives
57   (i.e., doesn't panic).
58 • fixed long-standing bug that caused a 5-second delay before each console
59   prompt on systems without a serial console.
60 • further type parameterisation: Userid (short), Timet (long), Devsize (vlong).
61     Comment on v7 kernel portability work, quoting scj & dmr from BSTJ v57
62     #6 part 2., p. 2038: ``The important data types used within the
63     system were identified and specified using typedef: disk offsets,
64     absolute times, internal device names, and the like.  This effort was
65     carried out by K. Thompson.''
66 • corrected compat.h dependencies in mkfiles
67 • eliminated all warnings
68 • implemented truncation via wstat