[Drbd-dev] FLUSH/FUA documentation & code discrepancy
koverstreet at google.com
Tue Sep 11 01:31:59 CEST 2012
On Mon, Sep 10, 2012 at 04:06:54PM -0700, Tejun Heo wrote:
> Hello, again.
> cc'ing Kent and Vivek. The original thread is at
> 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.
Yeah, you might be right about that. I think Neil Brown would know
better than I if this ordering was ever explicitly broken.
But I don't think anything else is relying on that kind of ordering any
> As for what the resolution should be, urgh... I don't know. :(
More information about the drbd-dev