X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fmheap.c;h=fceca95ff7dab4f42ab51bbe1fcd1b1fb6e4b90b;hb=73710c7da2f8deaea83dbbbfce8737c9c6cd2949;hp=d4010ceb2978c91e2f765613ebcd02b92ce2ce65;hpb=f55f9b851f59264d737d92c6277a87588c565d24;p=vpp.git diff --git a/src/vppinfra/mheap.c b/src/vppinfra/mheap.c index d4010ceb297..fceca95ff7d 100644 --- a/src/vppinfra/mheap.c +++ b/src/vppinfra/mheap.c @@ -311,7 +311,7 @@ mheap_small_object_cache_mask (mheap_small_object_cache_t * c, uword bin) ASSERT (bin < 256); -#define _(i) ((uword) u8x16_compare_byte_mask (u8x16_is_equal (b, c->bins.as_u8x16[i])) << (uword) ((i)*16)) +#define _(i) ((uword) u8x16_compare_byte_mask ((b == c->bins.as_u8x16[i])) << (uword) ((i)*16)) mask = _(0) | _(1); if (BITS (uword) > 32) mask |= _(2) | _(3); @@ -549,23 +549,17 @@ mheap_get_search_free_list (void *v, non_empty_bin_mask &= ~pow2_mask (bin % BITS (uword)); /* Search each occupied free bin which is large enough. */ - foreach_set_bit (bi, non_empty_bin_mask, ( - { - uword r = - mheap_get_search_free_bin (v, - bi - + - i - * - BITS - (uword), - n_user_bytes_arg, - align, - align_offset); - if (r != - MHEAP_GROUNDED) return - r;} - )); + /* *INDENT-OFF* */ + foreach_set_bit (bi, non_empty_bin_mask, + ({ + uword r = + mheap_get_search_free_bin (v, bi + i * BITS (uword), + n_user_bytes_arg, + align, + align_offset); + if (r != MHEAP_GROUNDED) return r; + })); + /* *INDENT-ON* */ } return MHEAP_GROUNDED; @@ -1126,7 +1120,7 @@ format_mheap_stats (u8 * s, va_list * va) { mheap_t *h = va_arg (*va, mheap_t *); mheap_stats_t *st = &h->stats; - uword indent = format_get_indent (s); + u32 indent = format_get_indent (s); s = format (s, @@ -1171,7 +1165,8 @@ format_mheap (u8 * s, va_list * va) int verbose = va_arg (*va, int); mheap_t *h; - uword i, size, indent; + uword i, size; + u32 indent; clib_mem_usage_t usage; mheap_elt_t *first_corrupt; @@ -1242,7 +1237,7 @@ format_mheap (u8 * s, va_list * va) { /* Make a copy of traces since we'll be sorting them. */ mheap_trace_t *t, *traces_copy; - uword indent, total_objects_traced; + u32 indent, total_objects_traced; traces_copy = vec_dup (h->trace_main.traces); qsort (traces_copy, vec_len (traces_copy), sizeof (traces_copy[0]), @@ -1517,7 +1512,7 @@ mheap_get_trace (void *v, uword offset, uword size) if (!tm->trace_by_callers) tm->trace_by_callers = - hash_create_mem (0, sizeof (trace.callers), sizeof (uword)); + hash_create_shmem (0, sizeof (trace.callers), sizeof (uword)); p = hash_get_mem (tm->trace_by_callers, &trace.callers); if (p)