Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Overall tcp performance improvements (VPP-846)
[vpp.git]
/
src
/
vnet
/
session
/
segment_manager.c
diff --git
a/src/vnet/session/segment_manager.c
b/src/vnet/session/segment_manager.c
index
caf8eaa
..
bf57196
100644
(file)
--- a/
src/vnet/session/segment_manager.c
+++ b/
src/vnet/session/segment_manager.c
@@
-306,11
+306,13
@@
again:
if (added_a_segment)
{
clib_warning ("added a segment, still cant allocate a fifo");
if (added_a_segment)
{
clib_warning ("added a segment, still cant allocate a fifo");
+ clib_spinlock_unlock (&sm->lockp);
return SESSION_ERROR_NEW_SEG_NO_SPACE;
}
if (session_manager_add_segment (sm))
{
return SESSION_ERROR_NEW_SEG_NO_SPACE;
}
if (session_manager_add_segment (sm))
{
+ clib_spinlock_unlock (&sm->lockp);
return VNET_API_ERROR_URI_FIFO_CREATE_FAILED;
}
return VNET_API_ERROR_URI_FIFO_CREATE_FAILED;
}
@@
-320,6
+322,7
@@
again:
else
{
clib_warning ("No space to allocate fifos!");
else
{
clib_warning ("No space to allocate fifos!");
+ clib_spinlock_unlock (&sm->lockp);
return SESSION_ERROR_NO_SPACE;
}
}
return SESSION_ERROR_NO_SPACE;
}
}
@@
-361,8
+364,10
@@
segment_manager_dealloc_fifos (u32 svm_segment_index, svm_fifo_t * rx_fifo,
if (sm->segment_indices[0] != svm_segment_index
&& !svm_fifo_segment_has_fifos (fifo_segment))
{
if (sm->segment_indices[0] != svm_segment_index
&& !svm_fifo_segment_has_fifos (fifo_segment))
{
+ clib_spinlock_lock (&sm->lockp);
svm_fifo_segment_delete (fifo_segment);
vec_del1 (sm->segment_indices, svm_segment_index);
svm_fifo_segment_delete (fifo_segment);
vec_del1 (sm->segment_indices, svm_segment_index);
+ clib_spinlock_unlock (&sm->lockp);
}
}
}
}