[Drbd-dev] [GIT PULL] DRBD bits for 2.6.39

Jens Axboe axboe at kernel.dk
Thu Mar 10 14:16:42 CET 2011


On 2011-03-10 13:10, Philipp Reisner wrote:
> [...]
>>
>> Now that I have your attention... Did you look at the plugging changes?
> 
> You always have it :)
> I looked at the changes, and I noticed that we no longer get the unplug
> events. 
> 
>> As Christoph mentioned, you seem to be passing plugging information on
>> the wire. What is the reason for that? With the on-stack plugging, these
>> events are not seen by the block device anymore.
>>
> 
> Imagine DRBD in synchronous mode (protocol C in DRBD speak) on an older
> kernel. We mirror a write, in order to get the write-ack packet from the
> peer, the peer needs to unplug as well. -> Send the unplug events via the
> wire.
> 
> Now, it we would connect a current-head-of-git DRBD on one node to
> a older one (which still needs unplug packets to respond quickly),
> we would have a tar pit block device. (At least for single synchronous
> writes)
> 
> We are in brainstorming mode right now here.
> One idea is to have a timer, that gets touched with every request we get
> in, in case it expires, we send out a unplug event over the wire.
> 
> But having the unplug events would be more elegant of course...

The unplug is essentially the ->request_fn() being run now. So for older
clients you could just always include an unplug even when you pulled
whatever off the queue there is and sent it to the device.

-- 
Jens Axboe



More information about the drbd-dev mailing list