11 Bprint(&bout, "%22lld %V %3d %5d\n",
12 ie->ia.addr, ie->score, ie->ia.type, ie->ia.size);
18 fprint(2, "usage: printarenas [-B blockcachesize] config [arenaname...]\n");
25 shoulddump(char *name, int argc, char **argv)
32 if(strcmp(name, argv[i]) == 0)
39 ClumpChunks = 32*1024,
43 dumparena(Arena *arena, u64int a)
50 cis = MKN(ClumpInfo, ClumpChunks);
52 memset(&ie, 0, sizeof(IEntry));
53 for(clump = 0; clump < arena->memstats.clumps; clump += n){
55 if(n > arena->memstats.clumps - clump)
56 n = arena->memstats.clumps - clump;
57 if(readclumpinfos(arena, clump, cis, n) != n){
58 fprint(2, "arena directory read failed: %r\n");
62 for(i = 0; i < n; i++){
64 ie.ia.type = ci->type;
65 ie.ia.size = ci->uncsize;
67 a += ci->size + ClumpSize;
68 ie.ia.blocks = (ci->size + ClumpSize + (1 << ABlockLog) - 1) >> ABlockLog;
69 scorecp(ie.score, ci->score);
77 threadmain(int argc, char *argv[])
86 bcmem = unittoull(ARGF());
98 if(initventi(argv[0], &conf) < 0)
99 sysfatal("can't init venti: %r");
101 if(bcmem < maxblocksize * (mainindex->narenas + mainindex->nsects * 4 + 16))
102 bcmem = maxblocksize * (mainindex->narenas + mainindex->nsects * 4 + 16);
103 if(0) fprint(2, "initialize %d bytes of disk block cache\n", bcmem);
106 Binit(&bout, 1, OWRITE);
108 for(i=0; i<ix->narenas; i++)
109 if(shoulddump(ix->arenas[i]->name, argc-1, argv+1))
110 dumparena(ix->arenas[i], ix->amap[i].start);