https://jira.sw.ru/browse/PSBM-69587 Signed-off-by: Dmitry Monakhov <dmonak...@openvz.org> --- fs/fs-writeback.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index f34ae6c..9df1573 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -787,11 +787,15 @@ static long __writeback_inodes_wb(struct bdi_writeback *wb, { unsigned long start_time = jiffies; long wrote = 0; - + int trace = 0; + while (!list_empty(&wb->b_io)) { struct inode *inode = wb_inode(wb->b_io.prev); struct super_block *sb = inode->i_sb; + if (time_is_before_jiffies(start_time + 15* HZ)) + trace = 1; + if (!grab_super_passive(sb)) { /* * grab_super_passive() may fail consistently due to @@ -799,6 +803,9 @@ static long __writeback_inodes_wb(struct bdi_writeback *wb, * requeue_io() to avoid busy retrying the inode/sb. */ redirty_tail(inode, wb); + if (trace) + printk("%s:%d writeback is taking too long ino:%ld sb(%p):%s\n", + __FUNCTION__, __LINE__, inode->i_ino, sb, sb->s_id); continue; } wrote += writeback_sb_inodes(sb, wb, work); @@ -890,6 +897,7 @@ static long wb_writeback(struct bdi_writeback *wb, unsigned long oldest_jif; struct inode *inode; long progress; + int trace = 0; oldest_jif = jiffies; work->older_than_this = &oldest_jif; @@ -902,6 +910,9 @@ static long wb_writeback(struct bdi_writeback *wb, if (work->nr_pages <= 0) break; + if (time_is_before_jiffies(wb_start + 15* HZ)) + trace = 1; + /* * Background writeout and kupdate-style writeback may * run forever. Stop them if there is other work to do @@ -973,6 +984,10 @@ static long wb_writeback(struct bdi_writeback *wb, inode = wb_inode(wb->b_more_io.prev); spin_lock(&inode->i_lock); spin_unlock(&wb->list_lock); + if (trace) + printk("%s:%d writeback is taking too long ino:%ld st:%ld sb(%p):%s\n", + __FUNCTION__, __LINE__, inode->i_ino, + inode->i_state, inode->i_sb, inode->i_sb->s_id); /* This function drops i_lock... */ inode_sleep_on_writeback(inode); spin_lock(&wb->list_lock); -- 1.8.3.1 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel