Re: [RFC v3] ext4: Combine barrier requests coming from fsync
From: Tejun Heo <tj@kernel.org>
Date: 2010-08-19 09:21:49
Also in:
lkml
Hello, On 08/19/2010 10:53 AM, Christoph Hellwig wrote:
On Wed, Aug 18, 2010 at 07:07:34PM -0700, Darrick J. Wong wrote:quoted
Oddly, I ran the entire suite of tests against a larger set of machines, and with Tejun's RFC patchset I didn't see nearly as much of an improvement. I have been trying to put together a new tree based on "replace barrier with sequenced flush" and Christoph's "explicitly flush/FUA" patch sets, though I've gotten lost in the weeds. :(Tejun's patches don't allow concurrent cache flushes to happen, while my patch did. Tejun said there are drivers that can't handly empty flushes with a bio attached, making this nessecary. Tejun, any idea what drivers that would be?
What was the configuration? If dm was involved, both md and dm can only process single flush request at a time. Supporing multiple flushes in flight wouldn't be too difficult. It's just the way things are implemented with the previous barrier implementation. It can definitely be improved.
quoted
I also experienced some sort of crash with Tejun's relaxed barrier patch on one of my systems. I was hitting the BUG_ON in drivers/scsi/scsi_lib.c, line 1115.My kernel source doesn't have a BUG_ON line there, but only one two lines above. A req->nr_phys_segments that's zero sounds a bit like empty flush requests, I'll need to look into it again.
Yeah, definitely sounds like REQ_FS|REQ_FLUSH request causing problem. Can you post the kernel log? Thanks. -- tejun