PERFORCE change 231279 for review

Jonathan Anderson jonathan at FreeBSD.org
Fri Jul 19 11:53:47 UTC 2013


http://p4web.freebsd.org/@@231279?ac=10

Change 231279 by jonathan at jonathan-on-zenith on 2013/07/19 11:53:30

	Pull in TESLA DTrace parts from commit 219d22.

Affected files ...

.. //depot/projects/ctsrd/tesla/src/sys/contrib/tesla/libtesla/tesla_dtrace.c#9 edit

Differences ...

==== //depot/projects/ctsrd/tesla/src/sys/contrib/tesla/libtesla/tesla_dtrace.c#9 (text+ko) ====

@@ -46,8 +46,8 @@
 SDT_PROBE_DEFINE4(tesla, automata, instance, clone, clone,
     "struct tesla_class *", "struct tesla_instance *",
     "struct tesla_instance *", "struct tesla_transition *");
-SDT_PROBE_DEFINE3(tesla, automata, fail, no_instance, no-instance-match,
-    "struct tesla_class *", "const char *",
+SDT_PROBE_DEFINE4(tesla, automata, fail, no_instance, no-instance-match,
+    "struct tesla_class *", "const char *", "const char *",
     "struct tesla_transitions *");
 SDT_PROBE_DEFINE3(tesla, automata, fail, bad_transition, bad-transition,
     "struct tesla_class *", "struct tesla_instance *",
@@ -87,10 +87,28 @@
 no_instance(struct tesla_class *tcp, const struct tesla_key *tkp,
     const struct tesla_transitions *ttp)
 {
+	char instbuf[200];
+	char *c = instbuf;
+	const char *end = instbuf + sizeof(instbuf);
+
+	SAFE_SPRINTF(c, end, "%d/%d instances\n",
+		tcp->tc_limit - tcp->tc_free, tcp->tc_limit);
+
+	for (uint32_t i = 0; i < tcp->tc_limit; i++) {
+		const struct tesla_instance *inst = tcp->tc_instances + i;
+		if (!tesla_instance_active(inst))
+			continue;
+
+		SAFE_SPRINTF(c, end, "    %2u: state %d, ", i, inst->ti_state);
+		c = key_string(c, end, &inst->ti_key);
+		SAFE_SPRINTF(c, end, "\n");
+	}
+
 	char keybuf[20];
 	key_string(keybuf, keybuf + sizeof(keybuf), tkp);
 
-	SDT_PROBE(tesla, automata, fail, no_instance, tcp, keybuf, ttp, 0, 0);
+	SDT_PROBE(tesla, automata, fail, no_instance,
+		tcp, instbuf, keybuf, ttp, 0);
 }
 
 static void


More information about the p4-projects mailing list