diff options
-rw-r--r-- | fs/btrfs/qgroup.c | 7 | ||||
-rw-r--r-- | include/trace/events/btrfs.h | 55 |
2 files changed, 57 insertions, 5 deletions
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index 836819c34c95..92e2c9f15951 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c | |||
@@ -3138,7 +3138,7 @@ int __btrfs_qgroup_reserve_meta(struct btrfs_root *root, int num_bytes, | |||
3138 | return 0; | 3138 | return 0; |
3139 | 3139 | ||
3140 | BUG_ON(num_bytes != round_down(num_bytes, fs_info->nodesize)); | 3140 | BUG_ON(num_bytes != round_down(num_bytes, fs_info->nodesize)); |
3141 | trace_qgroup_meta_reserve(root, (s64)num_bytes); | 3141 | trace_qgroup_meta_reserve(root, type, (s64)num_bytes); |
3142 | ret = qgroup_reserve(root, num_bytes, enforce, type); | 3142 | ret = qgroup_reserve(root, num_bytes, enforce, type); |
3143 | if (ret < 0) | 3143 | if (ret < 0) |
3144 | return ret; | 3144 | return ret; |
@@ -3163,7 +3163,7 @@ void btrfs_qgroup_free_meta_all_pertrans(struct btrfs_root *root) | |||
3163 | return; | 3163 | return; |
3164 | 3164 | ||
3165 | /* TODO: Update trace point to handle such free */ | 3165 | /* TODO: Update trace point to handle such free */ |
3166 | trace_qgroup_meta_reserve(root, 0); | 3166 | trace_qgroup_meta_free_all_pertrans(root); |
3167 | /* Special value -1 means to free all reserved space */ | 3167 | /* Special value -1 means to free all reserved space */ |
3168 | btrfs_qgroup_free_refroot(fs_info, root->objectid, (u64)-1, | 3168 | btrfs_qgroup_free_refroot(fs_info, root->objectid, (u64)-1, |
3169 | BTRFS_QGROUP_RSV_META_PERTRANS); | 3169 | BTRFS_QGROUP_RSV_META_PERTRANS); |
@@ -3185,7 +3185,7 @@ void __btrfs_qgroup_free_meta(struct btrfs_root *root, int num_bytes, | |||
3185 | */ | 3185 | */ |
3186 | num_bytes = sub_root_meta_rsv(root, num_bytes, type); | 3186 | num_bytes = sub_root_meta_rsv(root, num_bytes, type); |
3187 | BUG_ON(num_bytes != round_down(num_bytes, fs_info->nodesize)); | 3187 | BUG_ON(num_bytes != round_down(num_bytes, fs_info->nodesize)); |
3188 | trace_qgroup_meta_reserve(root, -(s64)num_bytes); | 3188 | trace_qgroup_meta_reserve(root, type, -(s64)num_bytes); |
3189 | btrfs_qgroup_free_refroot(fs_info, root->objectid, num_bytes, type); | 3189 | btrfs_qgroup_free_refroot(fs_info, root->objectid, num_bytes, type); |
3190 | } | 3190 | } |
3191 | 3191 | ||
@@ -3245,6 +3245,7 @@ void btrfs_qgroup_convert_reserved_meta(struct btrfs_root *root, int num_bytes) | |||
3245 | /* Same as btrfs_qgroup_free_meta_prealloc() */ | 3245 | /* Same as btrfs_qgroup_free_meta_prealloc() */ |
3246 | num_bytes = sub_root_meta_rsv(root, num_bytes, | 3246 | num_bytes = sub_root_meta_rsv(root, num_bytes, |
3247 | BTRFS_QGROUP_RSV_META_PREALLOC); | 3247 | BTRFS_QGROUP_RSV_META_PREALLOC); |
3248 | trace_qgroup_meta_convert(root, num_bytes); | ||
3248 | qgroup_convert_meta(fs_info, root->objectid, num_bytes); | 3249 | qgroup_convert_meta(fs_info, root->objectid, num_bytes); |
3249 | } | 3250 | } |
3250 | 3251 | ||
diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h index eee778ba1414..965c650a5273 100644 --- a/include/trace/events/btrfs.h +++ b/include/trace/events/btrfs.h | |||
@@ -1663,6 +1663,28 @@ TRACE_EVENT(qgroup_update_reserve, | |||
1663 | 1663 | ||
1664 | TRACE_EVENT(qgroup_meta_reserve, | 1664 | TRACE_EVENT(qgroup_meta_reserve, |
1665 | 1665 | ||
1666 | TP_PROTO(struct btrfs_root *root, s64 diff, int type), | ||
1667 | |||
1668 | TP_ARGS(root, diff, type), | ||
1669 | |||
1670 | TP_STRUCT__entry_btrfs( | ||
1671 | __field( u64, refroot ) | ||
1672 | __field( s64, diff ) | ||
1673 | __field( int, type ) | ||
1674 | ), | ||
1675 | |||
1676 | TP_fast_assign_btrfs(root->fs_info, | ||
1677 | __entry->refroot = root->objectid; | ||
1678 | __entry->diff = diff; | ||
1679 | ), | ||
1680 | |||
1681 | TP_printk_btrfs("refroot=%llu(%s) type=%s diff=%lld", | ||
1682 | show_root_type(__entry->refroot), | ||
1683 | show_qgroup_rsv_type(__entry->type), __entry->diff) | ||
1684 | ); | ||
1685 | |||
1686 | TRACE_EVENT(qgroup_meta_convert, | ||
1687 | |||
1666 | TP_PROTO(struct btrfs_root *root, s64 diff), | 1688 | TP_PROTO(struct btrfs_root *root, s64 diff), |
1667 | 1689 | ||
1668 | TP_ARGS(root, diff), | 1690 | TP_ARGS(root, diff), |
@@ -1670,6 +1692,7 @@ TRACE_EVENT(qgroup_meta_reserve, | |||
1670 | TP_STRUCT__entry_btrfs( | 1692 | TP_STRUCT__entry_btrfs( |
1671 | __field( u64, refroot ) | 1693 | __field( u64, refroot ) |
1672 | __field( s64, diff ) | 1694 | __field( s64, diff ) |
1695 | __field( int, type ) | ||
1673 | ), | 1696 | ), |
1674 | 1697 | ||
1675 | TP_fast_assign_btrfs(root->fs_info, | 1698 | TP_fast_assign_btrfs(root->fs_info, |
@@ -1677,8 +1700,36 @@ TRACE_EVENT(qgroup_meta_reserve, | |||
1677 | __entry->diff = diff; | 1700 | __entry->diff = diff; |
1678 | ), | 1701 | ), |
1679 | 1702 | ||
1680 | TP_printk_btrfs("refroot=%llu(%s) diff=%lld", | 1703 | TP_printk_btrfs("refroot=%llu(%s) type=%s->%s diff=%lld", |
1681 | show_root_type(__entry->refroot), __entry->diff) | 1704 | show_root_type(__entry->refroot), |
1705 | show_qgroup_rsv_type(BTRFS_QGROUP_RSV_META_PREALLOC), | ||
1706 | show_qgroup_rsv_type(BTRFS_QGROUP_RSV_META_PERTRANS), | ||
1707 | __entry->diff) | ||
1708 | ); | ||
1709 | |||
1710 | TRACE_EVENT(qgroup_meta_free_all_pertrans, | ||
1711 | |||
1712 | TP_PROTO(struct btrfs_root *root), | ||
1713 | |||
1714 | TP_ARGS(root), | ||
1715 | |||
1716 | TP_STRUCT__entry_btrfs( | ||
1717 | __field( u64, refroot ) | ||
1718 | __field( s64, diff ) | ||
1719 | __field( int, type ) | ||
1720 | ), | ||
1721 | |||
1722 | TP_fast_assign_btrfs(root->fs_info, | ||
1723 | __entry->refroot = root->objectid; | ||
1724 | spin_lock(&root->qgroup_meta_rsv_lock); | ||
1725 | __entry->diff = -(s64)root->qgroup_meta_rsv_pertrans; | ||
1726 | spin_unlock(&root->qgroup_meta_rsv_lock); | ||
1727 | __entry->type = BTRFS_QGROUP_RSV_META_PERTRANS; | ||
1728 | ), | ||
1729 | |||
1730 | TP_printk_btrfs("refroot=%llu(%s) type=%s diff=%lld", | ||
1731 | show_root_type(__entry->refroot), | ||
1732 | show_qgroup_rsv_type(__entry->type), __entry->diff) | ||
1682 | ); | 1733 | ); |
1683 | 1734 | ||
1684 | DECLARE_EVENT_CLASS(btrfs__prelim_ref, | 1735 | DECLARE_EVENT_CLASS(btrfs__prelim_ref, |