ocfs2 patch to track delayed orphan scan timer statistics
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@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:
parent
83273932fb
commit
15633a220f
@ -1900,6 +1900,8 @@ void ocfs2_queue_orphan_scan(struct ocfs2_super *osb)
|
||||
* number and update LVB so other node will skip the scan for a while
|
||||
*/
|
||||
seqno++;
|
||||
os->os_count++;
|
||||
os->os_scantime = CURRENT_TIME;
|
||||
unlock:
|
||||
ocfs2_orphan_scan_unlock(osb, seqno, DLM_LOCK_EX);
|
||||
out:
|
||||
@ -1939,6 +1941,8 @@ int ocfs2_orphan_scan_init(struct ocfs2_super *osb)
|
||||
|
||||
os = &osb->osb_orphan_scan;
|
||||
os->os_osb = osb;
|
||||
os->os_count = 0;
|
||||
os->os_scantime = CURRENT_TIME;
|
||||
mutex_init(&os->os_lock);
|
||||
|
||||
INIT_DELAYED_WORK(&os->os_orphan_scan_work,
|
||||
|
@ -156,7 +156,9 @@ struct ocfs2_orphan_scan {
|
||||
struct ocfs2_super *os_osb;
|
||||
struct ocfs2_lock_res os_lockres; /* lock to synchronize scans */
|
||||
struct delayed_work os_orphan_scan_work;
|
||||
u32 os_seqno; /* incremented on every scan */
|
||||
struct timespec os_scantime; /* time this node ran the scan */
|
||||
u32 os_count; /* tracks node specific scans */
|
||||
u32 os_seqno; /* tracks cluster wide scans */
|
||||
};
|
||||
|
||||
struct ocfs2_dlm_debug {
|
||||
|
@ -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_orphan_scan *os;
|
||||
|
||||
out += snprintf(buf + out, len - out,
|
||||
"%10s => Id: %-s Uuid: %-s Gen: 0x%X Label: %-s\n",
|
||||
@ -309,6 +310,13 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
|
||||
i, osb->slot_recovery_generations[i]);
|
||||
}
|
||||
|
||||
os = &osb->osb_orphan_scan;
|
||||
out += snprintf(buf + out, len - out, "Orphan Scan=> ");
|
||||
out += snprintf(buf + out, len - out, "Local: %u Global: %u ",
|
||||
os->os_count, os->os_seqno);
|
||||
out += snprintf(buf + out, len - out, " Last Scan: %lu seconds ago\n",
|
||||
(get_seconds() - os->os_scantime.tv_sec));
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user