[Ocfs2-devel] [PATCH 2/2] ocfs2 patch to track delayed orphan scan timer statistics
Sunil Mushran
sunil.mushran at oracle.com
Tue Jun 2 11:30:30 PDT 2009
Srinivas Eeda wrote:
> Patch to track delayed orphan scan timer statistics.
>
> Modifies ocfs2_osb_dump to print the following:
> Orphan Scan=> Local: 10 Global: 21 Last Scan: 67 seconds ago
>
> Signed-off-by: Srinivas Eeda <srinivas.eeda at oracle.com>
> ---
> fs/ocfs2/journal.c | 2 ++
> fs/ocfs2/ocfs2.h | 4 +++-
> fs/ocfs2/super.c | 7 +++++++
> 3 files changed, 12 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
> index cee42ed..81b5885 100644
> --- a/fs/ocfs2/journal.c
> +++ b/fs/ocfs2/journal.c
> @@ -1907,6 +1907,8 @@ void ocfs2_queue_delayed_orphan_scan(struct ocfs2_super *osb)
> * number and update LVB so other node will skip the scan for a while
> */
> seqno++;
> + ds->ds_count++;
> + ds->ds_scantime = CURRENT_TIME;
> unlock:
> ocfs2_orphan_scan_unlock(osb, seqno, level);
> out:
> diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
> index 7dc23de..4eea45e 100644
> --- a/fs/ocfs2/ocfs2.h
> +++ b/fs/ocfs2/ocfs2.h
> @@ -156,7 +156,9 @@ struct ocfs2_delayed_orphan_scan {
> struct ocfs2_super *ds_osb;
> struct ocfs2_lock_res ds_lockres; /* lock to synchronize scans */
> struct delayed_work ds_delayed_orphan_scan_work;
> - u64 ds_seqno; /* incremented on every scan */
> + struct timespec ds_scantime; /* time this node ran the scan */
> + u64 ds_count; /* tracks node specific scans */
> + u64 ds_seqno; /* tracks cluster wide scans */
>
u32 should be enough.
> };
>
> struct ocfs2_dlm_debug {
> diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
> index 06e139e..d2320a0 100644
> --- a/fs/ocfs2/super.c
> +++ b/fs/ocfs2/super.c
> @@ -208,6 +208,7 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
> int i;
> struct ocfs2_cluster_connection *cconn = osb->cconn;
> struct ocfs2_recovery_map *rm = osb->recovery_map;
> + struct ocfs2_delayed_orphan_scan *ds;
>
> out += snprintf(buf + out, len - out,
> "%10s => Id: %-s Uuid: %-s Gen: 0x%X Label: %-s\n",
> @@ -309,6 +310,12 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
> i, osb->slot_recovery_generations[i]);
> }
>
> + ds = &osb->osb_delayed_scan;
> + out += snprintf(buf + out, len - out, "Orphan Scan=> ");
> + out += snprintf(buf + out, len - out, "Local: %llu Global: %llu ",
> + ds->ds_count, ds->ds_seqno);
> + out += snprintf(buf + out, len - out, " Last Scan: %lu seconds ago\n",
> + (get_seconds() - ds->ds_scantime.tv_sec));
> return out;
> }
>
>
More information about the Ocfs2-devel
mailing list