diff mbox series

[10/11] xfs: trace timestamp limits

Message ID 159847956308.2601708.12409676822646276735.stgit@magnolia (mailing list archive)
State Superseded
Headers show
Series xfs: widen timestamps to deal with y2038 | expand

Commit Message

Darrick J. Wong Aug. 26, 2020, 10:06 p.m. UTC
From: Darrick J. Wong <darrick.wong@oracle.com>

Add a couple of tracepoints so that we can check the timestamp limits
being set on inodes and quotas.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
 fs/xfs/xfs_qm.c    |    2 ++
 fs/xfs/xfs_super.c |    1 +
 fs/xfs/xfs_trace.h |   26 ++++++++++++++++++++++++++
 3 files changed, 29 insertions(+)

Comments

Christoph Hellwig Aug. 27, 2020, 7:01 a.m. UTC | #1
On Wed, Aug 26, 2020 at 03:06:03PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
> 
> Add a couple of tracepoints so that we can check the timestamp limits
> being set on inodes and quotas.
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>
Allison Henderson Aug. 28, 2020, 6:08 a.m. UTC | #2
On 8/26/20 3:06 PM, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
> 
> Add a couple of tracepoints so that we can check the timestamp limits
> being set on inodes and quotas.
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Looks ok
Reviewed-by: Allison Collins <allison.henderson@oracle.com>

> ---
>   fs/xfs/xfs_qm.c    |    2 ++
>   fs/xfs/xfs_super.c |    1 +
>   fs/xfs/xfs_trace.h |   26 ++++++++++++++++++++++++++
>   3 files changed, 29 insertions(+)
> 
> 
> diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
> index 259588a4227d..3f82e0c92c2d 100644
> --- a/fs/xfs/xfs_qm.c
> +++ b/fs/xfs/xfs_qm.c
> @@ -670,6 +670,8 @@ xfs_qm_init_quotainfo(
>   		qinf->qi_expiry_min = XFS_DQ_LEGACY_EXPIRY_MIN;
>   		qinf->qi_expiry_max = XFS_DQ_LEGACY_EXPIRY_MAX;
>   	}
> +	trace_xfs_quota_expiry_range(mp, qinf->qi_expiry_min,
> +			qinf->qi_expiry_max);
>   
>   	mp->m_qflags |= (mp->m_sb.sb_qflags & XFS_ALL_QUOTA_CHKD);
>   
> diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
> index 58be2220ae05..8230c902a813 100644
> --- a/fs/xfs/xfs_super.c
> +++ b/fs/xfs/xfs_super.c
> @@ -1491,6 +1491,7 @@ xfs_fc_fill_super(
>   		sb->s_time_min = XFS_LEGACY_TIME_MIN;
>   		sb->s_time_max = XFS_LEGACY_TIME_MAX;
>   	}
> +	trace_xfs_inode_timestamp_range(mp, sb->s_time_min, sb->s_time_max);
>   	sb->s_iflags |= SB_I_CGROUPWB;
>   
>   	set_posix_acl_flag(sb);
> diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
> index abb1d859f226..a3a35a2d8ed9 100644
> --- a/fs/xfs/xfs_trace.h
> +++ b/fs/xfs/xfs_trace.h
> @@ -3844,6 +3844,32 @@ TRACE_EVENT(xfs_btree_bload_block,
>   		  __entry->nr_records)
>   )
>   
> +DECLARE_EVENT_CLASS(xfs_timestamp_range_class,
> +	TP_PROTO(struct xfs_mount *mp, time64_t min, time64_t max),
> +	TP_ARGS(mp, min, max),
> +	TP_STRUCT__entry(
> +		__field(dev_t, dev)
> +		__field(long long, min)
> +		__field(long long, max)
> +	),
> +	TP_fast_assign(
> +		__entry->dev = mp->m_super->s_dev;
> +		__entry->min = min;
> +		__entry->max = max;
> +	),
> +	TP_printk("dev %d:%d min %lld max %lld",
> +		  MAJOR(__entry->dev), MINOR(__entry->dev),
> +		  __entry->min,
> +		  __entry->max)
> +)
> +
> +#define DEFINE_TIMESTAMP_RANGE_EVENT(name) \
> +DEFINE_EVENT(xfs_timestamp_range_class, name, \
> +	TP_PROTO(struct xfs_mount *mp, long long min, long long max), \
> +	TP_ARGS(mp, min, max))
> +DEFINE_TIMESTAMP_RANGE_EVENT(xfs_inode_timestamp_range);
> +DEFINE_TIMESTAMP_RANGE_EVENT(xfs_quota_expiry_range);
> +
>   #endif /* _TRACE_XFS_H */
>   
>   #undef TRACE_INCLUDE_PATH
>
diff mbox series

Patch

diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
index 259588a4227d..3f82e0c92c2d 100644
--- a/fs/xfs/xfs_qm.c
+++ b/fs/xfs/xfs_qm.c
@@ -670,6 +670,8 @@  xfs_qm_init_quotainfo(
 		qinf->qi_expiry_min = XFS_DQ_LEGACY_EXPIRY_MIN;
 		qinf->qi_expiry_max = XFS_DQ_LEGACY_EXPIRY_MAX;
 	}
+	trace_xfs_quota_expiry_range(mp, qinf->qi_expiry_min,
+			qinf->qi_expiry_max);
 
 	mp->m_qflags |= (mp->m_sb.sb_qflags & XFS_ALL_QUOTA_CHKD);
 
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 58be2220ae05..8230c902a813 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -1491,6 +1491,7 @@  xfs_fc_fill_super(
 		sb->s_time_min = XFS_LEGACY_TIME_MIN;
 		sb->s_time_max = XFS_LEGACY_TIME_MAX;
 	}
+	trace_xfs_inode_timestamp_range(mp, sb->s_time_min, sb->s_time_max);
 	sb->s_iflags |= SB_I_CGROUPWB;
 
 	set_posix_acl_flag(sb);
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
index abb1d859f226..a3a35a2d8ed9 100644
--- a/fs/xfs/xfs_trace.h
+++ b/fs/xfs/xfs_trace.h
@@ -3844,6 +3844,32 @@  TRACE_EVENT(xfs_btree_bload_block,
 		  __entry->nr_records)
 )
 
+DECLARE_EVENT_CLASS(xfs_timestamp_range_class,
+	TP_PROTO(struct xfs_mount *mp, time64_t min, time64_t max),
+	TP_ARGS(mp, min, max),
+	TP_STRUCT__entry(
+		__field(dev_t, dev)
+		__field(long long, min)
+		__field(long long, max)
+	),
+	TP_fast_assign(
+		__entry->dev = mp->m_super->s_dev;
+		__entry->min = min;
+		__entry->max = max;
+	),
+	TP_printk("dev %d:%d min %lld max %lld",
+		  MAJOR(__entry->dev), MINOR(__entry->dev),
+		  __entry->min,
+		  __entry->max)
+)
+
+#define DEFINE_TIMESTAMP_RANGE_EVENT(name) \
+DEFINE_EVENT(xfs_timestamp_range_class, name, \
+	TP_PROTO(struct xfs_mount *mp, long long min, long long max), \
+	TP_ARGS(mp, min, max))
+DEFINE_TIMESTAMP_RANGE_EVENT(xfs_inode_timestamp_range);
+DEFINE_TIMESTAMP_RANGE_EVENT(xfs_quota_expiry_range);
+
 #endif /* _TRACE_XFS_H */
 
 #undef TRACE_INCLUDE_PATH