Browse Source

Plan 9 from Bell Labs 2008-10-16

David du Colombier 12 years ago
parent
commit
cf886ef796

+ 11 - 11
adm/timezone/Australia_NSW

@@ -11,14 +11,14 @@ EST 36000 EST 39600
  909280800  920772000  941335200  952221600  972784800  983671200
 1004234400 1015120800 1035684000 1046570400 1067133600 1078624800
 1099188000 1110074400 1130637600 1141524000 1162087200 1172973600
-1193536800 1204423200 1224986400 1235872800 1256436000 1267927200
-1288490400 1299376800 1319940000 1330826400 1351389600 1362276000
-1382839200 1393725600 1414288800 1425175200 1445738400 1457229600
-1477792800 1488679200 1509242400 1520128800 1540692000 1551578400
-1572141600 1583028000 1603591200 1615082400 1635645600 1646532000
-1667095200 1677981600 1698544800 1709431200 1729994400 1740880800
-1761444000 1772330400 1792893600 1804384800 1824948000 1835834400
-1856397600 1867284000 1887847200 1898733600 1919296800 1930183200
-1950746400 1962237600 1982800800 1993687200 2014250400 2025136800
-2045700000 2056586400 2077149600 2088036000 2108599200 2119485600
-2140048800
+1193536800 1207447200 1223172000 1238896800 1254621600 1270346400
+1286071200 1301796000 1317520800 1333245600 1349575200 1365300000
+1381024800 1396749600 1412474400 1428199200 1443924000 1459648800
+1475373600 1491098400 1506823200 1522548000 1538877600 1554602400
+1570327200 1586052000 1601776800 1617501600 1633226400 1648951200
+1664676000 1680400800 1696125600 1712455200 1728180000 1743904800
+1759629600 1775354400 1791079200 1806804000 1822528800 1838253600
+1853978400 1869703200 1886032800 1901757600 1917482400 1933207200
+1948932000 1964656800 1980381600 1996106400 2011831200 2027556000
+2043280800 2059005600 2075335200 2091060000 2106784800 2122509600
+2138234400

+ 11 - 11
adm/timezone/Australia_Victoria

@@ -11,14 +11,14 @@ EST 36000 EST 39600
  909280800  920772000  941335200  952221600  972784800  983671200
 1004234400 1015120800 1035684000 1046570400 1067133600 1078624800
 1099188000 1110074400 1130637600 1141524000 1162087200 1172973600
-1193536800 1204423200 1224986400 1235872800 1256436000 1267927200
-1288490400 1299376800 1319940000 1330826400 1351389600 1362276000
-1382839200 1393725600 1414288800 1425175200 1445738400 1457229600
-1477792800 1488679200 1509242400 1520128800 1540692000 1551578400
-1572141600 1583028000 1603591200 1615082400 1635645600 1646532000
-1667095200 1677981600 1698544800 1709431200 1729994400 1740880800
-1761444000 1772330400 1792893600 1804384800 1824948000 1835834400
-1856397600 1867284000 1887847200 1898733600 1919296800 1930183200
-1950746400 1962237600 1982800800 1993687200 2014250400 2025136800
-2045700000 2056586400 2077149600 2088036000 2108599200 2119485600
-2140048800
+1193536800 1207447200 1223172000 1238896800 1254621600 1270346400
+1286071200 1301796000 1317520800 1333245600 1349575200 1365300000
+1381024800 1396749600 1412474400 1428199200 1443924000 1459648800
+1475373600 1491098400 1506823200 1522548000 1538877600 1554602400
+1570327200 1586052000 1601776800 1617501600 1633226400 1648951200
+1664676000 1680400800 1696125600 1712455200 1728180000 1743904800
+1759629600 1775354400 1791079200 1806804000 1822528800 1838253600
+1853978400 1869703200 1886032800 1901757600 1917482400 1933207200
+1948932000 1964656800 1980381600 1996106400 2011831200 2027556000
+2043280800 2059005600 2075335200 2091060000 2106784800 2122509600
+2138234400

+ 9 - 0
cfg/example/consoledb

@@ -0,0 +1,9 @@
+group=sys
+	uid=bootes
+	uid=gre
+console=fs dev=/srv/fscons.main
+	gid=sys
+console=other dev=/srv/fscons.other
+	gid=sys
+console=stand dev=/srv/fscons.stand
+	gid=sys

+ 2 - 0
cfg/example/namespace

@@ -0,0 +1,2 @@
+# local additions to the namespace
+# mount /srv/consoles /mnt/consoles

+ 36 - 34
dist/replica/_plan9.db

@@ -1,8 +1,8 @@
 386 - 20000000775 sys sys 1212011208 0
-386/9load - 775 sys sys 1212010540 341552
-386/9loaddebug - 775 sys sys 1212010545 455911
-386/9loadlite - 775 sys sys 1212010543 164328
-386/9loadlitedebug - 775 sys sys 1212010546 240926
+386/9load - 775 sys sys 1224095494 342620
+386/9loaddebug - 775 sys sys 1224095495 457435
+386/9loadlite - 775 sys sys 1224095495 164828
+386/9loadlitedebug - 775 sys sys 1224095496 241615
 386/9pc - 775 sys sys 1216152518 2130687
 386/9pc.gz - 664 sys sys 1216152539 912822
 386/9pccpu - 775 sys sys 1216152687 2245388
@@ -11,8 +11,8 @@
 386/9pcdisk.gz - 664 sys sys 1216152780 990292
 386/9pcf - 775 sys sys 1216152607 2993916
 386/9pcf.gz - 664 sys sys 1216152637 1273103
-386/9pxeload - 775 sys sys 1212010541 341556
-386/9pxeloaddebug - 775 sys sys 1212010542 455922
+386/9pxeload - 775 sys sys 1224095496 342624
+386/9pxeloaddebug - 775 sys sys 1224095497 457446
 386/bin - 20000000775 sys sys 1219508203 0
 386/bin/8a - 775 sys sys 1209614029 116545
 386/bin/8c - 775 sys sys 1209614036 367225
@@ -761,13 +761,13 @@ adm/timezone/Argentina - 664 adm adm 1116737181 22
 adm/timezone/Australia_ACT - 664 adm adm 1020369287 1483
 adm/timezone/Australia_Broken-Hill - 664 adm adm 1020369287 1483
 adm/timezone/Australia_LHI - 664 adm adm 1020313575 1483
-adm/timezone/Australia_NSW - 664 adm adm 1020313575 1483
+adm/timezone/Australia_NSW - 664 adm adm 1224116005 1483
 adm/timezone/Australia_North - 664 adm adm 1020313575 20
 adm/timezone/Australia_Queensland - 664 adm adm 1020313576 108
 adm/timezone/Australia_South - 664 adm adm 1020313576 1483
 adm/timezone/Australia_Sturt - 664 adm adm 1020369287 1483
 adm/timezone/Australia_Tasmania - 664 adm adm 1020369287 1516
-adm/timezone/Australia_Victoria - 664 adm adm 1020313576 1483
+adm/timezone/Australia_Victoria - 664 adm adm 1224116005 1483
 adm/timezone/Australia_West - 664 adm adm 1193791016 130
 adm/timezone/Australia_Yancowinna - 664 adm adm 1020313576 1483
 adm/timezone/Brazil_Acre - 664 adm adm 1020369287 1133
@@ -896,7 +896,9 @@ arm/lib/ape - 20000000775 sys sys 1020896375 0
 arm/mkfile - 664 sys sys 948141303 46
 cfg - 20000000775 sys sys 1177628278 0
 cfg/example - 20000000775 sys sys 1187225912 0
+cfg/example/consoledb - 664 sys sys 1224083807 162
 cfg/example/cpurc - 775 sys sys 1187226177 266
+cfg/example/namespace - 664 sys sys 1224083391 71
 cfg/example/termrc - 775 sys sys 1177628544 195
 cron - 20000000777 sys sys 1183239070 0
 cron/upas - 20000000775 upas sys 1183239050 0
@@ -7693,7 +7695,7 @@ sys/man/3 - 20000000775 sys sys 1206923648 0
 sys/man/3/0intro - 664 sys sys 1196638941 1873
 sys/man/3/INDEX - 664 sys sys 1222657690 484
 sys/man/3/INDEX.html - 664 sys sys 1196638941 3691
-sys/man/3/aoe - 664 sys sys 1212183705 6647
+sys/man/3/aoe - 664 sys sys 1224094651 6650
 sys/man/3/apm - 664 sys sys 1196638941 1625
 sys/man/3/arch - 664 sys sys 1196638941 1425
 sys/man/3/audio - 664 sys sys 1212176738 2957
@@ -7745,7 +7747,7 @@ sys/man/4/execnet - 664 sys sys 1196638943 1069
 sys/man/4/exportfs - 664 sys sys 1196638943 4655
 sys/man/4/ext2srv - 664 sys sys 1196638943 2409
 sys/man/4/factotum - 664 sys sys 1205008879 14844
-sys/man/4/fossil - 664 sys sys 1196638943 9592
+sys/man/4/fossil - 664 sys sys 1224094660 9848
 sys/man/4/fs - 664 sys sys 1196638943 3441
 sys/man/4/ftpfs - 664 sys sys 1196638943 4895
 sys/man/4/httpfile - 664 sys sys 1196638943 1233
@@ -7755,7 +7757,7 @@ sys/man/4/keyfs - 664 sys sys 1196638943 5048
 sys/man/4/kfs - 664 sys sys 1196638943 2164
 sys/man/4/lnfs - 664 sys sys 1196638943 1219
 sys/man/4/mntgen - 664 sys sys 1196638943 473
-sys/man/4/namespace - 664 sys sys 1196638943 7177
+sys/man/4/namespace - 664 sys sys 1224083611 7329
 sys/man/4/nfs - 664 sys sys 1196638943 4475
 sys/man/4/nntpfs - 664 sys sys 1196638943 2771
 sys/man/4/paqfs - 664 sys sys 1196638944 1848
@@ -7864,7 +7866,7 @@ sys/man/8/fsconfig - 664 sys sys 1196638946 8890
 sys/man/8/fshalt - 664 sys sys 1196638947 862
 sys/man/8/getflags - 664 sys sys 1196638947 1713
 sys/man/8/gpsfs - 664 sys sys 1223562059 5097
-sys/man/8/httpd - 664 sys sys 1196638947 6866
+sys/man/8/httpd - 664 sys sys 1224114119 6957
 sys/man/8/init - 664 sys sys 1196638947 1430
 sys/man/8/ipconfig - 664 sys sys 1205960389 8284
 sys/man/8/ipserv - 664 sys sys 1208190062 3272
@@ -7909,9 +7911,9 @@ sys/man/8/tlssrv - 664 sys sys 1196638948 2589
 sys/man/8/trampoline - 664 sys sys 1196638948 1199
 sys/man/8/udpecho - 664 sys sys 1196638948 303
 sys/man/8/update - 664 sys sys 1196638948 2336
-sys/man/8/venti - 664 sys sys 1197570117 12190
+sys/man/8/venti - 664 sys sys 1224094620 12539
 sys/man/8/venti-backup - 664 sys sys 1202925137 2290
-sys/man/8/venti-fmt - 664 sys sys 1196638948 8626
+sys/man/8/venti-fmt - 664 sys sys 1224116733 8678
 sys/man/8/vga - 664 sys sys 1196638948 4129
 sys/man/8/wol - 664 sys sys 1205960109 743
 sys/man/fonts - 664 sys sys 1196638948 218
@@ -8126,20 +8128,20 @@ sys/src/9/pc/ether79c970.c - 664 sys sys 1160070602 14088
 sys/src/9/pc/ether8003.c - 664 sys sys 1015014516 6665
 sys/src/9/pc/ether8139.c - 664 sys sys 1185650567 19974
 sys/src/9/pc/ether8169.c - 664 sys sys 1185812348 26931
-sys/src/9/pc/ether82543gc.c - 664 sys sys 1131290377 32294
+sys/src/9/pc/ether82543gc.c - 664 sys sys 1224095733 32347
 sys/src/9/pc/ether82557.c - 664 sys sys 1211922643 30457
 sys/src/9/pc/ether82563.c - 664 sys sys 1223767244 39197
 sys/src/9/pc/ether82598.c - 664 sys sys 1203982856 18364
 sys/src/9/pc/ether83815.c - 664 sys sys 1172259521 26346
 sys/src/9/pc/ether8390.c - 664 sys sys 1131290377 17702
 sys/src/9/pc/ether8390.h - 664 sys sys 1015014517 1511
-sys/src/9/pc/etherdp83820.c - 664 sys sys 1184468435 29621
+sys/src/9/pc/etherdp83820.c - 664 sys sys 1224095715 29674
 sys/src/9/pc/etherec2t.c - 664 sys sys 1135784135 4092
 sys/src/9/pc/etherelnk3.c - 664 sys sys 1158012427 48807
 sys/src/9/pc/etherga620.c - 664 sys sys 1185652495 29895
 sys/src/9/pc/etherga620fw.h - 664 sys sys 1026847642 222295
 sys/src/9/pc/etherif.h - 664 sys sys 1088178711 961
-sys/src/9/pc/etherigbe.c - 664 sys sys 1204240380 46146
+sys/src/9/pc/etherigbe.c - 664 sys sys 1224095697 46199
 sys/src/9/pc/etherm10g.c - 664 sys sys 1202453395 28413
 sys/src/9/pc/etherm10g2k.i - 664 sys sys 1202131465 1094881
 sys/src/9/pc/etherm10g4k.i - 664 sys sys 1202131484 1065187
@@ -8178,7 +8180,7 @@ sys/src/9/pc/pcdisk - 664 sys sys 1204231795 1623
 sys/src/9/pc/pcf - 664 sys sys 1215977995 1675
 sys/src/9/pc/pcfl - 664 sys sys 1188582378 1579
 sys/src/9/pc/pcflop - 664 sys sys 1190853787 1540
-sys/src/9/pc/pci.c - 664 sys sys 1196312222 29483
+sys/src/9/pc/pci.c - 664 sys sys 1224095629 29548
 sys/src/9/pc/pcmciamodem.c - 664 sys sys 1191476436 1591
 sys/src/9/pc/pcmkfile - 664 sys sys 1109303822 101
 sys/src/9/pc/piix4smbus.c - 664 sys sys 1184467714 5324
@@ -8192,7 +8194,7 @@ sys/src/9/pc/screen.c - 664 sys sys 1184522395 13973
 sys/src/9/pc/screen.h - 664 sys sys 1147023549 4256
 sys/src/9/pc/sd53c8xx.c - 664 sys sys 1211521147 55313
 sys/src/9/pc/sd53c8xx.n - 664 sys sys 1131290556 12657
-sys/src/9/pc/sdata.c - 664 sys sys 1213134383 53299
+sys/src/9/pc/sdata.c - 664 sys sys 1224095633 53421
 sys/src/9/pc/sdiahci.c - 664 sys sys 1213134393 39005
 sys/src/9/pc/sdmv50xx.c - 664 sys sys 1204232564 34031
 sys/src/9/pc/sdmylex.c - 664 sys sys 1189229947 28395
@@ -8244,7 +8246,7 @@ sys/src/9/port/chan.c - 664 sys sys 1218341699 34955
 sys/src/9/port/cis.c - 664 sys sys 1099761153 9248
 sys/src/9/port/debugalloc.c - 664 sys sys 1014931171 10402
 sys/src/9/port/dev.c - 664 sys sys 1218341650 8203
-sys/src/9/port/devaoe.c - 664 sys sys 1218341718 42083
+sys/src/9/port/devaoe.c - 664 sys sys 1224095152 42084
 sys/src/9/port/devaudio.c - 664 sys sys 1218341736 21192
 sys/src/9/port/devbridge.c - 664 sys sys 1204227718 24003
 sys/src/9/port/devcap.c - 664 sys sys 1178886040 4141
@@ -8275,7 +8277,7 @@ sys/src/9/port/devwd.c - 664 sys sys 1126582325 2342
 sys/src/9/port/edf.c - 664 sys sys 1218341914 13586
 sys/src/9/port/edf.h - 664 sys sys 1138469072 1195
 sys/src/9/port/error.h - 664 sys sys 1204179766 2688
-sys/src/9/port/fault.c - 664 sys sys 1218341927 7407
+sys/src/9/port/fault.c - 664 sys sys 1224095171 7452
 sys/src/9/port/initcode.c - 664 sys sys 1055688491 574
 sys/src/9/port/latin1.c - 664 sys sys 1015278339 1418
 sys/src/9/port/latin1.h - 664 sys sys 1184794985 3575
@@ -8306,7 +8308,7 @@ sys/src/9/port/portfns.h - 664 sys sys 1206317920 11095
 sys/src/9/port/portmkfile - 664 sys sys 1184737233 2082
 sys/src/9/port/print.c - 664 sys sys 1014931178 227
 sys/src/9/port/proc.c - 664 sys sys 1218341949 28813
-sys/src/9/port/qio.c - 664 sys sys 1197732972 23616
+sys/src/9/port/qio.c - 664 sys sys 1224095231 23629
 sys/src/9/port/qlock.c - 664 sys sys 1218341971 3299
 sys/src/9/port/rdb.c - 664 sys sys 1184465938 1704
 sys/src/9/port/rebootcmd.c - 664 sys sys 1015278340 1561
@@ -9248,14 +9250,14 @@ sys/src/boot/pc/pbs.s - 664 sys sys 1143465387 8291
 sys/src/boot/pc/pbsdebug.s - 664 sys sys 1205786244 6371
 sys/src/boot/pc/pbslba.s - 664 sys sys 1186031549 8180
 sys/src/boot/pc/pbslbadebug.s - 664 sys sys 1205786244 6021
-sys/src/boot/pc/pci.c - 664 sys sys 1216784600 20769
+sys/src/boot/pc/pci.c - 664 sys sys 1224095564 20831
 sys/src/boot/pc/print.c - 664 sys sys 1094674483 219
 sys/src/boot/pc/queue.c - 664 sys sys 1015007954 566
 sys/src/boot/pc/sd.h - 664 sys sys 1200690169 2249
 sys/src/boot/pc/sd53c8xx.c - 664 sys sys 1186031515 52082
 sys/src/boot/pc/sd53c8xx.i - 664 sys sys 1015007955 27245
 sys/src/boot/pc/sdaoe.c - 664 sys sys 1223515593 11739
-sys/src/boot/pc/sdata.c - 664 sys sys 1213134120 39148
+sys/src/boot/pc/sdata.c - 664 sys sys 1224095579 39270
 sys/src/boot/pc/sdbios.c - 664 sys sys 1212010334 3280
 sys/src/boot/pc/sdiahci.c - 664 sys sys 1213134135 28620
 sys/src/boot/pc/sdmylex.c - 664 sys sys 1171783051 28694
@@ -10421,7 +10423,7 @@ sys/src/cmd/fossil/9auth.c - 664 sys sys 1189552651 3972
 sys/src/cmd/fossil/9dir.c - 664 sys sys 1085333382 2219
 sys/src/cmd/fossil/9excl.c - 664 sys sys 1042005502 1887
 sys/src/cmd/fossil/9fid.c - 664 sys sys 1189110070 5584
-sys/src/cmd/fossil/9fsys.c - 664 sys sys 1204179530 34157
+sys/src/cmd/fossil/9fsys.c - 664 sys sys 1224094753 35312
 sys/src/cmd/fossil/9lstn.c - 664 sys sys 1147355153 3038
 sys/src/cmd/fossil/9p.c - 664 sys sys 1189110070 22957
 sys/src/cmd/fossil/9ping.c - 664 sys sys 1042005503 1563
@@ -10430,7 +10432,7 @@ sys/src/cmd/fossil/9srv.c - 664 sys sys 1138465941 3956
 sys/src/cmd/fossil/9user.c - 664 sys sys 1181842829 17277
 sys/src/cmd/fossil/Ccli.c - 664 sys sys 1042005504 1624
 sys/src/cmd/fossil/Ccmd.c - 664 sys sys 1138465941 7985
-sys/src/cmd/fossil/Ccons.c - 664 sys sys 1055703737 6620
+sys/src/cmd/fossil/Ccons.c - 664 sys sys 1224094773 6725
 sys/src/cmd/fossil/Clog.c - 664 sys sys 1189638175 665
 sys/src/cmd/fossil/archive.c - 664 sys sys 1087005594 10230
 sys/src/cmd/fossil/build - 664 sys sys 1042005505 449
@@ -10451,10 +10453,10 @@ sys/src/cmd/fossil/flchk.c - 664 sys sys 1189575301 1806
 sys/src/cmd/fossil/flfmt.c - 664 sys sys 1189575499 10757
 sys/src/cmd/fossil/flfmt9660.c - 664 sys sys 1210357713 12316
 sys/src/cmd/fossil/flfmt9660.h - 664 sys sys 1072830621 134
-sys/src/cmd/fossil/flproto - 664 sys sys 1173736837 222
+sys/src/cmd/fossil/flproto - 664 sys sys 1224094835 228
 sys/src/cmd/fossil/fns.h - 664 sys sys 1189552875 3262
 sys/src/cmd/fossil/fossil-acid - 664 sys sys 1199304805 4367
-sys/src/cmd/fossil/fossil.c - 664 sys sys 1077896345 2435
+sys/src/cmd/fossil/fossil.c - 664 sys sys 1224094852 2601
 sys/src/cmd/fossil/fs.c - 664 sys sys 1177432004 21598
 sys/src/cmd/fossil/fs.h - 664 sys sys 1189552775 1606
 sys/src/cmd/fossil/history - 664 sys sys 1055703793 1400
@@ -14365,19 +14367,19 @@ sys/src/cmd/venti/ro.c - 664 sys sys 1177189435 1886
 sys/src/cmd/venti/root.c - 664 sys sys 1177189435 1329
 sys/src/cmd/venti/srv - 20000000775 sys sys 1196687844 0
 sys/src/cmd/venti/srv/arena.c - 664 sys sys 1207253133 20156
-sys/src/cmd/venti/srv/arenas.c - 664 sys sys 1211224670 8048
+sys/src/cmd/venti/srv/arenas.c - 664 sys sys 1224094524 8107
 sys/src/cmd/venti/srv/bloom.c - 664 sys sys 1196369124 4445
 sys/src/cmd/venti/srv/buildbuck.c - 664 sys sys 1177189435 2837
 sys/src/cmd/venti/srv/buildindex.c - 664 sys sys 1212974464 21739
-sys/src/cmd/venti/srv/checkarenas.c - 664 sys sys 1191257304 2310
+sys/src/cmd/venti/srv/checkarenas.c - 664 sys sys 1224094551 2335
 sys/src/cmd/venti/srv/checkindex.c - 664 sys sys 1179342633 5978
 sys/src/cmd/venti/srv/clump.c - 664 sys sys 1191257297 5316
 sys/src/cmd/venti/srv/clumpstats.c - 664 sys sys 1142736351 2234
 sys/src/cmd/venti/srv/cmparenas.c - 664 sys sys 1177189435 7215
 sys/src/cmd/venti/srv/conf.rc - 775 sys sys 1189304120 1416
 sys/src/cmd/venti/srv/config.c - 664 sys sys 1191257289 5659
-sys/src/cmd/venti/srv/conv.c - 664 sys sys 1207253152 15161
-sys/src/cmd/venti/srv/dat.h - 664 sys sys 1211224696 19089
+sys/src/cmd/venti/srv/conv.c - 664 sys sys 1224094556 15275
+sys/src/cmd/venti/srv/dat.h - 664 sys sys 1224094516 19158
 sys/src/cmd/venti/srv/dcache.c - 664 sys sys 1196369150 15782
 sys/src/cmd/venti/srv/disksched.c - 664 sys sys 1193791117 2127
 sys/src/cmd/venti/srv/dump.c - 664 sys sys 1142736352 1642
@@ -14400,7 +14402,7 @@ sys/src/cmd/venti/srv/lump.c - 664 sys sys 1191257295 4947
 sys/src/cmd/venti/srv/lumpcache.c - 664 sys sys 1196369165 8897
 sys/src/cmd/venti/srv/lumpqueue.c - 664 sys sys 1142736354 2722
 sys/src/cmd/venti/srv/mirrorarenas.c - 664 sys sys 1191257291 10802
-sys/src/cmd/venti/srv/mkfile - 664 sys sys 1191430751 1300
+sys/src/cmd/venti/srv/mkfile - 664 sys sys 1224094563 1317
 sys/src/cmd/venti/srv/part.c - 664 sys sys 1191217317 4500
 sys/src/cmd/venti/srv/png.c - 664 sys sys 1142736354 3729
 sys/src/cmd/venti/srv/printarena.c - 664 sys sys 1210358027 2669
@@ -14423,7 +14425,7 @@ sys/src/cmd/venti/srv/trace.c - 664 sys sys 1142736356 709
 sys/src/cmd/venti/srv/unittoull.c - 664 sys sys 1142736356 471
 sys/src/cmd/venti/srv/unwhack.c - 664 sys sys 1142736356 3191
 sys/src/cmd/venti/srv/utils.c - 664 sys sys 1193791159 3751
-sys/src/cmd/venti/srv/venti.c - 664 sys sys 1196382019 5604
+sys/src/cmd/venti/srv/venti.c - 664 sys sys 1224094584 7619
 sys/src/cmd/venti/srv/verifyarena.c - 664 sys sys 1191257292 5776
 sys/src/cmd/venti/srv/whack.c - 664 sys sys 1142736357 6419
 sys/src/cmd/venti/srv/whack.h - 664 sys sys 1142736357 966

+ 36 - 34
dist/replica/plan9.db

@@ -1,8 +1,8 @@
 386 - 20000000775 sys sys 1212011208 0
-386/9load - 775 sys sys 1212010540 341552
-386/9loaddebug - 775 sys sys 1212010545 455911
-386/9loadlite - 775 sys sys 1212010543 164328
-386/9loadlitedebug - 775 sys sys 1212010546 240926
+386/9load - 775 sys sys 1224095494 342620
+386/9loaddebug - 775 sys sys 1224095495 457435
+386/9loadlite - 775 sys sys 1224095495 164828
+386/9loadlitedebug - 775 sys sys 1224095496 241615
 386/9pc - 775 sys sys 1216152518 2130687
 386/9pc.gz - 664 sys sys 1216152539 912822
 386/9pccpu - 775 sys sys 1216152687 2245388
@@ -11,8 +11,8 @@
 386/9pcdisk.gz - 664 sys sys 1216152780 990292
 386/9pcf - 775 sys sys 1216152607 2993916
 386/9pcf.gz - 664 sys sys 1216152637 1273103
-386/9pxeload - 775 sys sys 1212010541 341556
-386/9pxeloaddebug - 775 sys sys 1212010542 455922
+386/9pxeload - 775 sys sys 1224095496 342624
+386/9pxeloaddebug - 775 sys sys 1224095497 457446
 386/bin - 20000000775 sys sys 1219508203 0
 386/bin/8a - 775 sys sys 1209614029 116545
 386/bin/8c - 775 sys sys 1209614036 367225
@@ -761,13 +761,13 @@ adm/timezone/Argentina - 664 adm adm 1116737181 22
 adm/timezone/Australia_ACT - 664 adm adm 1020369287 1483
 adm/timezone/Australia_Broken-Hill - 664 adm adm 1020369287 1483
 adm/timezone/Australia_LHI - 664 adm adm 1020313575 1483
-adm/timezone/Australia_NSW - 664 adm adm 1020313575 1483
+adm/timezone/Australia_NSW - 664 adm adm 1224116005 1483
 adm/timezone/Australia_North - 664 adm adm 1020313575 20
 adm/timezone/Australia_Queensland - 664 adm adm 1020313576 108
 adm/timezone/Australia_South - 664 adm adm 1020313576 1483
 adm/timezone/Australia_Sturt - 664 adm adm 1020369287 1483
 adm/timezone/Australia_Tasmania - 664 adm adm 1020369287 1516
-adm/timezone/Australia_Victoria - 664 adm adm 1020313576 1483
+adm/timezone/Australia_Victoria - 664 adm adm 1224116005 1483
 adm/timezone/Australia_West - 664 adm adm 1193791016 130
 adm/timezone/Australia_Yancowinna - 664 adm adm 1020313576 1483
 adm/timezone/Brazil_Acre - 664 adm adm 1020369287 1133
@@ -896,7 +896,9 @@ arm/lib/ape - 20000000775 sys sys 1020896375 0
 arm/mkfile - 664 sys sys 948141303 46
 cfg - 20000000775 sys sys 1177628278 0
 cfg/example - 20000000775 sys sys 1187225912 0
+cfg/example/consoledb - 664 sys sys 1224083807 162
 cfg/example/cpurc - 775 sys sys 1187226177 266
+cfg/example/namespace - 664 sys sys 1224083391 71
 cfg/example/termrc - 775 sys sys 1177628544 195
 cron - 20000000777 sys sys 1183239070 0
 cron/upas - 20000000775 upas sys 1183239050 0
@@ -7693,7 +7695,7 @@ sys/man/3 - 20000000775 sys sys 1206923648 0
 sys/man/3/0intro - 664 sys sys 1196638941 1873
 sys/man/3/INDEX - 664 sys sys 1222657690 484
 sys/man/3/INDEX.html - 664 sys sys 1196638941 3691
-sys/man/3/aoe - 664 sys sys 1212183705 6647
+sys/man/3/aoe - 664 sys sys 1224094651 6650
 sys/man/3/apm - 664 sys sys 1196638941 1625
 sys/man/3/arch - 664 sys sys 1196638941 1425
 sys/man/3/audio - 664 sys sys 1212176738 2957
@@ -7745,7 +7747,7 @@ sys/man/4/execnet - 664 sys sys 1196638943 1069
 sys/man/4/exportfs - 664 sys sys 1196638943 4655
 sys/man/4/ext2srv - 664 sys sys 1196638943 2409
 sys/man/4/factotum - 664 sys sys 1205008879 14844
-sys/man/4/fossil - 664 sys sys 1196638943 9592
+sys/man/4/fossil - 664 sys sys 1224094660 9848
 sys/man/4/fs - 664 sys sys 1196638943 3441
 sys/man/4/ftpfs - 664 sys sys 1196638943 4895
 sys/man/4/httpfile - 664 sys sys 1196638943 1233
@@ -7755,7 +7757,7 @@ sys/man/4/keyfs - 664 sys sys 1196638943 5048
 sys/man/4/kfs - 664 sys sys 1196638943 2164
 sys/man/4/lnfs - 664 sys sys 1196638943 1219
 sys/man/4/mntgen - 664 sys sys 1196638943 473
-sys/man/4/namespace - 664 sys sys 1196638943 7177
+sys/man/4/namespace - 664 sys sys 1224083611 7329
 sys/man/4/nfs - 664 sys sys 1196638943 4475
 sys/man/4/nntpfs - 664 sys sys 1196638943 2771
 sys/man/4/paqfs - 664 sys sys 1196638944 1848
@@ -7864,7 +7866,7 @@ sys/man/8/fsconfig - 664 sys sys 1196638946 8890
 sys/man/8/fshalt - 664 sys sys 1196638947 862
 sys/man/8/getflags - 664 sys sys 1196638947 1713
 sys/man/8/gpsfs - 664 sys sys 1223562059 5097
-sys/man/8/httpd - 664 sys sys 1196638947 6866
+sys/man/8/httpd - 664 sys sys 1224114119 6957
 sys/man/8/init - 664 sys sys 1196638947 1430
 sys/man/8/ipconfig - 664 sys sys 1205960389 8284
 sys/man/8/ipserv - 664 sys sys 1208190062 3272
@@ -7909,9 +7911,9 @@ sys/man/8/tlssrv - 664 sys sys 1196638948 2589
 sys/man/8/trampoline - 664 sys sys 1196638948 1199
 sys/man/8/udpecho - 664 sys sys 1196638948 303
 sys/man/8/update - 664 sys sys 1196638948 2336
-sys/man/8/venti - 664 sys sys 1197570117 12190
+sys/man/8/venti - 664 sys sys 1224094620 12539
 sys/man/8/venti-backup - 664 sys sys 1202925137 2290
-sys/man/8/venti-fmt - 664 sys sys 1196638948 8626
+sys/man/8/venti-fmt - 664 sys sys 1224116733 8678
 sys/man/8/vga - 664 sys sys 1196638948 4129
 sys/man/8/wol - 664 sys sys 1205960109 743
 sys/man/fonts - 664 sys sys 1196638948 218
@@ -8126,20 +8128,20 @@ sys/src/9/pc/ether79c970.c - 664 sys sys 1160070602 14088
 sys/src/9/pc/ether8003.c - 664 sys sys 1015014516 6665
 sys/src/9/pc/ether8139.c - 664 sys sys 1185650567 19974
 sys/src/9/pc/ether8169.c - 664 sys sys 1185812348 26931
-sys/src/9/pc/ether82543gc.c - 664 sys sys 1131290377 32294
+sys/src/9/pc/ether82543gc.c - 664 sys sys 1224095733 32347
 sys/src/9/pc/ether82557.c - 664 sys sys 1211922643 30457
 sys/src/9/pc/ether82563.c - 664 sys sys 1223767244 39197
 sys/src/9/pc/ether82598.c - 664 sys sys 1203982856 18364
 sys/src/9/pc/ether83815.c - 664 sys sys 1172259521 26346
 sys/src/9/pc/ether8390.c - 664 sys sys 1131290377 17702
 sys/src/9/pc/ether8390.h - 664 sys sys 1015014517 1511
-sys/src/9/pc/etherdp83820.c - 664 sys sys 1184468435 29621
+sys/src/9/pc/etherdp83820.c - 664 sys sys 1224095715 29674
 sys/src/9/pc/etherec2t.c - 664 sys sys 1135784135 4092
 sys/src/9/pc/etherelnk3.c - 664 sys sys 1158012427 48807
 sys/src/9/pc/etherga620.c - 664 sys sys 1185652495 29895
 sys/src/9/pc/etherga620fw.h - 664 sys sys 1026847642 222295
 sys/src/9/pc/etherif.h - 664 sys sys 1088178711 961
-sys/src/9/pc/etherigbe.c - 664 sys sys 1204240380 46146
+sys/src/9/pc/etherigbe.c - 664 sys sys 1224095697 46199
 sys/src/9/pc/etherm10g.c - 664 sys sys 1202453395 28413
 sys/src/9/pc/etherm10g2k.i - 664 sys sys 1202131465 1094881
 sys/src/9/pc/etherm10g4k.i - 664 sys sys 1202131484 1065187
@@ -8178,7 +8180,7 @@ sys/src/9/pc/pcdisk - 664 sys sys 1204231795 1623
 sys/src/9/pc/pcf - 664 sys sys 1215977995 1675
 sys/src/9/pc/pcfl - 664 sys sys 1188582378 1579
 sys/src/9/pc/pcflop - 664 sys sys 1190853787 1540
-sys/src/9/pc/pci.c - 664 sys sys 1196312222 29483
+sys/src/9/pc/pci.c - 664 sys sys 1224095629 29548
 sys/src/9/pc/pcmciamodem.c - 664 sys sys 1191476436 1591
 sys/src/9/pc/pcmkfile - 664 sys sys 1109303822 101
 sys/src/9/pc/piix4smbus.c - 664 sys sys 1184467714 5324
@@ -8192,7 +8194,7 @@ sys/src/9/pc/screen.c - 664 sys sys 1184522395 13973
 sys/src/9/pc/screen.h - 664 sys sys 1147023549 4256
 sys/src/9/pc/sd53c8xx.c - 664 sys sys 1211521147 55313
 sys/src/9/pc/sd53c8xx.n - 664 sys sys 1131290556 12657
-sys/src/9/pc/sdata.c - 664 sys sys 1213134383 53299
+sys/src/9/pc/sdata.c - 664 sys sys 1224095633 53421
 sys/src/9/pc/sdiahci.c - 664 sys sys 1213134393 39005
 sys/src/9/pc/sdmv50xx.c - 664 sys sys 1204232564 34031
 sys/src/9/pc/sdmylex.c - 664 sys sys 1189229947 28395
@@ -8244,7 +8246,7 @@ sys/src/9/port/chan.c - 664 sys sys 1218341699 34955
 sys/src/9/port/cis.c - 664 sys sys 1099761153 9248
 sys/src/9/port/debugalloc.c - 664 sys sys 1014931171 10402
 sys/src/9/port/dev.c - 664 sys sys 1218341650 8203
-sys/src/9/port/devaoe.c - 664 sys sys 1218341718 42083
+sys/src/9/port/devaoe.c - 664 sys sys 1224095152 42084
 sys/src/9/port/devaudio.c - 664 sys sys 1218341736 21192
 sys/src/9/port/devbridge.c - 664 sys sys 1204227718 24003
 sys/src/9/port/devcap.c - 664 sys sys 1178886040 4141
@@ -8275,7 +8277,7 @@ sys/src/9/port/devwd.c - 664 sys sys 1126582325 2342
 sys/src/9/port/edf.c - 664 sys sys 1218341914 13586
 sys/src/9/port/edf.h - 664 sys sys 1138469072 1195
 sys/src/9/port/error.h - 664 sys sys 1204179766 2688
-sys/src/9/port/fault.c - 664 sys sys 1218341927 7407
+sys/src/9/port/fault.c - 664 sys sys 1224095171 7452
 sys/src/9/port/initcode.c - 664 sys sys 1055688491 574
 sys/src/9/port/latin1.c - 664 sys sys 1015278339 1418
 sys/src/9/port/latin1.h - 664 sys sys 1184794985 3575
@@ -8306,7 +8308,7 @@ sys/src/9/port/portfns.h - 664 sys sys 1206317920 11095
 sys/src/9/port/portmkfile - 664 sys sys 1184737233 2082
 sys/src/9/port/print.c - 664 sys sys 1014931178 227
 sys/src/9/port/proc.c - 664 sys sys 1218341949 28813
-sys/src/9/port/qio.c - 664 sys sys 1197732972 23616
+sys/src/9/port/qio.c - 664 sys sys 1224095231 23629
 sys/src/9/port/qlock.c - 664 sys sys 1218341971 3299
 sys/src/9/port/rdb.c - 664 sys sys 1184465938 1704
 sys/src/9/port/rebootcmd.c - 664 sys sys 1015278340 1561
@@ -9248,14 +9250,14 @@ sys/src/boot/pc/pbs.s - 664 sys sys 1143465387 8291
 sys/src/boot/pc/pbsdebug.s - 664 sys sys 1205786244 6371
 sys/src/boot/pc/pbslba.s - 664 sys sys 1186031549 8180
 sys/src/boot/pc/pbslbadebug.s - 664 sys sys 1205786244 6021
-sys/src/boot/pc/pci.c - 664 sys sys 1216784600 20769
+sys/src/boot/pc/pci.c - 664 sys sys 1224095564 20831
 sys/src/boot/pc/print.c - 664 sys sys 1094674483 219
 sys/src/boot/pc/queue.c - 664 sys sys 1015007954 566
 sys/src/boot/pc/sd.h - 664 sys sys 1200690169 2249
 sys/src/boot/pc/sd53c8xx.c - 664 sys sys 1186031515 52082
 sys/src/boot/pc/sd53c8xx.i - 664 sys sys 1015007955 27245
 sys/src/boot/pc/sdaoe.c - 664 sys sys 1223515593 11739
-sys/src/boot/pc/sdata.c - 664 sys sys 1213134120 39148
+sys/src/boot/pc/sdata.c - 664 sys sys 1224095579 39270
 sys/src/boot/pc/sdbios.c - 664 sys sys 1212010334 3280
 sys/src/boot/pc/sdiahci.c - 664 sys sys 1213134135 28620
 sys/src/boot/pc/sdmylex.c - 664 sys sys 1171783051 28694
@@ -10421,7 +10423,7 @@ sys/src/cmd/fossil/9auth.c - 664 sys sys 1189552651 3972
 sys/src/cmd/fossil/9dir.c - 664 sys sys 1085333382 2219
 sys/src/cmd/fossil/9excl.c - 664 sys sys 1042005502 1887
 sys/src/cmd/fossil/9fid.c - 664 sys sys 1189110070 5584
-sys/src/cmd/fossil/9fsys.c - 664 sys sys 1204179530 34157
+sys/src/cmd/fossil/9fsys.c - 664 sys sys 1224094753 35312
 sys/src/cmd/fossil/9lstn.c - 664 sys sys 1147355153 3038
 sys/src/cmd/fossil/9p.c - 664 sys sys 1189110070 22957
 sys/src/cmd/fossil/9ping.c - 664 sys sys 1042005503 1563
@@ -10430,7 +10432,7 @@ sys/src/cmd/fossil/9srv.c - 664 sys sys 1138465941 3956
 sys/src/cmd/fossil/9user.c - 664 sys sys 1181842829 17277
 sys/src/cmd/fossil/Ccli.c - 664 sys sys 1042005504 1624
 sys/src/cmd/fossil/Ccmd.c - 664 sys sys 1138465941 7985
-sys/src/cmd/fossil/Ccons.c - 664 sys sys 1055703737 6620
+sys/src/cmd/fossil/Ccons.c - 664 sys sys 1224094773 6725
 sys/src/cmd/fossil/Clog.c - 664 sys sys 1189638175 665
 sys/src/cmd/fossil/archive.c - 664 sys sys 1087005594 10230
 sys/src/cmd/fossil/build - 664 sys sys 1042005505 449
@@ -10451,10 +10453,10 @@ sys/src/cmd/fossil/flchk.c - 664 sys sys 1189575301 1806
 sys/src/cmd/fossil/flfmt.c - 664 sys sys 1189575499 10757
 sys/src/cmd/fossil/flfmt9660.c - 664 sys sys 1210357713 12316
 sys/src/cmd/fossil/flfmt9660.h - 664 sys sys 1072830621 134
-sys/src/cmd/fossil/flproto - 664 sys sys 1173736837 222
+sys/src/cmd/fossil/flproto - 664 sys sys 1224094835 228
 sys/src/cmd/fossil/fns.h - 664 sys sys 1189552875 3262
 sys/src/cmd/fossil/fossil-acid - 664 sys sys 1199304805 4367
-sys/src/cmd/fossil/fossil.c - 664 sys sys 1077896345 2435
+sys/src/cmd/fossil/fossil.c - 664 sys sys 1224094852 2601
 sys/src/cmd/fossil/fs.c - 664 sys sys 1177432004 21598
 sys/src/cmd/fossil/fs.h - 664 sys sys 1189552775 1606
 sys/src/cmd/fossil/history - 664 sys sys 1055703793 1400
@@ -14365,19 +14367,19 @@ sys/src/cmd/venti/ro.c - 664 sys sys 1177189435 1886
 sys/src/cmd/venti/root.c - 664 sys sys 1177189435 1329
 sys/src/cmd/venti/srv - 20000000775 sys sys 1196687844 0
 sys/src/cmd/venti/srv/arena.c - 664 sys sys 1207253133 20156
-sys/src/cmd/venti/srv/arenas.c - 664 sys sys 1211224670 8048
+sys/src/cmd/venti/srv/arenas.c - 664 sys sys 1224094524 8107
 sys/src/cmd/venti/srv/bloom.c - 664 sys sys 1196369124 4445
 sys/src/cmd/venti/srv/buildbuck.c - 664 sys sys 1177189435 2837
 sys/src/cmd/venti/srv/buildindex.c - 664 sys sys 1212974464 21739
-sys/src/cmd/venti/srv/checkarenas.c - 664 sys sys 1191257304 2310
+sys/src/cmd/venti/srv/checkarenas.c - 664 sys sys 1224094551 2335
 sys/src/cmd/venti/srv/checkindex.c - 664 sys sys 1179342633 5978
 sys/src/cmd/venti/srv/clump.c - 664 sys sys 1191257297 5316
 sys/src/cmd/venti/srv/clumpstats.c - 664 sys sys 1142736351 2234
 sys/src/cmd/venti/srv/cmparenas.c - 664 sys sys 1177189435 7215
 sys/src/cmd/venti/srv/conf.rc - 775 sys sys 1189304120 1416
 sys/src/cmd/venti/srv/config.c - 664 sys sys 1191257289 5659
-sys/src/cmd/venti/srv/conv.c - 664 sys sys 1207253152 15161
-sys/src/cmd/venti/srv/dat.h - 664 sys sys 1211224696 19089
+sys/src/cmd/venti/srv/conv.c - 664 sys sys 1224094556 15275
+sys/src/cmd/venti/srv/dat.h - 664 sys sys 1224094516 19158
 sys/src/cmd/venti/srv/dcache.c - 664 sys sys 1196369150 15782
 sys/src/cmd/venti/srv/disksched.c - 664 sys sys 1193791117 2127
 sys/src/cmd/venti/srv/dump.c - 664 sys sys 1142736352 1642
@@ -14400,7 +14402,7 @@ sys/src/cmd/venti/srv/lump.c - 664 sys sys 1191257295 4947
 sys/src/cmd/venti/srv/lumpcache.c - 664 sys sys 1196369165 8897
 sys/src/cmd/venti/srv/lumpqueue.c - 664 sys sys 1142736354 2722
 sys/src/cmd/venti/srv/mirrorarenas.c - 664 sys sys 1191257291 10802
-sys/src/cmd/venti/srv/mkfile - 664 sys sys 1191430751 1300
+sys/src/cmd/venti/srv/mkfile - 664 sys sys 1224094563 1317
 sys/src/cmd/venti/srv/part.c - 664 sys sys 1191217317 4500
 sys/src/cmd/venti/srv/png.c - 664 sys sys 1142736354 3729
 sys/src/cmd/venti/srv/printarena.c - 664 sys sys 1210358027 2669
@@ -14423,7 +14425,7 @@ sys/src/cmd/venti/srv/trace.c - 664 sys sys 1142736356 709
 sys/src/cmd/venti/srv/unittoull.c - 664 sys sys 1142736356 471
 sys/src/cmd/venti/srv/unwhack.c - 664 sys sys 1142736356 3191
 sys/src/cmd/venti/srv/utils.c - 664 sys sys 1193791159 3751
-sys/src/cmd/venti/srv/venti.c - 664 sys sys 1196382019 5604
+sys/src/cmd/venti/srv/venti.c - 664 sys sys 1224094584 7619
 sys/src/cmd/venti/srv/verifyarena.c - 664 sys sys 1191257292 5776
 sys/src/cmd/venti/srv/whack.c - 664 sys sys 1142736357 6419
 sys/src/cmd/venti/srv/whack.h - 664 sys sys 1142736357 966

+ 36 - 0
dist/replica/plan9.log

@@ -36167,3 +36167,39 @@
 1223762404 0 c sys/src/9/port/netif.c - 664 sys sys 1223761957 13480
 1223762404 1 c sys/src/9/port/netif.h - 664 sys sys 1223761957 3065
 1223767805 0 c sys/src/9/pc/ether82563.c - 664 sys sys 1223767244 39197
+1224084605 0 a cfg/example/consoledb - 664 sys sys 1224083807 162
+1224084605 1 a cfg/example/namespace - 664 sys sys 1224083391 71
+1224084605 2 c sys/man/4/namespace - 664 sys sys 1224083611 7329
+1224095404 0 c sys/man/3/aoe - 664 sys sys 1224094651 6650
+1224095404 1 c sys/man/4/fossil - 664 sys sys 1224094660 9848
+1224095404 2 c sys/man/8/venti - 664 sys sys 1224094620 12539
+1224095404 3 c sys/src/9/port/fault.c - 664 sys sys 1224095171 7452
+1224095404 4 c sys/src/9/port/qio.c - 664 sys sys 1224095231 23629
+1224095404 5 c sys/src/9/port/devaoe.c - 664 sys sys 1224095152 42084
+1224095404 6 c sys/src/cmd/venti/srv/arenas.c - 664 sys sys 1224094524 8107
+1224095404 7 c sys/src/cmd/venti/srv/checkarenas.c - 664 sys sys 1224094551 2335
+1224095404 8 c sys/src/cmd/venti/srv/conv.c - 664 sys sys 1224094556 15275
+1224095404 9 c sys/src/cmd/venti/srv/dat.h - 664 sys sys 1224094516 19158
+1224095404 10 c sys/src/cmd/venti/srv/mkfile - 664 sys sys 1224094563 1317
+1224095404 11 c sys/src/cmd/venti/srv/venti.c - 664 sys sys 1224094584 7619
+1224095404 12 c sys/src/cmd/fossil/9fsys.c - 664 sys sys 1224094753 35312
+1224095404 13 c sys/src/cmd/fossil/Ccons.c - 664 sys sys 1224094773 6725
+1224095404 14 c sys/src/cmd/fossil/flproto - 664 sys sys 1224094835 228
+1224095404 15 c sys/src/cmd/fossil/fossil.c - 664 sys sys 1224094852 2601
+1224097205 0 c 386/9load - 775 sys sys 1224095494 342620
+1224097205 1 c 386/9loaddebug - 775 sys sys 1224095495 457435
+1224097205 2 c 386/9loadlite - 775 sys sys 1224095495 164828
+1224097205 3 c 386/9loadlitedebug - 775 sys sys 1224095496 241615
+1224097205 4 c 386/9pxeload - 775 sys sys 1224095496 342624
+1224097205 5 c 386/9pxeloaddebug - 775 sys sys 1224095497 457446
+1224097205 6 c sys/src/9/pc/ether82543gc.c - 664 sys sys 1224095733 32347
+1224097205 7 c sys/src/9/pc/etherigbe.c - 664 sys sys 1224095697 46199
+1224097205 8 c sys/src/9/pc/pci.c - 664 sys sys 1224095629 29548
+1224097205 9 c sys/src/9/pc/sdata.c - 664 sys sys 1224095633 53421
+1224097205 10 c sys/src/9/pc/etherdp83820.c - 664 sys sys 1224095715 29674
+1224097205 11 c sys/src/boot/pc/pci.c - 664 sys sys 1224095564 20831
+1224097205 12 c sys/src/boot/pc/sdata.c - 664 sys sys 1224095579 39270
+1224115204 0 c sys/man/8/httpd - 664 sys sys 1224114119 6957
+1224117004 0 c adm/timezone/Australia_NSW - 664 adm adm 1224116005 1483
+1224117004 1 c adm/timezone/Australia_Victoria - 664 adm adm 1224116005 1483
+1224117004 2 c sys/man/8/venti-fmt - 664 sys sys 1224116733 8678

+ 1 - 1
sys/man/3/aoe

@@ -174,7 +174,7 @@ Number of outstanding AoE frames.
 Maximum number of outstanding frames allowed.
 .TP
 .B nframes
-Maximum number of outstand frames.
+Maximum number of outstanding frames.
 .I Nframes
 is greater than
 .I nmaxout

+ 20 - 2
sys/man/4/fossil

@@ -14,6 +14,10 @@ fossil \- archival file server
 .B -f
 .I file
 ]
+[
+.B -m
+.I free-memory%
+]
 .PP
 .B fossil/flchk
 [
@@ -64,7 +68,7 @@ fossil \- archival file server
 .I file
 .SH DESCRIPTION
 .I Fossil
-will become the main file system for Plan 9.
+is the main file system for Plan 9.
 Unlike the Plan 9 file servers of old,
 .I fossil
 is a collection of user-space programs that run on a standard Plan 9 kernel.
@@ -242,6 +246,16 @@ Read and execute console commands stored in the Fossil disk
 .I Conf
 .RI ( q.v. )
 reads and writes the command set stored in the disk.
+.TP
+.B -m
+Allocate
+.I free-memory%
+percent of the available free RAM for buffers.
+This overrides all other memory sizing parameters,
+notably the
+.B -c
+option to
+.BR open .
 .PD
 .PP
 .I Flchk
@@ -474,7 +488,7 @@ command to prepare the script.
 .IR fossilcons (8),
 .IR venti (8)
 .SH BUGS
-It is likely that the disk format (but not the Venti format)
+It is possible that the disk format (but not the Venti format)
 will change in the future, to make the disk a full cache
 rather than just a write buffer.
 Changing to the new format will require reformatting
@@ -483,3 +497,7 @@ but note that this will preserve most of the file system
 (all but
 .BR /snapshot )
 with little effort.
+.PP
+The
+.B -m
+option currently assumes a block size of 8K bytes.

+ 10 - 0
sys/man/4/namespace

@@ -265,6 +265,16 @@ Directory of tools for
 .B /cron
 Directory of files for
 .IR cron (8).
+.TP
+.BI /cfg/ system
+.IR System -specific
+files, often addenda to their namesakes,
+notably
+.BR cpurc ,
+.BR termrc ,
+.BR namespace ,
+and
+.BR consoledb .
 .PD
 .PP
 The following files and directories are modified in the standard

+ 6 - 3
sys/man/8/httpd

@@ -118,8 +118,10 @@ of a file are determined by looking for suffixes of the file name in
 .PP
 Each requested URI is looked up in a redirection table, read from
 .BR /sys/lib/httpd.rewrite .
+The first field of each line is a URI;
+the second a replacement path.
 If a prefix of the URI matches a redirection path,
-the URI is rewritten using a replacement path,
+the URI is rewritten using the corresponding replacement path,
 and a redirect is sent to the HTTP client.
 If the replacement path does not specify a server name,
 and the request has no explicit host,
@@ -282,7 +284,7 @@ If a listing for a directory is requested and access
 is denied, or another error occurs, a simple error
 page is returned.
 .SH FILES
-.TF /lib/namespace.httpd
+.TF /sys/lib/httpd.rewrite
 .TP
 .B /sys/lib/mimetype
 content type description file
@@ -294,7 +296,8 @@ default namespace file for httpd
 redirection file
 .TP
 .B /sys/lib/webls.allowed
-regular expressions describing explicitly listable pathnames; overrides webls.denied
+regular expressions describing explicitly listable pathnames; overrides
+.B webls.denied
 .TP
 .B /sys/lib/webls.denied
 regular expressions describing explicitly unlistable pathnames

+ 25 - 9
sys/man/8/venti

@@ -33,11 +33,15 @@ venti \- archival storage server
 .I indexcachesize
 ]
 [
+.B -m
+.I free-memory%
+]
+[
 .B -W
 .I webroot
 ]
 .SH DESCRIPTION
-Venti
+.I Venti
 is a SHA1-addressed archival storage server.
 See 
 .IR venti (6)
@@ -228,6 +232,8 @@ and one serving HTTP
 .PP
 The venti web server provides the following 
 URLs for accessing status information:
+.TF "\fL/storage"
+.PD
 .TP
 .B /index
 A summary of the usage of the arenas and index sections.
@@ -318,6 +324,8 @@ The configuration file consists of lines in the form described below.
 Lines starting with
 .B #
 are comments.
+.TF "\fLindex\fI name "
+.PD
 .TP
 .BI index " name
 Names the index for the system.
@@ -351,7 +359,7 @@ flag to update the index.
 The configuration file also holds configuration parameters
 for the venti server itself.
 These are:
-.TF httpaddr netaddr
+.TF "\fLhttpaddr\fI netaddr "
 .TP
 .BI mem " size
 lump cache size
@@ -416,6 +424,8 @@ can be specified in the configuration file.
 The command line options override those found in a
 configuration file.
 Additional options are:
+.TF "\fL-c\fI config"
+.PD
 .TP
 .BI -c " config
 The server configuration file
@@ -431,6 +441,17 @@ Implies
 Enable logging.  By default all logging is disabled.
 Logging slows server operation considerably.
 .TP
+.B -m
+Allocate
+.I free-memory%
+percent of the available free RAM, and partition it
+per the guidelines in the
+.B Memory
+subsection.
+This percentage should be large enough to include the entire bloom filter.
+This overrides all other memory sizing parameters,
+including those on the command line and in the configuration file.
+.TP
 .B -r
 Allow only read access to the venti data.
 .TP
@@ -450,13 +471,11 @@ isect /tmp/disks/isect0
 isect /tmp/disks/isect1
 arenas /tmp/disks/arenas
 bloom /tmp/disks/bloom
-mem 10M
-bcmem 20M
-icmem 30M
 % 
 .EE
 .PP
-Format the index sections, the arena partition, and 
+Format the index sections, the arena partition,
+the bloom filter, and 
 finally the main index:
 .IP
 .EX
@@ -490,6 +509,3 @@ Sean Quinlan and Sean Dorward,
 2002.
 .SH BUGS
 Setting up a venti server is too complicated.
-.PP
-Venti should not require the user to decide how to
-partition its memory usage.

+ 6 - 2
sys/man/8/venti-fmt

@@ -193,10 +193,12 @@ but should only be used when it is known that the file was already zeroed.
 .I Fmtbloom
 formats the given
 .I file
-as a bloom filter
+as a Bloom filter
 (see
 .IR venti (6)).
 The options are:
+.TF "\fL-s\fI size"
+.PD
 .TP
 .BI -n " nblock \fR| " -N " nhash
 The number of blocks expected to be indexed by the filter
@@ -209,7 +211,7 @@ to compute an appropriate
 .IR nhash .
 .TP
 .BI -s " size
-The size of the bloom filter.  The default is the total size of the file.
+The size of the Bloom filter.  The default is the total size of the file.
 In either case,
 .I size
 is rounded down to a power of two.
@@ -323,6 +325,8 @@ does not.
 Options to 
 .I buildindex
 are:
+.TF "\fL-M\fI imemsize"
+.PD
 .TP
 .B -b
 Reinitialise the Bloom filter, if any.

+ 1 - 0
sys/src/9/pc/ether82543gc.c

@@ -757,6 +757,7 @@ gc82543allocb(Ctlr* ctlr)
 	if((bp = *(ctlr->freehead)) != nil){
 		*(ctlr->freehead) = bp->next;
 		bp->next = nil;
+		_xinc(&bp->ref);	/* prevent bp from being freed */
 	}
 	iunlock(&freelistlock);
 	return bp;

+ 1 - 0
sys/src/9/pc/etherdp83820.c

@@ -511,6 +511,7 @@ dp83820rballoc(Desc* desc)
 		}
 		dp83820rbpool = bp->next;
 		bp->next = nil;
+		_xinc(&bp->ref);	/* prevent bp from being freed */
 		iunlock(&dp83820rblock);
 	
 		desc->bufptr = PCIWADDR(bp->rp);

+ 1 - 0
sys/src/9/pc/etherigbe.c

@@ -767,6 +767,7 @@ igberballoc(void)
 	if((bp = igberbpool) != nil){
 		igberbpool = bp->next;
 		bp->next = nil;
+		_xinc(&bp->ref);	/* prevent bp from being freed */
 	}
 	iunlock(&igberblock);
 

+ 1 - 0
sys/src/9/pc/pci.c

@@ -659,6 +659,7 @@ static Bridge southbridges[] = {
 	{ 0x1022, 0x746B, nil, nil },		/* AMD 8111 */
 	{ 0x10DE, 0x00D1, nil, nil },		/* NVIDIA nForce 3 */
 	{ 0x10DE, 0x00E0, nil, nil },		/* NVIDIA nForce 3 250 Series */
+	{ 0x10DE, 0x00E1, nil, nil },		/* NVIDIA nForce 3 250 Series */
 	{ 0x1166, 0x0200, nil, nil },		/* ServerWorks ServerSet III LE */
 	{ 0x1002, 0x4377, nil, nil },		/* ATI Radeon Xpress 200M */
 	{ 0x1002, 0x4372, nil, nil },		/* ATI SB400 */

+ 4 - 2
sys/src/9/pc/sdata.c

@@ -1260,7 +1260,7 @@ atapktio(Drive* drive, uchar* cmd, int clen)
 
 	qlock(ctlr);
 
-	as = ataready(cmdport, ctlport, drive->dev, Bsy|Drq, 0, 107*1000);
+	as = ataready(cmdport, ctlport, drive->dev, Bsy|Drq, Drdy, 107*1000);
 	/* used to test as&Chk as failure too, but some CD readers use that for media change */
 	if(as < 0){
 		qunlock(ctlr);
@@ -1371,7 +1371,7 @@ atageniostart(Drive* drive, vlong lba)
 	ctlr = drive->ctlr;
 	cmdport = ctlr->cmdport;
 	ctlport = ctlr->ctlport;
-	if(ataready(cmdport, ctlport, drive->dev, Bsy|Drq, 0, 101*1000) < 0)
+	if(ataready(cmdport, ctlport, drive->dev, Bsy|Drq, Drdy, 101*1000) < 0)
 		return -1;
 
 	ilock(ctlr);
@@ -1967,8 +1967,10 @@ atapnp(void)
 		case (0x01BC<<16)|0x10DE:	/* nVidia nForce1 */
 		case (0x0065<<16)|0x10DE:	/* nVidia nForce2 */
 		case (0x0085<<16)|0x10DE:	/* nVidia nForce2 MCP */
+		case (0x00E3<<16)|0x10DE:	/* nVidia nForce2 250 SATA */
 		case (0x00D5<<16)|0x10DE:	/* nVidia nForce3 */
 		case (0x00E5<<16)|0x10DE:	/* nVidia nForce3 Pro */
+		case (0x00EE<<16)|0x10DE:	/* nVidia nForce3 250 SATA */
 		case (0x0035<<16)|0x10DE:	/* nVidia nForce3 MCP */
 		case (0x0053<<16)|0x10DE:	/* nVidia nForce4 */
 		case (0x0054<<16)|0x10DE:	/* nVidia nForce4 SATA */

+ 1 - 1
sys/src/9/port/devaoe.c

@@ -657,7 +657,7 @@ loop:
 static int
 fmtæ(Fmt *f)
 {
-	char buf[8];
+	char buf[16];
 	Aoedev *d;
 
 	d = va_arg(f->args, Aoedev*);

+ 4 - 1
sys/src/9/port/fault.c

@@ -11,7 +11,10 @@ fault(ulong addr, int read)
 	Segment *s;
 	char *sps;
 
-if(up->nlocks.ref) print("fault nlocks %ld\n", up->nlocks.ref);
+	if(up == nil)
+		panic("fault: nil up");
+	if(up->nlocks.ref)
+		print("fault: nlocks %ld\n", up->nlocks.ref);
 
 	sps = up->psstate;
 	up->psstate = "Fault";

+ 6 - 5
sys/src/9/port/qio.c

@@ -77,7 +77,8 @@ freeblist(Block *b)
 
 	for(; b != 0; b = next){
 		next = b->next;
-		b->next = 0;
+		if(b->ref == 1)
+			b->next = nil;
 		freeb(b);
 	}
 }
@@ -99,7 +100,7 @@ padblock(Block *bp, int size)
 		}
 
 		if(bp->next)
-			panic("padblock 0x%luX", getcallerpc(&bp));
+			panic("padblock %#p", getcallerpc(&bp));
 		n = BLEN(bp);
 		padblockcnt++;
 		nbp = allocb(size+n);
@@ -113,7 +114,7 @@ padblock(Block *bp, int size)
 		size = -size;
 
 		if(bp->next)
-			panic("padblock 0x%luX", getcallerpc(&bp));
+			panic("padblock %#p", getcallerpc(&bp));
 
 		if(bp->lim - bp->wp >= size)
 			return bp;
@@ -228,7 +229,7 @@ pullupblock(Block *bp, int n)
 		} else {
 			/* shouldn't happen but why crash if it does */
 			if(i < 0){
-				print("pullup negative length packet, called from 0x%p\n",
+				print("pullup negative length packet, called from %#p\n",
 					getcallerpc(&bp));
 				i = 0;
 			}
@@ -1273,7 +1274,7 @@ qwrite(Queue *q, void *vp, int len)
 	uchar *p = vp;
 
 	QDEBUG if(!islo())
-		print("qwrite hi %lux\n", getcallerpc(&q));
+		print("qwrite hi %#p\n", getcallerpc(&q));
 
 	sofar = 0;
 	do {

+ 1 - 0
sys/src/boot/pc/pci.c

@@ -368,6 +368,7 @@ static bridge_t southbridges[] = {
 	{ 0x1022, 0x746B, nil, nil },		// AMD 8111
 	{ 0x10DE, 0x00D1, nil, nil },		// NVIDIA nForce 3
 	{ 0x10DE, 0x00E0, nil, nil },		// NVIDIA nForce 3 250 Series
+	{ 0x10DE, 0x00E1, nil, nil },		// NVIDIA nForce 3 250 Series
 	{ 0x1166, 0x0200, nil, nil },		// ServerWorks ServerSet III LE
 };
 

+ 4 - 2
sys/src/boot/pc/sdata.c

@@ -874,7 +874,7 @@ atapktio(Drive* drive, uchar* cmd, int clen)
 
 	qlock(ctlr);
 
-	as = ataready(cmdport, ctlport, drive->dev, Bsy|Drq, 0, 107*1000);
+	as = ataready(cmdport, ctlport, drive->dev, Bsy|Drq, Drdy, 107*1000);
 	if(as < 0 || (as&Chk)){
 		qunlock(ctlr);
 		return -1;
@@ -969,7 +969,7 @@ atageniostart(Drive* drive, vlong lba)
 	ctlr = drive->ctlr;
 	cmdport = ctlr->cmdport;
 	ctlport = ctlr->ctlport;
-	if(ataready(cmdport, ctlport, drive->dev, Bsy|Drq, 0, 101*1000) < 0)
+	if(ataready(cmdport, ctlport, drive->dev, Bsy|Drq, Drdy, 101*1000) < 0)
 		return -1;
 
 	ilock(ctlr);
@@ -1515,8 +1515,10 @@ atapnp(void)
 		case (0x01BC<<16)|0x10DE:	/* nVidia nForce1 */
 		case (0x0065<<16)|0x10DE:	/* nVidia nForce2 */
 		case (0x0085<<16)|0x10DE:	/* nVidia nForce2 MCP */
+		case (0x00E3<<16)|0x10DE:	/* nVidia nForce2 250 SATA */
 		case (0x00D5<<16)|0x10DE:	/* nVidia nForce3 */
 		case (0x00E5<<16)|0x10DE:	/* nVidia nForce3 Pro */
+		case (0x00EE<<16)|0x10DE:	/* nVidia nForce3 250 SATA */
 		case (0x0035<<16)|0x10DE:	/* nVidia nForce3 MCP */
 		case (0x0053<<16)|0x10DE:	/* nVidia nForce4 */
 		case (0x0054<<16)|0x10DE:	/* nVidia nForce4 SATA */

+ 52 - 1
sys/src/cmd/fossil/9fsys.c

@@ -1,4 +1,5 @@
 #include "stdinc.h"
+#include <bio.h>
 #include "dat.h"
 #include "fns.h"
 #include "9.h"
@@ -23,6 +24,10 @@ struct Fsys {
 	Fsys*	next;
 };
 
+int mempcnt;			/* from fossil.c */
+
+int	fsGetBlockSize(Fs *fs);
+
 static struct {
 	VtLock*	lock;
 	Fsys*	head;
@@ -1496,13 +1501,50 @@ out:
 	return r;
 }
 
+static ulong
+freemem(void)
+{
+	int nf, pgsize = 0;
+	uvlong size, userpgs = 0, userused = 0;
+	char *ln, *sl;
+	char *fields[2];
+	Biobuf *bp;
+
+	size = 64*1024*1024;
+	bp = Bopen("#c/swap", OREAD);
+	if (bp != nil) {
+		while ((ln = Brdline(bp, '\n')) != nil) {
+			ln[Blinelen(bp)-1] = '\0';
+			nf = tokenize(ln, fields, nelem(fields));
+			if (nf != 2)
+				continue;
+			if (strcmp(fields[1], "pagesize") == 0)
+				pgsize = atoi(fields[0]);
+			else if (strcmp(fields[1], "user") == 0) {
+				sl = strchr(fields[0], '/');
+				if (sl == nil)
+					continue;
+				userpgs = atoll(sl+1);
+				userused = atoll(fields[0]);
+			}
+		}
+		Bterm(bp);
+		if (pgsize > 0 && userpgs > 0)
+			size = (userpgs - userused) * pgsize;
+	}
+	/* cap it to keep the size within 32 bits */
+	if (size >= 3840UL * 1024 * 1024)
+		size = 3840UL * 1024 * 1024;
+	return size;
+}
+
 static int
 fsysOpen(char* name, int argc, char* argv[])
 {
 	char *p, *host;
 	Fsys *fsys;
-	long ncache;
 	int noauth, noventi, noperm, rflag, wstatallow;
+	long ncache;
 	char *usage = "usage: fsys name open [-APVWr] [-c ncache]";
 
 	ncache = 1000;
@@ -1542,6 +1584,14 @@ fsysOpen(char* name, int argc, char* argv[])
 	if((fsys = _fsysGet(name)) == nil)
 		return 0;
 
+	/* automatic memory sizing? */
+	if(mempcnt > 0) {
+		/* TODO: 8K is a hack; use the actual block size */
+		ncache = (((vlong)freemem() * mempcnt) / 100) / (8*1024);
+		if (ncache < 100)
+			ncache = 100;
+	}
+
 	vtLock(fsys->lock);
 	if(fsys->fs != nil){
 		vtSetError(EFsysBusy, fsys->name);
@@ -1794,6 +1844,7 @@ cmdFsys(int argc, char* argv[])
 
 	if(argc == 0){
 		vtRLock(sbox.lock);
+		currfsysname = sbox.head->name;
 		for(fsys = sbox.head; fsys != nil; fsys = fsys->next)
 			consPrint("\t%s\n", fsys->name);
 		vtRUnlock(sbox.lock);

+ 5 - 1
sys/src/cmd/fossil/Ccons.c

@@ -29,6 +29,8 @@ typedef struct Cons {
 	Q*	oq;		/* points to console.oq */
 } Cons;
 
+char *currfsysname;
+
 static struct {
 	Q*	iq;		/* input */
 	Q*	oq;		/* output */
@@ -227,8 +229,10 @@ consProc(void*)
 	Q *q;
 	int argc, i, n, r;
 	char *argv[20], buf[Nq], *lp, *wbuf;
+	char procname[64];
 
-	vtThreadSetName("cons");
+	snprint(procname, sizeof procname, "cons %s", currfsysname);
+	vtThreadSetName(procname);
 
 	q = console.iq;
 	qWrite(console.oq, console.prompt, console.np);

+ 2 - 2
sys/src/cmd/fossil/flproto

@@ -4,8 +4,8 @@
 fsys main config /tmp/fossil
 fsys main open
 fsys main 
-uname rsc :rsc
-uname sys +rsc
+uname geoff :geoff
+uname sys +geoff
 uname jmk :jmk
 uname sys +jmk
 srv -p test.fscons

+ 13 - 9
sys/src/cmd/fossil/fossil.c

@@ -4,16 +4,13 @@
 #include "9.h"
 
 int Dflag;
+int mempcnt;			/* for 9fsys.c */
 char* none = "none";
 
 static void
 usage(void)
 {
-	fprint(2, "usage: %s"
-		" [-Dt]"
-		" [-c cmd]"
-		" [-f partition]\n"
-		, argv0);
+	fprint(2, "usage: %s [-Dt] [-c cmd] [-f partition] [-m %%]\n", argv0);
 	exits("usage");
 }
 
@@ -93,17 +90,24 @@ main(int argc, char* argv[])
 	default:
 		usage();
 		break;
+	case 'c':
+		p = EARGF(usage());
+		currfsysname = p;
+		cmd = vtMemRealloc(cmd, (ncmd+1)*sizeof(char*));
+		cmd[ncmd++] = p;
+		break;
 	case 'D':
 		Dflag ^= 1;
 		break;
 	case 'f':
 		p = EARGF(usage());
+		currfsysname = p;
 		readCmdPart(p, &cmd, &ncmd);
 		break;
-	case 'c':
-		p = EARGF(usage());
-		cmd = vtMemRealloc(cmd, (ncmd+1)*sizeof(char*));
-		cmd[ncmd++] = p;
+	case 'm':
+		mempcnt = atoi(EARGF(usage()));
+		if(mempcnt <= 0 || mempcnt >= 100)
+			usage();
 		break;
 	case 't':
 		tflag = 1;

+ 5 - 1
sys/src/cmd/venti/srv/arenas.c

@@ -148,6 +148,7 @@ initarenapart(Part *part)
 
 	ap->arenas = MKNZ(Arena*, ap->narenas);
 	for(i = 0; i < ap->narenas; i++){
+		debugarena = i;
 		ap->arenas[i] = initarena(part, ap->map[i].start, ap->map[i].stop - ap->map[i].start, ap->blocksize);
 		if(ap->arenas[i] == nil){
 			seterr(ECorrupt, "%s: %r", ap->map[i].name);
@@ -168,8 +169,11 @@ initarenapart(Part *part)
 		}
 	}
 
-	for(i = 0; i < ap->narenas; i++)
+	for(i = 0; i < ap->narenas; i++) {
+		debugarena = i;
 		addarena(ap->arenas[i]);
+	}
+	debugarena = -1;
 
 	return ap;
 }

+ 3 - 1
sys/src/cmd/venti/srv/checkarenas.c

@@ -128,8 +128,10 @@ threadmain(int argc, char *argv[])
 	initdcache(8 * MaxDiskBlock);
 
 	for(i = 0; i < ap->narenas; i++)
-		if(should(ap->arenas[i]->name, argc, argv))
+		if(should(ap->arenas[i]->name, argc, argv)) {
+			debugarena = i;
 			checkarena(ap->arenas[i], scan, fix);
+		}
 
 	if(verbose > 1)
 		printstats();

+ 8 - 2
sys/src/cmd/venti/srv/conv.c

@@ -15,6 +15,8 @@
 #define	U32PUT(p,v)	(p)[0]=((v)>>24)&0xFF;(p)[1]=((v)>>16)&0xFF;(p)[2]=((v)>>8)&0xFF;(p)[3]=(v)&0xFF
 #define	U64PUT(p,v,t32)	t32=(v)>>32;U32PUT(p,t32);t32=(v);U32PUT((p)+4,t32)
 
+int debugarena = -1;		/* hack to improve error reporting */
+
 static struct {
 	u32int m;
 	char *s;
@@ -112,7 +114,9 @@ unpackarena(Arena *arena, u8int *buf)
 
 	m = U32GET(p);
 	if(m != ArenaMagic){
-		seterr(ECorrupt, "arena has wrong magic number: %s expected ArenaMagic (%#lux)", fmtmagic(fbuf, m), ArenaMagic);
+		seterr(ECorrupt, "arena %d has wrong magic number: %s "
+			"expected ArenaMagic (%#lux)", debugarena,
+			fmtmagic(fbuf, m), ArenaMagic);
 		return -1;
 	}
 	p += U32Size;
@@ -308,7 +312,9 @@ unpackarenahead(ArenaHead *head, u8int *buf)
 
 	m = U32GET(p);
 	if(m != ArenaHeadMagic){
-		seterr(ECorrupt, "arena has wrong magic number: %s expected ArenaHeadMagic (%#lux)", fmtmagic(fbuf, m), ArenaHeadMagic);
+		seterr(ECorrupt, "arena %d head has wrong magic number: %s "
+			"expected ArenaHeadMagic (%#lux)", debugarena,
+			fmtmagic(fbuf, m), ArenaHeadMagic);
 		return -1;
 	}
 

+ 1 - 0
sys/src/cmd/venti/srv/dat.h

@@ -744,6 +744,7 @@ extern	int		l1quantum;
 extern	int		ignorebloom;
 extern	int		icacheprefetch;
 extern	int		syncwrites;
+extern	int		debugarena; /* print in arena error msgs; -1==unknown */
 
 extern	Stats	*stathist;
 extern	int	nstathist;

+ 1 - 0
sys/src/cmd/venti/srv/mkfile

@@ -64,6 +64,7 @@ TARG=\
 	fmtisect\
 	mirrorarenas\
 	printarena\
+	printarenapart\
 	rdarena\
 	syncindex\
 	verifyarena\

+ 86 - 3
sys/src/cmd/venti/srv/venti.c

@@ -3,6 +3,7 @@
 #include <signal.h>
 #endif
 #include "stdinc.h"
+#include <bio.h>
 #include "dat.h"
 #include "fns.h"
 
@@ -15,22 +16,63 @@ VtSrv *ventisrv;
 
 static void	ventiserver(void*);
 
+static ulong
+freemem(void)
+{
+	int nf, pgsize = 0;
+	uvlong size, userpgs = 0, userused = 0;
+	char *ln, *sl;
+	char *fields[2];
+	Biobuf *bp;
+
+	size = 64*1024*1024;
+	bp = Bopen("#c/swap", OREAD);
+	if (bp != nil) {
+		while ((ln = Brdline(bp, '\n')) != nil) {
+			ln[Blinelen(bp)-1] = '\0';
+			nf = tokenize(ln, fields, nelem(fields));
+			if (nf != 2)
+				continue;
+			if (strcmp(fields[1], "pagesize") == 0)
+				pgsize = atoi(fields[0]);
+			else if (strcmp(fields[1], "user") == 0) {
+				sl = strchr(fields[0], '/');
+				if (sl == nil)
+					continue;
+				userpgs = atoll(sl+1);
+				userused = atoll(fields[0]);
+			}
+		}
+		Bterm(bp);
+		if (pgsize > 0 && userpgs > 0)
+			size = (userpgs - userused) * pgsize;
+	}
+	/* cap it to keep the size within 32 bits */
+	if (size >= 3840UL * 1024 * 1024)
+		size = 3840UL * 1024 * 1024;
+	return size;
+}
+
 void
 usage(void)
 {
 	fprint(2, "usage: venti [-Ldrsw] [-a ventiaddr] [-c config] "
-"[-h httpaddr] [-B blockcachesize] [-C cachesize] [-I icachesize] [-W webroot]\n");
+"[-h httpaddr] [-m %%] [-B blockcachesize] [-C cachesize] [-I icachesize] "
+"[-W webroot]\n");
 	threadexitsall("usage");
 }
+
 void
 threadmain(int argc, char *argv[])
 {
 	char *configfile, *haddr, *vaddr, *webroot;
-	u32int mem, icmem, bcmem, minbcmem;
+	u32int mem, icmem, bcmem, minbcmem, mempcnt, stfree, aftblmfree, avail;
+	vlong blmsize;
 	Config config;
 
 	traceinit();
 	threadsetname("main");
+	mempcnt = 0;
 	vaddr = nil;
 	haddr = nil;
 	configfile = nil;
@@ -38,6 +80,7 @@ threadmain(int argc, char *argv[])
 	mem = 0;
 	icmem = 0;
 	bcmem = 0;
+	stfree = 0;
 	ARGBEGIN{
 	case 'a':
 		vaddr = EARGF(usage());
@@ -61,6 +104,11 @@ threadmain(int argc, char *argv[])
 	case 'h':
 		haddr = EARGF(usage());
 		break;
+	case 'm':
+		mempcnt = atoi(EARGF(usage()));
+		if (mempcnt <= 0 || mempcnt >= 100)
+			usage();
+		break;
 	case 'I':
 		icmem = unittoull(EARGF(usage()));
 		break;
@@ -106,18 +154,54 @@ threadmain(int argc, char *argv[])
 	if(configfile == nil)
 		configfile = "venti.conf";
 
+	/* automatic memory sizing? */
+	if(mempcnt > 0)
+		stfree = freemem();
 	fprint(2, "conf...");
 	if(initventi(configfile, &config) < 0)
 		sysfatal("can't init server: %r");
 	if(mainindex->bloom && loadbloom(mainindex->bloom) < 0)
 		sysfatal("can't load bloom filter: %r");
 
+	/* automatic memory sizing per venti(8) guidelines? */
+	if(mempcnt > 0) {
+		mem = bcmem = icmem = 0;
+		aftblmfree = freemem();
+		blmsize = stfree - aftblmfree;
+		if (blmsize <= 0)
+			blmsize = 0;
+		avail = ((vlong)stfree * mempcnt) / 100 - blmsize;
+		if (avail <= (1 + 2 + 6) * 1024 * 1024)
+			fprint(2, "bloom filter bigger than mem pcnt; "
+				"resorting to minimum values (9MB total)\n");
+		else {
+			if (avail >= 3840UL * 1024 * 1024)
+				avail = 3840UL * 1024 * 1024;	/* sanity */
+			avail /= 2;
+			icmem = avail;
+			avail /= 3;
+			mem = avail;
+			bcmem = 2 * avail;
+		}
+		if (icmem < 6 * 1024 * 1024)
+			icmem = 6 * 1024 * 1024;
+		if (mem < 1 * 1024 * 1024)		/* lumps */
+			mem = 1 * 1024 * 1024;
+		if (bcmem < 2 * 1024 * 1024)
+			bcmem = 2 * 1024 * 1024;
+		config.mem = mem;
+		config.bcmem = bcmem;
+		config.icmem = icmem;
+	}
+
 	if(mem == 0)
 		mem = config.mem;
 	if(bcmem == 0)
 		bcmem = config.bcmem;
 	if(icmem == 0)
 		icmem = config.icmem;
+//	fprint(2, "mem %d bcmem %d icmem %d...", mem, bcmem, icmem);
+
 	if(haddr == nil)
 		haddr = config.haddr;
 	if(vaddr == nil)
@@ -128,7 +212,6 @@ threadmain(int argc, char *argv[])
 		webroot = config.webroot;
 	if(queuewrites == 0)
 		queuewrites = config.queuewrites;
-
 	if(haddr){
 		fprint(2, "httpd %s...", haddr);
 		if(httpdinit(haddr, webroot) < 0)