drbd: track timing details of peer_requests
authorLars Ellenberg <lars.ellenberg@linbit.com>
Mon, 5 May 2014 21:42:24 +0000 (23:42 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Jul 2014 16:35:14 +0000 (18:35 +0200)
commit21ae5d7f95aa1a64f35b03c91f8714ced3ab61a9
tree9e5d90197118d8110c9a65f07f639c5eae000044
parentad3fee790088d36ad862e31535b5b99c25adeef4
drbd: track timing details of peer_requests

To be able to present timing details in debugfs,
we need to track preparation/submit times of peer requests.

Track peer request flags early,
before they are put on the epoch_entry lists.

Waiting for activity log transactions may be a major latency factor.
We want to be able to present the peer_request state accurately in
debugfs, and what it is waiting for.

Consistently mark/unmark peer requests with EE_CALL_AL_COMPLETE_IO.
Set it only *after* calling drbd_al_begin_io(),
clear it as soon as we call drbd_al_complete_io().

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_int.h
drivers/block/drbd/drbd_receiver.c
drivers/block/drbd/drbd_worker.c