Re: [RFC v3] ext4: Combine barrier requests coming from fsync

From: Tejun Heo
Date: Thu Aug 19 2010 - 05:21:52 EST


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:
>> 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.

>> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/