iMove index cache statistics to icache.c - dedup - deduplicating backup program Err bitreich.org 70 hgit clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ URL:git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ bitreich.org 70 1Log /scm/dedup/log.gph bitreich.org 70 1Files /scm/dedup/files.gph bitreich.org 70 1Refs /scm/dedup/refs.gph bitreich.org 70 1Tags /scm/dedup/tag bitreich.org 70 1README /scm/dedup/file/README.gph bitreich.org 70 1LICENSE /scm/dedup/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 4b9498e7eb0396140d4e814f01e1bebb18c9aa77 /scm/dedup/commit/4b9498e7eb0396140d4e814f01e1bebb18c9aa77.gph bitreich.org 70 1parent 85ff1381801100535ac272abc6ff359e986f9bf2 /scm/dedup/commit/85ff1381801100535ac272abc6ff359e986f9bf2.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Sat, 30 Mar 2019 16:31:37 +0000 Err bitreich.org 70 i Err bitreich.org 70 iMove index cache statistics to icache.c Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M dedup.c | 11 +++++------ Err bitreich.org 70 i M dedup.h | 2 ++ Err bitreich.org 70 i M icache.c | 13 +++++++++++++ Err bitreich.org 70 i Err bitreich.org 70 i3 files changed, 20 insertions(+), 6 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/dedup.c b/dedup.c /scm/dedup/file/dedup.c.gph bitreich.org 70 i@@ -33,8 +33,6 @@ static struct blk_hdr blk_hdr; Err bitreich.org 70 i static struct icache *icache; Err bitreich.org 70 i static int ifd; Err bitreich.org 70 i static int sfd; Err bitreich.org 70 i-static unsigned long long icache_hits; Err bitreich.org 70 i-static unsigned long long icache_misses; Err bitreich.org 70 i Err bitreich.org 70 i int verbose; Err bitreich.org 70 i char *argv0; Err bitreich.org 70 i@@ -51,6 +49,8 @@ print_md(FILE *fp, uint8_t *md, size_t size) Err bitreich.org 70 i static void Err bitreich.org 70 i print_stats(struct stats *st) Err bitreich.org 70 i { Err bitreich.org 70 i+ unsigned long long hits, misses; Err bitreich.org 70 i+ Err bitreich.org 70 i if (st->nr_blks == 0) Err bitreich.org 70 i return; Err bitreich.org 70 i Err bitreich.org 70 i@@ -68,8 +68,9 @@ print_stats(struct stats *st) Err bitreich.org 70 i (unsigned long long)st->max_blk_size); Err bitreich.org 70 i fprintf(stderr, "Number of unique blocks: %llu\n", Err bitreich.org 70 i (unsigned long long)st->nr_blks); Err bitreich.org 70 i- fprintf(stderr, "Index cache hits: %llu\n", icache_hits); Err bitreich.org 70 i- fprintf(stderr, "Index cache misses: %llu\n", icache_misses); Err bitreich.org 70 i+ icache_stats(icache, &hits, &misses); Err bitreich.org 70 i+ fprintf(stderr, "Index cache hits: %llu\n", hits); Err bitreich.org 70 i+ fprintf(stderr, "Index cache hits: %llu\n", misses); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i static struct snap * Err bitreich.org 70 i@@ -228,7 +229,6 @@ dedup_chunk(struct snap *snap, uint8_t *chunkp, size_t chunk_size) Err bitreich.org 70 i append_blk(compr_buf, &blk_desc); Err bitreich.org 70 i Err bitreich.org 70 i insert_icache(icache, &blk_desc); Err bitreich.org 70 i- icache_misses++; Err bitreich.org 70 i Err bitreich.org 70 i snap_hdr.st.dedup_size += blk_desc.size; Err bitreich.org 70 i snap_hdr.st.nr_blks++; Err bitreich.org 70 i@@ -239,7 +239,6 @@ dedup_chunk(struct snap *snap, uint8_t *chunkp, size_t chunk_size) Err bitreich.org 70 i snap_hdr.st.min_blk_size = blk_desc.size; Err bitreich.org 70 i } else { Err bitreich.org 70 i snap->blk_desc[snap->nr_blk_descs++] = blk_desc; Err bitreich.org 70 i- icache_hits++; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i free(compr_buf); Err bitreich.org 70 1diff --git a/dedup.h b/dedup.h /scm/dedup/file/dedup.h.gph bitreich.org 70 i@@ -75,6 +75,8 @@ struct icache *alloc_icache(void); Err bitreich.org 70 i void free_icache(struct icache *icache); Err bitreich.org 70 i void insert_icache(struct icache *icache, struct blk_desc *desc); Err bitreich.org 70 i int lookup_icache(struct icache *icache, struct blk_desc *desc); Err bitreich.org 70 i+void icache_stats(struct icache *icache, unsigned long long *hits, Err bitreich.org 70 i+ unsigned long long *misses); Err bitreich.org 70 i Err bitreich.org 70 i /* chunker.c */ Err bitreich.org 70 i struct chunker *alloc_chunker(int fd, size_t min_size, size_t max_size, Err bitreich.org 70 1diff --git a/icache.c b/icache.c /scm/dedup/file/icache.c.gph bitreich.org 70 i@@ -16,6 +16,8 @@ RB_HEAD(icache_head, node); Err bitreich.org 70 i Err bitreich.org 70 i struct icache { Err bitreich.org 70 i struct icache_head nodes; Err bitreich.org 70 i+ unsigned long long hits; Err bitreich.org 70 i+ unsigned long long misses; Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i static int Err bitreich.org 70 i@@ -93,8 +95,19 @@ lookup_icache(struct icache *icache, struct blk_desc *desc) Err bitreich.org 70 i key.desc = *desc; Err bitreich.org 70 i node = RB_FIND(icache_head, &icache->nodes, &key); Err bitreich.org 70 i if (node != NULL) { Err bitreich.org 70 i+ icache->hits++; Err bitreich.org 70 i *desc = node->desc; Err bitreich.org 70 i return 0; Err bitreich.org 70 i } Err bitreich.org 70 i+ icache->misses++; Err bitreich.org 70 i return -1; Err bitreich.org 70 i } Err bitreich.org 70 i+ Err bitreich.org 70 i+void Err bitreich.org 70 i+icache_stats(struct icache *icache, unsigned long long *hits, Err bitreich.org 70 i+ unsigned long long *misses) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ *hits = icache->hits; Err bitreich.org 70 i+ *misses = icache->misses; Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 .