lkml.org 
[lkml]   [2012]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [RFC]blk: mark discard request sync
From
2012/3/21 Vivek Goyal <vgoyal@redhat.com>:
> On Fri, Mar 16, 2012 at 03:40:14PM +0800, Shaohua Li wrote:
>>
>> Subject: blk: mark discard request sync
>>
>> discard is called in jbd for example. If discard is slowed down, all
>> file operations could be impacted (eg, journal is full). And we always
>> wait for discard to finish. So looks we should mark discard as sync.
>>
>> Signed-off-by: Shaohua Li <shli@fusionio.com>
>
> This one is tricky and I am not sure what's the right thing to do.
>
> Generally the philosophy seems to be that request is sync is somebody
> is waiting on it. To me even on async writes somebody is waiting (either
> file system or a writer which has been throttled). So if we don't do
> async writes in reasonable amount of time, we start getting "task blocked
> for more than 120 seconds" message.
Not just waiting. If jbd is slow and full, things will get crazy.

> Do you have some test cases to show how bad the problem is if we don't
> issue discard as SYNC request.
I came this idea when debugging Holger's discard slow problem, though his
problem isn't related to the issue because he is using noop. I realized this
could be a problem if ioscheduler is cfq. I tested a workload which deletes
a lot of small files. With a fusionio card (changing ioscheduler to
cfq), marking
discard sync gives slightly better performance. For ssd with slow discard, this
might be more significant (I didn't try, no such ssd).

But any way, I haven't too strong reason we should do this, this's why it's RFC.

Thanks,
Shaohua


\
 
 \ /
  Last update: 2012-03-21 02:03    [W:0.085 / U:0.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site