[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v10] remus drbd: Implement remus drbd replicated disk

Ian Jackson writes ("Re: [PATCH v10] remus drbd: Implement remus drbd 
replicated disk"):
> Shriram Rajagopalan writes ("Re: [PATCH v10] remus drbd: Implement remus drbd 
> replicated disk"):
> > Nope.  I designed the relevant drbd code such that the ioctl wait times out
> > (configurable) in worst case, returning an error. The time out is generally
> > about 300ms. This code path is exercised only during failures.
> If you think this ioctl will, when there is no error, complete
> immediately, can we have a non-blocking [version], and fall back to the
> fork trick ?
> Or better still, is there something we could poll() on to find out
> when the ioctl will definitely complete ?

Or, you say the timeout is configurable ?

If it's configurable per control fd, could we perhaps do this:

  1. set the timeout to zero
  2. make the ioctl DRBD_WAIT_CHECKPOINT_ACK
     if the ioctl says "timeout", fork and:
       3. set the timeout to something sane
       4. make the ioctl again
       5. in the parent, use the asynchronous child wait machinery


This depends on DRBD_WAIT_CHECKPOINT_ACK doing something sensible if
called again after having timed out.

I hesitate to suggest it, but if there is no better way, perhaps we
will have to make a special-purpose thread just for issuing this
ioctl.  That would be a pain.

So, Shriram, suggestions/opinions/etc. welcome.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.