Added error injection code: the kernel parameter processing_delay_in_us
authorbvassche <bvassche@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Tue, 22 Sep 2009 19:18:45 +0000 (19:18 +0000)
committerbvassche <bvassche@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Tue, 22 Sep 2009 19:18:45 +0000 (19:18 +0000)
allows to control by how much the srpt_completion() function (which runs
in interrupt context) will be delayed.

git-svn-id: https://scst.svn.sourceforge.net/svnroot/scst/trunk@1128 d57e44dd-8a1f-0410-8b47-8ef2f437770f

srpt/src/ib_srpt.c

index 6bb46ba..1df516b 100644 (file)
@@ -94,6 +94,10 @@ static unsigned long trace_flag = DEFAULT_SRPT_TRACE_FLAGS;
 module_param(trace_flag, long, 0644);
 MODULE_PARM_DESC(trace_flag,
                 "Trace flags for the ib_srpt kernel module.");
+static unsigned long processing_delay_in_us;
+module_param(processing_delay_in_us, long, 0744);
+MODULE_PARM_DESC(processing_delay_in_us,
+                "Per CQ event processing delay in microseconds.");
 #endif
 
 module_param(thread, int, 0444);
@@ -1454,6 +1458,9 @@ static void srpt_completion(struct ib_cq *cq, void *ctx)
                                break;
                        }
                }
+
+               if (processing_delay_in_us <= MAX_UDELAY_MS * 1000)
+                       udelay(processing_delay_in_us);
        }
 }