From: Ritesh Harjani <riteshh@linux.ibm.com>
To: linux-ext4@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org, Jan Kara <jack@suse.com>,
tytso@mit.edu, "Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>,
Ritesh Harjani <riteshh@linux.ibm.com>
Subject: [RFC 03/16] ext4: mballoc: Add more mb_debug() msgs
Date: Sun, 10 May 2020 11:54:43 +0530 [thread overview]
Message-ID: <5fc8e7788b924e211fcfa4a4c1d2f8503511661a.1589086800.git.riteshh@linux.ibm.com> (raw)
In-Reply-To: <cover.1589086800.git.riteshh@linux.ibm.com>
This patch adds some more debugging mb_debug() msgs to help improve
mballoc code debugging.
Other than adding more mb_debug() msgs at few more places,
there should be no other functionality change in this patch.
Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
---
fs/ext4/mballoc.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index d1464d9110ef..2e4697e7b945 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -2108,7 +2108,7 @@ static noinline_for_stack int
ext4_mb_regular_allocator(struct ext4_allocation_context *ac)
{
ext4_group_t ngroups, group, i;
- int cr;
+ int cr = -1;
int err = 0, first_err = 0;
struct ext4_sb_info *sbi;
struct super_block *sb;
@@ -2260,6 +2260,10 @@ ext4_mb_regular_allocator(struct ext4_allocation_context *ac)
out:
if (!err && ac->ac_status != AC_STATUS_FOUND && first_err)
err = first_err;
+
+ mb_debug(1, "Best len %d, origin len %d, ac_status %u, ac_flags 0x%x, cr %d ret %d\n",
+ ac->ac_b_ex.fe_len, ac->ac_o_ex.fe_len, ac->ac_status,
+ ac->ac_flags, cr, err);
return err;
}
@@ -3918,7 +3922,7 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
mb_debug(1, "discard preallocation for group %u\n", group);
if (list_empty(&grp->bb_prealloc_list))
- return 0;
+ goto out_dbg;
bitmap_bh = ext4_read_block_bitmap(sb, group);
if (IS_ERR(bitmap_bh)) {
@@ -3926,7 +3930,7 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
ext4_error_err(sb, -err,
"Error %d reading block bitmap for %u",
err, group);
- return 0;
+ goto out_dbg;
}
err = ext4_mb_load_buddy(sb, group, &e4b);
@@ -3934,7 +3938,7 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
ext4_warning(sb, "Error %d loading buddy information for %u",
err, group);
put_bh(bitmap_bh);
- return 0;
+ goto out_dbg;
}
if (needed == 0)
@@ -3979,6 +3983,8 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
/* found anything to free? */
if (list_empty(&list)) {
BUG_ON(free != 0);
+ mb_debug(1, "Someone else may have freed PA for this group %u\n",
+ group);
goto out;
}
@@ -4003,6 +4009,9 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
ext4_unlock_group(sb, group);
ext4_mb_unload_buddy(&e4b);
put_bh(bitmap_bh);
+out_dbg:
+ mb_debug(1, "discarded (%d) blocks preallocated for group %u bb_free (%d)\n",
+ free, group, grp->bb_free);
return free;
}
@@ -4538,6 +4547,7 @@ ext4_fsblk_t ext4_mb_new_blocks(handle_t *handle,
ar->len = ar->len >> 1;
}
if (!ar->len) {
+ ext4_mb_show_pa(sb);
*errp = -ENOSPC;
return 0;
}
--
2.21.0
next prev parent reply other threads:[~2020-05-10 6:25 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-10 6:24 [RFC 00/16] ext4: mballoc/extents: Code cleanup and debug improvements Ritesh Harjani
2020-05-10 6:24 ` [RFC 01/16] ext4: mballoc: Do print bb_free info even when it is 0 Ritesh Harjani
2020-05-10 6:24 ` [RFC 02/16] ext4: mballoc: Refactor ext4_mb_show_ac() Ritesh Harjani
2020-05-10 6:24 ` Ritesh Harjani [this message]
2020-05-10 6:24 ` [RFC 04/16] ext4: mballoc: Correct the mb_debug() format specifier for pa_len var Ritesh Harjani
2020-05-10 6:24 ` [RFC 05/16] ext4: mballoc: Fix few other format specifier in mb_debug() Ritesh Harjani
2020-05-10 6:24 ` [RFC 06/16] ext4: mballoc: Simplify error handling in ext4_init_mballoc() Ritesh Harjani
2020-05-10 6:24 ` [RFC 07/16] ext4: mballoc: Make ext4_mb_use_preallocated() return type as bool Ritesh Harjani
2020-05-10 6:24 ` [RFC 08/16] ext4: mballoc: Refactor code inside DOUBLE_CHECK into separate function Ritesh Harjani
2020-05-10 6:24 ` [RFC 09/16] ext4: mballoc: Fix possible NULL ptr & remove BUG_ONs from DOUBLE_CHECK Ritesh Harjani
2020-05-10 6:24 ` [RFC 10/16] ext4: balloc: Use task_pid_nr() helper Ritesh Harjani
2020-05-10 6:24 ` [RFC 11/16] ext4: Use BIT() macro for BH_** state bits Ritesh Harjani
2020-05-10 6:24 ` [RFC 12/16] ext4: Improve ext_debug() msg in case of block allocation failure Ritesh Harjani
2020-05-10 6:24 ` [RFC 13/16] ext4: Replace EXT_DEBUG with __maybe_unused in ext4_ext_handle_unwritten_extents() Ritesh Harjani
2020-05-10 6:24 ` [RFC 14/16] ext4: mballoc: Make mb_debug() implementation to use pr_debug() Ritesh Harjani
2020-05-10 6:24 ` [RFC 15/16] ext4: Make ext_debug() " Ritesh Harjani
2020-05-10 6:24 ` [RFC 16/16] ext4: Add process name and pid in ext4_msg() Ritesh Harjani
2020-05-21 18:26 ` Theodore Y. Ts'o
2020-06-02 5:00 ` Ritesh Harjani
2020-05-28 14:20 ` [RFC 00/16] ext4: mballoc/extents: Code cleanup and debug improvements Theodore Y. Ts'o
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5fc8e7788b924e211fcfa4a4c1d2f8503511661a.1589086800.git.riteshh@linux.ibm.com \
--to=riteshh@linux.ibm.com \
--cc=aneesh.kumar@linux.ibm.com \
--cc=jack@suse.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).