Bug 691646

Summary: xfs heavy random write workloads got blocked for more than 120 seconds
Product: Red Hat Enterprise Linux 6 Reporter: Eryu Guan <eguan>
Component: kernelAssignee: Red Hat Kernel Manager <kernel-mgr>
Status: CLOSED NOTABUG QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.1CC: dchinner, kzhang, rwheeler
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-03-30 03:40:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
full blocked call trace
none
sysrq-w output
none
ffsb config file none

Description Eryu Guan 2011-03-29 06:16:06 UTC
Description of problem:
The random write workload generator (ffsb here) would get blocked for more than 120 seconds on xfs

Version-Release number of selected component (if applicable):
kernel-2.6.32-122.el6.x86_64

How reproducible:
About 10% or so

Steps to Reproduce:
1. Prepare a partition with 100+G free space
2. Run ffsb to generate random write workload(see attachment for ffsb config file)
3. Check dmesg for call trace
  
Actual results:
INFO: task ffsb:19705 blocked for more than 120 seconds.

I attached the full log, and the sysrq-w output

Expected results:
No blocked messages

Additional info:
Here is a beaker job
https://beaker.engineering.redhat.com/jobs/66287
http://beaker-archive.app.eng.bos.redhat.com/beaker-logs/2011/03/662/66287/135727/1476926/5890296///console_dmesg--kernel-filesystems-general-stress-ffsb-random_writes_threads_192.ffsb.log

Comment 1 Eryu Guan 2011-03-29 06:16:49 UTC
Created attachment 488332 [details]
full blocked call trace

Comment 2 Eryu Guan 2011-03-29 06:17:25 UTC
Created attachment 488333 [details]
sysrq-w output

Comment 3 Eryu Guan 2011-03-29 06:19:58 UTC
Created attachment 488334 [details]
ffsb config file

Modify the 'location' string, then run: ffsb random_writes_threads_192.ffsb
This requires ffsb-6.0-rc2

Comment 5 Dave Chinner 2011-03-30 01:10:02 UTC
So 192 threads doing random buffered writes all at the same time to 1024 files?
Sounds to me like you filled memory wih dirty pages and then discovered that writeback of random IO is really, really slow and that causes new writes to block for a long, long time. This doesn't look like a bug to me, just a case of overloading the IO subsystem by buffering tens of thousands of dirty pages and then wondering why everything grinds to a halt as we can only clean a few hundred pages/s....

Cheers,

Dave.

Comment 6 Eryu Guan 2011-03-30 03:40:50 UTC
(In reply to comment #5)
> So 192 threads doing random buffered writes all at the same time to 1024 files?
> Sounds to me like you filled memory wih dirty pages and then discovered that
> writeback of random IO is really, really slow and that causes new writes to
> block for a long, long time. This doesn't look like a bug to me, just a case of
> overloading the IO subsystem by buffering tens of thousands of dirty pages and
> then wondering why everything grinds to a halt as we can only clean a few
> hundred pages/s....
> 
> Cheers,
> 
> Dave.

Thanks for clarifying, I'm just not sure if it's a bug or not.

Close it as NOTABUG