lkml.org 
[lkml]   [2017]   [May]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] btrfs: always write superblocks synchronously
From
Date


On 05/03/2017 04:36 AM, Jan Kara wrote:
> On Tue 02-05-17 09:28:13, Davidlohr Bueso wrote:
>> Commit b685d3d65ac7 "block: treat REQ_FUA and REQ_PREFLUSH as
>> synchronous" removed REQ_SYNC flag from WRITE_FUA implementation.
>> Since REQ_FUA and REQ_FLUSH flags are stripped from submitted IO
>> when the disk doesn't have volatile write cache and thus effectively
>> make the write async. This was seen to cause performance hits up
>> to 90% regression in disk IO related benchmarks such as reaim and
>> dbench[1].
>>
>> Fix the problem by making sure the first superblock write is also
>> treated as synchronous since they can block progress of the
>> journalling (commit, log syncs) machinery and thus the whole filesystem.
>>

>>
>> Fixes: b685d3d65ac (block: treat REQ_FUA and REQ_PREFLUSH as synchronous)
>> Cc: stable <stable@vger.kernel.org>
>> Cc: Jan Kara <jack@suze.cz>
>> Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
>
> I wasn't patient enough and already sent the fix as part of my series
> fixing other filesystems [1]. It also fixes one more place in btrfs that
> needs REQ_SYNC to return to the original behavior.
>


Thanks guys.

-chris

\
 
 \ /
  Last update: 2017-05-03 16:57    [W:0.658 / U:0.220 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site