From b76bff5557ccc92df456fd7b1cd13c8b061cda07 Mon Sep 17 00:00:00 2001 From: Charles Manning Date: Wed, 18 Aug 2010 12:47:29 +1200 Subject: [PATCH] yaffs Add gc block counter Extra stats for counting how many blocks get selected for gc. Signed-off-by: Charles Manning --- yaffs_fs.c | 1 + yaffs_guts.c | 2 ++ yaffs_guts.h | 1 + 3 files changed, 4 insertions(+) diff --git a/yaffs_fs.c b/yaffs_fs.c index 7b55f18..a372ddf 100644 --- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -3194,6 +3194,7 @@ static char *yaffs_dump_dev_part1(char *buf, yaffs_Device * dev) buf += sprintf(buf, "allGCs............. %u\n", dev->allGCs); buf += sprintf(buf, "passiveGCs......... %u\n", dev->passiveGCs); buf += sprintf(buf, "oldestDirtyGCs..... %u\n", dev->oldestDirtyGCs); + buf += sprintf(buf, "nGCBlocks.......... %u\n", dev->nGCBlocks); buf += sprintf(buf, "backgroundGCs...... %u\n", dev->backgroundGCs); buf += sprintf(buf, "nRetriedWrites..... %u\n", dev->nRetriedWrites); buf += sprintf(buf, "nRetireBlocks...... %u\n", dev->nRetiredBlocks); diff --git a/yaffs_guts.c b/yaffs_guts.c index a1782e7..389a57c 100644 --- a/yaffs_guts.c +++ b/yaffs_guts.c @@ -2500,8 +2500,10 @@ static unsigned yaffs_FindBlockForGarbageCollection(yaffs_Device *dev, dev->param.nChunksPerBlock - dev->gcPagesInUse, prioritised)); + dev->nGCBlocks++; if(background) dev->backgroundGCs++; + dev->gcDirtiest = 0; dev->gcPagesInUse = 0; dev->gcNotDone = 0; diff --git a/yaffs_guts.h b/yaffs_guts.h index 6d4ae46..f9b5ac1 100644 --- a/yaffs_guts.h +++ b/yaffs_guts.h @@ -759,6 +759,7 @@ struct yaffs_DeviceStruct { __u32 allGCs; __u32 passiveGCs; __u32 oldestDirtyGCs; + __u32 nGCBlocks; __u32 backgroundGCs; __u32 nRetriedWrites; __u32 nRetiredBlocks; -- 2.30.2