Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
VPP API: Memory trace
[vpp.git]
/
src
/
svm
/
svm.c
diff --git
a/src/svm/svm.c
b/src/svm/svm.c
index
afba54e
..
d958c83
100644
(file)
--- a/
src/svm/svm.c
+++ b/
src/svm/svm.c
@@
-339,9
+339,13
@@
svm_data_region_create (svm_map_region_args_t * a, svm_region_t * rp)
if (a->flags & SVM_FLAGS_MHEAP)
{
if (a->flags & SVM_FLAGS_MHEAP)
{
+ mheap_t *heap_header;
rp->data_heap =
mheap_alloc_with_flags ((void *) (rp->data_base), map_size,
MHEAP_FLAG_DISABLE_VM);
rp->data_heap =
mheap_alloc_with_flags ((void *) (rp->data_base), map_size,
MHEAP_FLAG_DISABLE_VM);
+ heap_header = mheap_header (rp->data_heap);
+ heap_header->flags |= MHEAP_FLAG_THREAD_SAFE;
+
rp->flags |= SVM_FLAGS_MHEAP;
}
return 0;
rp->flags |= SVM_FLAGS_MHEAP;
}
return 0;
@@
-652,6
+656,10
@@
svm_map_region (svm_map_region_args_t * a)
return (0);
}
return (0);
}
+ /* Reset ownership in case the client started first */
+ if (fchown (svm_fd, a->uid, a->gid) < 0)
+ clib_unix_warning ("segment chown [ok if client starts first]");
+
time_left = 20;
while (1)
{
time_left = 20;
while (1)
{