* Performance measurement workaround when measuring multi-thread events:
Use the Flow Entry ID as part of the measurement point tag.
* Add measurement points when writing a Flow Path to the database,
and when sending Flow Entry notifications because of the modified path.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
index b44a3de..1e3c67f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
@@ -1405,12 +1405,13 @@
@Override
public void notificationRecvFlowEntryAdded(FlowEntry flowEntry) {
if (enableOnrc2014MeasurementsFlows) {
- PerformanceMonitor.start("EventHandler.AddFlowEntryToSwitch");
+ String tag = "EventHandler.AddFlowEntryToSwitch." + flowEntry.flowEntryId();
+ PerformanceMonitor.start(tag);
Collection entries = new ArrayList();
entries.add(flowEntry);
flowManager.pushModifiedFlowEntriesToSwitches(entries);
- PerformanceMonitor.stop("EventHandler.AddFlowEntryToSwitch");
- PerformanceMonitor.report("EventHandler.AddFlowEntryToSwitch");
+ PerformanceMonitor.stop(tag);
+ PerformanceMonitor.report(tag);
return;
}
@@ -1427,7 +1428,8 @@
@Override
public void notificationRecvFlowEntryRemoved(FlowEntry flowEntry) {
if (enableOnrc2014MeasurementsFlows) {
- PerformanceMonitor.start("EventHandler.RemoveFlowEntryFromSwitch");
+ String tag = "EventHandler.RemoveFlowEntryFromSwitch." + flowEntry.flowEntryId();
+ PerformanceMonitor.start(tag);
//
// NOTE: Must update the state to DELETE, because
// the notification contains the original state.
@@ -1437,8 +1439,8 @@
Collection entries = new ArrayList();
entries.add(flowEntry);
flowManager.pushModifiedFlowEntriesToSwitches(entries);
- PerformanceMonitor.stop("EventHandler.RemoveFlowEntryFromSwitch");
- PerformanceMonitor.report("EventHandler.RemoveFlowEntryFromSwitch");
+ PerformanceMonitor.stop(tag);
+ PerformanceMonitor.report(tag);
return;
}