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

Tejun Heo tj at kernel.org
Tue Sep 11 01:06:54 CEST 2012


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


More information about the drbd-dev mailing list