Re: [GIT PULL] DRBD bits for 2.6.39
From: Jens Axboe
Date: Thu Mar 10 2011 - 08:16:49 EST
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/