summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/Switch.c
diff options
context:
space:
mode:
authorSorin Vinturis <svinturis@cloudbasesolutions.com>2015-03-26 19:59:37 +0000
committerBen Pfaff <blp@nicira.com>2015-03-26 14:18:57 -0700
commitba7f9d9019b28ee3331893b1771aa239b0bed005 (patch)
tree7a737a34d42746bdd41cf4c9d76b356670ffd33f /datapath-windows/ovsext/Switch.c
parent5b55d0abac9a20aeaf0820baf6b3954bf88efe58 (diff)
downloadopenvswitch-ba7f9d9019b28ee3331893b1771aa239b0bed005.tar.gz
datapath-windows: Added specific pool tag for switch code
All memory allocations within switch code have 'SSVO' pool tag. Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/56 Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Acked-by: Eitan Eliahu <eliahue@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'datapath-windows/ovsext/Switch.c')
-rw-r--r--datapath-windows/ovsext/Switch.c53
1 files changed, 30 insertions, 23 deletions
diff --git a/datapath-windows/ovsext/Switch.c b/datapath-windows/ovsext/Switch.c
index a228d8e3b..61a453183 100644
--- a/datapath-windows/ovsext/Switch.c
+++ b/datapath-windows/ovsext/Switch.c
@@ -168,8 +168,8 @@ OvsCreateSwitch(NDIS_HANDLE ndisFilterHandle,
OVS_LOG_TRACE("Enter: Create switch object");
- switchContext =
- (POVS_SWITCH_CONTEXT) OvsAllocateMemory(sizeof(OVS_SWITCH_CONTEXT));
+ switchContext = (POVS_SWITCH_CONTEXT) OvsAllocateMemoryWithTag(
+ sizeof(OVS_SWITCH_CONTEXT), OVS_SWITCH_POOL_TAG);
if (switchContext == NULL) {
status = NDIS_STATUS_RESOURCES;
goto create_switch_done;
@@ -187,7 +187,7 @@ OvsCreateSwitch(NDIS_HANDLE ndisFilterHandle,
if (status != NDIS_STATUS_SUCCESS) {
OVS_LOG_ERROR("OvsExtAttach: Extension is running in "
"non-switch environment.");
- OvsFreeMemory(switchContext);
+ OvsFreeMemoryWithTag(switchContext, OVS_SWITCH_POOL_TAG);
goto create_switch_done;
}
@@ -198,14 +198,14 @@ OvsCreateSwitch(NDIS_HANDLE ndisFilterHandle,
status = OvsInitSwitchContext(switchContext);
if (status != NDIS_STATUS_SUCCESS) {
- OvsFreeMemory(switchContext);
+ OvsFreeMemoryWithTag(switchContext, OVS_SWITCH_POOL_TAG);
goto create_switch_done;
}
status = OvsTunnelFilterInitialize(gOvsExtDriverObject);
if (status != NDIS_STATUS_SUCCESS) {
OvsUninitSwitchContext(switchContext);
- OvsFreeMemory(switchContext);
+ OvsFreeMemoryWithTag(switchContext, OVS_SWITCH_POOL_TAG);
goto create_switch_done;
}
*switchContextOut = switchContext;
@@ -264,7 +264,7 @@ OvsDeleteSwitch(POVS_SWITCH_CONTEXT switchContext)
OvsTunnelFilterUninitialize(gOvsExtDriverObject);
OvsClearAllSwitchVports(switchContext);
OvsUninitSwitchContext(switchContext);
- OvsFreeMemory(switchContext);
+ OvsFreeMemoryWithTag(switchContext, OVS_SWITCH_POOL_TAG);
}
OVS_LOG_TRACE("Exit: deleted switch %p dpNo: %d", switchContext, dpNo);
}
@@ -358,14 +358,14 @@ OvsInitSwitchContext(POVS_SWITCH_CONTEXT switchContext)
switchContext->dispatchLock =
NdisAllocateRWLock(switchContext->NdisFilterHandle);
- switchContext->portNoHashArray = (PLIST_ENTRY)
- OvsAllocateMemory(sizeof(LIST_ENTRY) * OVS_MAX_VPORT_ARRAY_SIZE);
- switchContext->ovsPortNameHashArray = (PLIST_ENTRY)
- OvsAllocateMemory(sizeof (LIST_ENTRY) * OVS_MAX_VPORT_ARRAY_SIZE);
- switchContext->portIdHashArray= (PLIST_ENTRY)
- OvsAllocateMemory(sizeof (LIST_ENTRY) * OVS_MAX_VPORT_ARRAY_SIZE);
- switchContext->pidHashArray = (PLIST_ENTRY)
- OvsAllocateMemory(sizeof(LIST_ENTRY) * OVS_MAX_PID_ARRAY_SIZE);
+ switchContext->portNoHashArray = (PLIST_ENTRY)OvsAllocateMemoryWithTag(
+ sizeof(LIST_ENTRY) * OVS_MAX_VPORT_ARRAY_SIZE, OVS_SWITCH_POOL_TAG);
+ switchContext->ovsPortNameHashArray = (PLIST_ENTRY)OvsAllocateMemoryWithTag(
+ sizeof(LIST_ENTRY) * OVS_MAX_VPORT_ARRAY_SIZE, OVS_SWITCH_POOL_TAG);
+ switchContext->portIdHashArray= (PLIST_ENTRY)OvsAllocateMemoryWithTag(
+ sizeof(LIST_ENTRY) * OVS_MAX_VPORT_ARRAY_SIZE, OVS_SWITCH_POOL_TAG);
+ switchContext->pidHashArray = (PLIST_ENTRY)OvsAllocateMemoryWithTag(
+ sizeof(LIST_ENTRY) * OVS_MAX_PID_ARRAY_SIZE, OVS_SWITCH_POOL_TAG);
status = OvsAllocateFlowTable(&switchContext->datapath, switchContext);
if (status == NDIS_STATUS_SUCCESS) {
@@ -381,17 +381,20 @@ OvsInitSwitchContext(POVS_SWITCH_CONTEXT switchContext)
NdisFreeRWLock(switchContext->dispatchLock);
}
if (switchContext->portNoHashArray) {
- OvsFreeMemory(switchContext->portNoHashArray);
+ OvsFreeMemoryWithTag(switchContext->portNoHashArray,
+ OVS_SWITCH_POOL_TAG);
}
if (switchContext->ovsPortNameHashArray) {
- OvsFreeMemory(switchContext->ovsPortNameHashArray);
+ OvsFreeMemoryWithTag(switchContext->ovsPortNameHashArray,
+ OVS_SWITCH_POOL_TAG);
}
if (switchContext->portIdHashArray) {
- OvsFreeMemory(switchContext->portIdHashArray);
+ OvsFreeMemoryWithTag(switchContext->portIdHashArray,
+ OVS_SWITCH_POOL_TAG);
}
-
if (switchContext->pidHashArray) {
- OvsFreeMemory(switchContext->pidHashArray);
+ OvsFreeMemoryWithTag(switchContext->pidHashArray,
+ OVS_SWITCH_POOL_TAG);
}
OvsDeleteFlowTable(&switchContext->datapath);
@@ -437,13 +440,17 @@ OvsUninitSwitchContext(POVS_SWITCH_CONTEXT switchContext)
NdisFreeRWLock(switchContext->dispatchLock);
switchContext->dispatchLock = NULL;
NdisFreeSpinLock(&(switchContext->pidHashLock));
- OvsFreeMemory(switchContext->ovsPortNameHashArray);
+ OvsFreeMemoryWithTag(switchContext->ovsPortNameHashArray,
+ OVS_SWITCH_POOL_TAG);
switchContext->ovsPortNameHashArray = NULL;
- OvsFreeMemory(switchContext->portIdHashArray);
+ OvsFreeMemoryWithTag(switchContext->portIdHashArray,
+ OVS_SWITCH_POOL_TAG);
switchContext->portIdHashArray = NULL;
- OvsFreeMemory(switchContext->portNoHashArray);
+ OvsFreeMemoryWithTag(switchContext->portNoHashArray,
+ OVS_SWITCH_POOL_TAG);
switchContext->portNoHashArray = NULL;
- OvsFreeMemory(switchContext->pidHashArray);
+ OvsFreeMemoryWithTag(switchContext->pidHashArray,
+ OVS_SWITCH_POOL_TAG);
switchContext->pidHashArray = NULL;
OvsDeleteFlowTable(&switchContext->datapath);
OvsCleanupBufferPool(switchContext);