linux_dsm_epyc7002/drivers/block/drbd
Lars Ellenberg 7753a4c17f drbd: add caching oldest request pointers for replication stages
A request that is to be shipped to the peer goes through a few stages:
- queued
- sent, waiting for ack
- ack received, waiting for "barrier ack", which is re-order epoch being
  closed on the peer by acknowledging a "cache flush" equivalent
  on the lower level device.

In the later two stages, depending on protocol, we may have already
completed this request to the upper layers, so it won't be found anymore
on device->pending_master_completion[] lists.

Track the oldest request yet to be sent (req_next), the oldest not yet
acknowledged (req_ack_pending) and the oldest "still waiting for
something from the peer" (req_not_net_done), doing short list walks on
the transfer log to find the next pending one whenever such a request
makes progress.

Now we have a fast way to look up the oldest requests,
don't do a transfer log walk every time.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2014-07-10 18:35:12 +02:00
..
drbd_actlog.c drbd: track meta data IO intent, start and submit time 2014-07-10 18:35:10 +02:00
drbd_bitmap.c drbd: drop drbd_md_flush 2014-07-10 18:35:07 +02:00
drbd_int.h drbd: add caching oldest request pointers for replication stages 2014-07-10 18:35:12 +02:00
drbd_interval.c
drbd_interval.h drbd: application writes may set-in-sync in protocol != C 2014-07-10 18:35:02 +02:00
drbd_main.c drbd: add lists to find oldest pending requests 2014-07-10 18:35:12 +02:00
drbd_nl.c drbd: track meta data IO intent, start and submit time 2014-07-10 18:35:10 +02:00
drbd_nla.c drbd: Remove drbd_wrappers.h 2014-04-30 13:46:54 -06:00
drbd_nla.h
drbd_proc.c drbd: fix bogus resync stats in /proc/drbd 2014-07-10 18:34:59 +02:00
drbd_protocol.h drbd: Enable QUEUE_FLAG_DISCARD only if the peer can recieve P_TRIM 2014-04-30 13:46:55 -06:00
drbd_receiver.c drbd: also keep track of trim -> zero-out fallback peer_requests 2014-07-10 18:35:09 +02:00
drbd_req.c drbd: add caching oldest request pointers for replication stages 2014-07-10 18:35:12 +02:00
drbd_req.h drbd: silence -Wmissing-prototypes warnings 2014-07-10 18:34:57 +02:00
drbd_state.c drbd: clear CRASHED_PRIMARY only after successful resync 2014-07-10 18:35:05 +02:00
drbd_state.h drbd: Rename drbd_tconn -> drbd_connection 2014-02-17 16:44:47 +01:00
drbd_strings.c drbd: Move string function prototypes from linux/drbd.h to drbd_string.h 2014-02-17 16:50:37 +01:00
drbd_strings.h drbd: Move string function prototypes from linux/drbd.h to drbd_string.h 2014-02-17 16:50:37 +01:00
drbd_vli.h
drbd_worker.c drbd: gather detailed timing statistics for drbd_requests 2014-07-10 18:35:11 +02:00
Kconfig
Makefile