Re: [Drbd-dev] FLUSH/FUA documentation & code discrepancy

From: Tejun Heo
Date: Mon Sep 10 2012 - 19:06:54 EST


Hello, again.

cc'ing Kent and Vivek. The original thread is at

http://thread.gmane.org/gmane.linux.network.drbd.devel/2130

On Mon, Sep 10, 2012 at 03:54:42PM -0700, Tejun Heo wrote:
> > We can possibly work around that by introducing an additional submitter thread,
> > or at least our own list where we queue assembled bios until the lower
> > level device queue drains.
> >
> > But we'd rather have the elevator see the FLUSH/FUA,
> > and treat them as at least a soft barrier/reorder boundary.
> >
> > I may be wrong here, but all the necessary bits for this seem to be in
> > place already, if the information would even reach the elevator in one
> > way or other, and not be completely stripped away early.
> >
> > What would you rather see, the elevator recognizing reorder boundaries?
> > Or additional higher level queueing and extra thread/work queue/whatever?
> >
> > Both are fine with me, I'm just asking for an opinion.
>
> First of all, using FLUSH/FUA for such purpose is an error-prone
> abuse. You're trying to exploit an implementation detail which may
> change at any time. I think what you want is to be able to specify
> REQ_SOFTBARRIER on bio submission, which shouldn't be too hard but I'm
> still lost why this is necessary. Can you please explain it a bit
> more?

The problem with exposing REQ_SOFTBARRIER at bio submission is that it
would require block layer not to reorder bios while passing through
stacked adrivers until it reaches a rq-based driver. I *suspect* this
has been true until now but Kent's pending patch to fix possible
deadlock issue breaks that.

http://thread.gmane.org/gmane.linux.kernel.bcache.devel/1017/focus=1356250

As for what the resolution should be, urgh... I don't know. :(

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/