[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <usGdshd4UQ6wFx4jVDkzY1xddFnUnT7NXj6IWA-uVczdSc5_TmczQvtmULxNVQ3reUPTmyQd2YeLhPa_L2uPbaNdfBPVlLz7rQQ9oC7aSkw=@protonmail.com>
Date: Mon, 22 Oct 2018 10:34:48 +0000
From: Fisher <fisherthepooh@...tonmail.com>
To: "linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>
Subject: Why not always do copy-out in jbd2_journal_write_metadta_buffer
Hi,
Recently I was testing my storage's performance and found that there were
periodic performance drops when I ran sequential write benchmark.
After profiling the duration in each step, I found that the dropping
performance was due to wait_on_bit_io(&bh->b_state, BH_Shadow, TASK_UNINTERRUPTIBLE)
in do_get_write_access(). And this is what made me confused, if my understanding was right,
I thought buffer_shadow(bh) stands for buffer not being copied-out that's why we should wait.
But why don't we do copy-out in jbd2_journal_write_metadta_buffer()? and if we do
do the copy-out, does that mean we don't have to set_buffer_shadow because it refers to
buffer not copied-out?
I made a test, when a buffer_head goes into jbd2_journal_write_metadta_buffer(), as long as
it belongs to metadata, then force it to do copy-out and do not set_buffer_shadow, then there
will be no periodic performance drops. Is this test reasonable?
Thanks,
Powered by blists - more mailing lists