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

Commit 2bcc0328 authored by Liu Bo's avatar Liu Bo Committed by Chris Mason
Browse files

Btrfs: show useful info in space reservation tracepoint



o For space info, the type of space info is useful for debug.
o For transaction handle, its transid is useful.

Signed-off-by: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 7ca4be45
Loading
Loading
Loading
Loading
+10 −19
Original line number Diff line number Diff line
@@ -3363,8 +3363,7 @@ commit_trans:
	}
	data_sinfo->bytes_may_use += bytes;
	trace_btrfs_space_reservation(root->fs_info, "space_info",
				      (u64)(unsigned long)data_sinfo,
				      bytes, 1);
				      data_sinfo->flags, bytes, 1);
	spin_unlock(&data_sinfo->lock);

	return 0;
@@ -3385,8 +3384,7 @@ void btrfs_free_reserved_data_space(struct inode *inode, u64 bytes)
	spin_lock(&data_sinfo->lock);
	data_sinfo->bytes_may_use -= bytes;
	trace_btrfs_space_reservation(root->fs_info, "space_info",
				      (u64)(unsigned long)data_sinfo,
				      bytes, 0);
				      data_sinfo->flags, bytes, 0);
	spin_unlock(&data_sinfo->lock);
}

@@ -3751,9 +3749,7 @@ again:
		if (used + orig_bytes <= space_info->total_bytes) {
			space_info->bytes_may_use += orig_bytes;
			trace_btrfs_space_reservation(root->fs_info,
					      "space_info",
					      (u64)(unsigned long)space_info,
					      orig_bytes, 1);
				"space_info", space_info->flags, orig_bytes, 1);
			ret = 0;
		} else {
			/*
@@ -3822,9 +3818,7 @@ again:
		if (used + num_bytes < space_info->total_bytes + avail) {
			space_info->bytes_may_use += orig_bytes;
			trace_btrfs_space_reservation(root->fs_info,
					      "space_info",
					      (u64)(unsigned long)space_info,
					      orig_bytes, 1);
				"space_info", space_info->flags, orig_bytes, 1);
			ret = 0;
		} else {
			wait_ordered = true;
@@ -3970,8 +3964,7 @@ static void block_rsv_release_bytes(struct btrfs_fs_info *fs_info,
			spin_lock(&space_info->lock);
			space_info->bytes_may_use -= num_bytes;
			trace_btrfs_space_reservation(fs_info, "space_info",
					      (u64)(unsigned long)space_info,
					      num_bytes, 0);
					space_info->flags, num_bytes, 0);
			space_info->reservation_progress++;
			spin_unlock(&space_info->lock);
		}
@@ -4189,14 +4182,14 @@ static void update_global_block_rsv(struct btrfs_fs_info *fs_info)
		block_rsv->reserved += num_bytes;
		sinfo->bytes_may_use += num_bytes;
		trace_btrfs_space_reservation(fs_info, "space_info",
				      (u64)(unsigned long)sinfo, num_bytes, 1);
				      sinfo->flags, num_bytes, 1);
	}

	if (block_rsv->reserved >= block_rsv->size) {
		num_bytes = block_rsv->reserved - block_rsv->size;
		sinfo->bytes_may_use -= num_bytes;
		trace_btrfs_space_reservation(fs_info, "space_info",
				      (u64)(unsigned long)sinfo, num_bytes, 0);
				      sinfo->flags, num_bytes, 0);
		sinfo->reservation_progress++;
		block_rsv->reserved = block_rsv->size;
		block_rsv->full = 1;
@@ -4250,8 +4243,7 @@ void btrfs_trans_release_metadata(struct btrfs_trans_handle *trans,
		return;

	trace_btrfs_space_reservation(root->fs_info, "transaction",
				      (u64)(unsigned long)trans,
				      trans->bytes_reserved, 0);
				      trans->transid, trans->bytes_reserved, 0);
	btrfs_block_rsv_release(root, trans->block_rsv, trans->bytes_reserved);
	trans->bytes_reserved = 0;
}
@@ -4770,8 +4762,7 @@ static int btrfs_update_reserved_bytes(struct btrfs_block_group_cache *cache,
			space_info->bytes_reserved += num_bytes;
			if (reserve == RESERVE_ALLOC) {
				trace_btrfs_space_reservation(cache->fs_info,
					      "space_info",
					      (u64)(unsigned long)space_info,
						"space_info", space_info->flags,
						num_bytes, 0);
				space_info->bytes_may_use -= num_bytes;
			}
+2 −4
Original line number Diff line number Diff line
@@ -439,8 +439,7 @@ int btrfs_save_ino_cache(struct btrfs_root *root,
	if (ret)
		goto out;
	trace_btrfs_space_reservation(root->fs_info, "ino_cache",
				      (u64)(unsigned long)trans,
				      trans->bytes_reserved, 1);
				      trans->transid, trans->bytes_reserved, 1);
again:
	inode = lookup_free_ino_inode(root, path);
	if (IS_ERR(inode) && (PTR_ERR(inode) != -ENOENT || retry)) {
@@ -507,8 +506,7 @@ out_put:
	iput(inode);
out_release:
	trace_btrfs_space_reservation(root->fs_info, "ino_cache",
				      (u64)(unsigned long)trans,
				      trans->bytes_reserved, 0);
				      trans->transid, trans->bytes_reserved, 0);
	btrfs_block_rsv_release(root, trans->block_rsv, trans->bytes_reserved);
out:
	trans->block_rsv = rsv;
+1 −2
Original line number Diff line number Diff line
@@ -337,8 +337,7 @@ again:

	if (num_bytes) {
		trace_btrfs_space_reservation(root->fs_info, "transaction",
					      (u64)(unsigned long)h,
					      num_bytes, 1);
					      h->transid, num_bytes, 1);
		h->block_rsv = &root->fs_info->trans_block_rsv;
		h->bytes_reserved = num_bytes;
	}