[DRBD-cvs] svn commit by phil - r2405 - trunk/drbd - Debugging code
for the new request stuff.
drbd-cvs at lists.linbit.com
drbd-cvs at lists.linbit.com
Tue Sep 12 09:24:02 CEST 2006
Author: phil
Date: 2006-09-12 09:24:01 +0200 (Tue, 12 Sep 2006)
New Revision: 2405
Modified:
trunk/drbd/drbd_req.c
Log:
Debugging code for the new request stuff.
Modified: trunk/drbd/drbd_req.c
===================================================================
--- trunk/drbd/drbd_req.c 2006-09-11 18:23:31 UTC (rev 2404)
+++ trunk/drbd/drbd_req.c 2006-09-12 07:24:01 UTC (rev 2405)
@@ -33,12 +33,68 @@
#include "drbd_int.h"
#include "drbd_req.h"
+// #define VERBOSE_REQUEST_CODE
+#ifdef VERBOSE_REQUEST_CODE
+void print_req_mod(drbd_request_t *req,drbd_req_event_t what)
+{
+ drbd_dev *mdev = req->mdev;
+
+ static const char *rq_event_names[] = {
+ [created] = "created",
+ [to_be_send] = "to_be_send",
+ [to_be_submitted] = "to_be_submitted",
+ [suspend_because_of_conflict] = "suspend_because_of_conflict",
+ [conflicting_req_done] = "conflicting_req_done",
+ [conflicting_ee_done] = "conflicting_ee_done",
+ [queue_for_net_write] = "queue_for_net_write",
+ [queue_for_net_read] = "queue_for_net_read",
+ [send_canceled] = "send_canceled",
+ [send_failed] = "send_failed",
+ [handed_over_to_network] = "handed_over_to_network",
+ [connection_lost_while_pending] = "connection_lost_while_pending",
+ [recv_acked_by_peer] = "recv_acked_by_peer",
+ [write_acked_by_peer] = "write_acked_by_peer",
+ [neg_acked] = "neg_acked",
+ [barrier_acked] = "barrier_acked",
+ [data_received] = "data_received",
+ [read_completed_with_error] = "read_completed_with_error",
+ [write_completed_with_error] = "write_completed_with_error",
+ [completed_ok] = "completed_ok",
+ };
+
+ INFO("_req_mod(%p,%s)\n",req,rq_event_names[what]);
+}
+
+void print_rq_state(drbd_request_t *req, const char *txt)
+{
+ const unsigned long s = req->rq_state;
+ drbd_dev *mdev = req->mdev;
+
+ INFO("%s%p L%c%c%cN%c%c%c%c%c)\n",
+ txt,
+ req,
+ s & RQ_LOCAL_PENDING ? 'p' : '-',
+ s & RQ_LOCAL_COMPLETED ? 'c' : '-',
+ s & RQ_LOCAL_OK ? 'o' : '-',
+ s & RQ_NET_PENDING ? 'p' : '-',
+ s & RQ_NET_QUEUED ? 'q' : '-',
+ s & RQ_NET_SENT ? 's' : '-',
+ s & RQ_NET_DONE ? 'd' : '-',
+ s & RQ_NET_OK ? 'o' : '-' );
+}
+
+#else
+#define print_rq_state(R,T)
+#define print_req_mod(T,W)
+#endif
+
void _req_may_be_done(drbd_request_t *req)
{
const unsigned long s = req->rq_state;
drbd_dev *mdev = req->mdev;
int rw;
+ print_rq_state(req, "_req_may_be_done(");
MUST_HOLD(&mdev->req_lock)
if (s & RQ_NET_PENDING) return;
@@ -264,6 +320,8 @@
drbd_dev *mdev = req->mdev;
MUST_HOLD(&mdev->req_lock);
+ print_req_mod(req,what);
+
switch(what) {
default:
ERR("LOGIC BUG in %s:%u\n", __FILE__ , __LINE__ );
More information about the drbd-cvs
mailing list