Export to GitHub

radc - issue #14

Ordering of Bio Request required for Verification


Posted on Mar 17, 2011 by Quick Lion

There is an issue we are facing with the ordering of I/O s that are being passed from our layer to the lower one.

We are basically using workqueues for writes because we first have to read the imd sector which needs to be updated and then finally write the data and the updated imd to the disk. Now the write part of this process is done using workqueues.

So basically the writes are being deferred. What happens due to this is that sometimes the imd sector is read before the checksums in it can be updated and due to this, the verification procedure gives out a mismatch because it basically has the new data and old imd. Now to resolve this problem, we need to make sure that the I/O happens in an ordered fashion once it is submitted by our layer to the lower layer. The order in which submission takes place is not maintained and hence there is a problem.

Is there any way using which we can ensure that I/O happens in an ordered way ?

We have already tried the BIO_RW_BARRIER flag and it doesn't work.....right now we are ensuring this ordering by holding a lock across I/O operation.....which makes the system very slow....so we need to look out for an alternative.

Comment #1

Posted on Mar 17, 2011 by Quick Lion

(No comment was entered for this change.)

Comment #2

Posted on Mar 17, 2011 by Helpful Bear

Updating the issue name.

Status: New

Labels:
Type-Task Priority-High Performance