Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15633a22 authored by Srinivas Eeda's avatar Srinivas Eeda Committed by Joel Becker
Browse files

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: default avatarSrinivas Eeda <srinivas.eeda@oracle.com>
Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
parent 83273932
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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,
+3 −1
Original line number Diff line number Diff line
@@ -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 {
+8 −0
Original line number Diff line number Diff line
@@ -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;
}