xref: /plan9/sys/src/cmd/cwfs/doc/changes (revision 01a344a29f2ff35133953eaef092a50fc8c3163b)
1	changes to Ken's file server to make this 63-bit file server
2
3		Geoff Collyer
4		July—October 2004
5
6note: 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
9changed them to type Off (vlong); fixed all print formats to match.
10fixed byte-swapping for the 'x' config to match.
11
12• fixed VLONG 9p1 message packing and unpacking macros to actually
13handle 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
41note: 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
69