X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fsvm%2Fsvm.c;h=c702625db7e3ea1aa0bd3b8eb89e869d779cf740;hb=2c8e0023f91882e53f06eb99c901b97fe013f981;hp=681ac4a8926806eed64fde56faf5e8c79a314a1a;hpb=9466c45ceed735b0fc2820f0444ba0dfea03a8f1;p=vpp.git diff --git a/src/svm/svm.c b/src/svm/svm.c index 681ac4a8926..c702625db7e 100644 --- a/src/svm/svm.c +++ b/src/svm/svm.c @@ -61,6 +61,10 @@ svm_get_root_rp (void) u64 svm_get_global_region_base_va () { +#ifdef CLIB_SANITIZE_ADDR + return 0x200000000000; +#endif + #if __aarch64__ /* On AArch64 VA space can have different size, from 36 to 48 bits. Here we are trying to detect VA bits by parsing /proc/self/maps @@ -236,16 +240,6 @@ format_svm_region (u8 * s, va_list * args) } } } -#if USE_DLMALLOC == 0 - s = format (s, " rgn heap stats: %U", format_mheap, - rp->region_heap, 0); - if ((rp->flags & SVM_FLAGS_MHEAP) && rp->data_heap) - { - s = format (s, "\n data heap stats: %U", format_mheap, - rp->data_heap, 1); - } - s = format (s, "\n"); -#endif } return (s); @@ -341,18 +335,9 @@ svm_data_region_create (svm_map_region_args_t * a, svm_region_t * rp) if (a->flags & SVM_FLAGS_MHEAP) { -#if USE_DLMALLOC == 0 - mheap_t *heap_header; - 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; -#else rp->data_heap = create_mspace_with_base (rp->data_base, map_size, 1 /* locked */ ); mspace_disable_expand (rp->data_heap); -#endif rp->flags |= SVM_FLAGS_MHEAP; } @@ -436,10 +421,7 @@ svm_data_region_map (svm_map_region_args_t * a, svm_region_t * rp) u8 * shm_name_from_svm_map_region_args (svm_map_region_args_t * a) { - u8 *path; u8 *shm_name; - u8 *split_point; - u8 *mkdir_arg = 0; int root_path_offset = 0; int name_offset = 0; @@ -449,29 +431,6 @@ shm_name_from_svm_map_region_args (svm_map_region_args_t * a) if (a->root_path[0] == '/') root_path_offset++; - /* create the root_path under /dev/shm - iterate through path creating directories */ - - path = format (0, "/dev/shm/%s%c", &a->root_path[root_path_offset], 0); - split_point = path + 1; - vec_add1 (mkdir_arg, '-'); - - while (*split_point) - { - while (*split_point && *split_point != '/') - { - vec_add1 (mkdir_arg, *split_point); - split_point++; - } - vec_add1 (mkdir_arg, 0); - - /* ready to descend another level */ - mkdir_arg[vec_len (mkdir_arg) - 1] = '-'; - split_point++; - } - vec_free (mkdir_arg); - vec_free (path); - if (a->name[0] == '/') name_offset = 1; @@ -495,7 +454,7 @@ svm_region_init_mapped_region (svm_map_region_args_t * a, svm_region_t * rp) ASSERT (rp); int rv; - memset (rp, 0, sizeof (*rp)); + clib_memset (rp, 0, sizeof (*rp)); if (pthread_mutexattr_init (&attr)) clib_unix_warning ("mutexattr_init"); @@ -526,21 +485,12 @@ svm_region_init_mapped_region (svm_map_region_args_t * a, svm_region_t * rp) rp->virtual_base = a->baseva; rp->virtual_size = a->size; -#if USE_DLMALLOC == 0 - rp->region_heap = - mheap_alloc_with_flags (uword_to_pointer - (a->baseva + MMAP_PAGESIZE, void *), - (a->pvt_heap_size != - 0) ? a->pvt_heap_size : SVM_PVT_MHEAP_SIZE, - MHEAP_FLAG_DISABLE_VM); -#else rp->region_heap = create_mspace_with_base (uword_to_pointer (a->baseva + MMAP_PAGESIZE, void *), (a->pvt_heap_size != 0) ? a->pvt_heap_size : SVM_PVT_MHEAP_SIZE, 1 /* locked */ ); mspace_disable_expand (rp->region_heap); -#endif oldheap = svm_push_pvt_heap (rp); @@ -866,7 +816,7 @@ svm_region_init (void) { svm_map_region_args_t _a, *a = &_a; - memset (a, 0, sizeof (*a)); + clib_memset (a, 0, sizeof (*a)); a->root_path = 0; a->name = SVM_GLOBAL_REGION_NAME; a->baseva = svm_get_global_region_base_va (); @@ -883,7 +833,7 @@ svm_region_init_chroot (const char *root_path) { svm_map_region_args_t _a, *a = &_a; - memset (a, 0, sizeof (*a)); + clib_memset (a, 0, sizeof (*a)); a->root_path = root_path; a->name = SVM_GLOBAL_REGION_NAME; a->baseva = svm_get_global_region_base_va (); @@ -900,7 +850,7 @@ svm_region_init_chroot_uid_gid (const char *root_path, int uid, int gid) { svm_map_region_args_t _a, *a = &_a; - memset (a, 0, sizeof (*a)); + clib_memset (a, 0, sizeof (*a)); a->root_path = root_path; a->name = SVM_GLOBAL_REGION_NAME; a->baseva = svm_get_global_region_base_va ();