clib_atomic_fetch_add_rel (&fsh->n_active_fifos, inc);
}
+static inline u32
+fsh_n_active_fifos (fifo_segment_header_t * fsh)
+{
+ return clib_atomic_load_relax_n (&fsh->n_active_fifos);
+}
+
static inline uword
fsh_virtual_mem (fifo_segment_header_t * fsh)
{
* with a smaller FIFO.
*/
return size >= FIFO_SEGMENT_MIN_FIFO_SIZE
- && size <= (1 << fsh->max_log2_chunk_size);
+ && size <= (1ULL << fsh->max_log2_chunk_size);
}
static svm_fifo_t *
u32
fifo_segment_num_fifos (fifo_segment_t * fs)
{
- return clib_atomic_load_relax_n (&fs->h->n_active_fifos);
+ return fsh_n_active_fifos (fs->h);
}
static u32
u8
fifo_segment_has_fifos (fifo_segment_t * fs)
{
- fifo_segment_header_t *fsh = fs->h;
- fifo_segment_slice_t *fss;
- int slice_index;
-
- for (slice_index = 0; slice_index < fs->n_slices; slice_index++)
- {
- fss = fsh_slice_get (fsh, slice_index);
- if (fss->fifos)
- return 1;
- }
- return 0;
+ return (fsh_n_active_fifos (fs->h) != 0);
}
svm_fifo_t *
u8 *
format_fifo_segment (u8 * s, va_list * args)
{
- u32 count, indent, active_fifos, free_fifos, fifo_hdr = 0;
+ u32 count, indent, active_fifos, free_fifos;
fifo_segment_t *fs = va_arg (*args, fifo_segment_t *);
int verbose __attribute__ ((unused)) = va_arg (*args, int);
uword est_chunk_bytes, est_free_seg_bytes, free_chunks;
uword chunk_bytes = 0, free_seg_bytes, chunk_size;
uword tracked_cached_bytes;
+ uword fifo_hdr = 0, reserved;
fifo_segment_header_t *fsh;
fifo_segment_slice_t *fss;
svm_fifo_chunk_t *c;
usage = (100.0 * in_use) / allocated;
mem_st = fifo_segment_get_mem_status (fs);
virt = fsh_virtual_mem (fsh);
+ reserved = fsh->n_reserved_bytes;
s = format (s, "\n%Useg free bytes: %U (%lu) estimated: %U (%lu) reserved:"
" %U (%lu)\n", format_white_space, indent + 2,
format_memory_size, free_seg_bytes, free_seg_bytes,
format_memory_size, est_free_seg_bytes, est_free_seg_bytes,
- format_memory_size, fsh->n_reserved_bytes,
- fsh->n_reserved_bytes);
+ format_memory_size, reserved, reserved);
s = format (s, "%Uchunk free bytes: %U (%lu) estimated: %U (%lu) tracked:"
" %U (%lu)\n", format_white_space, indent + 2,
format_memory_size, chunk_bytes, chunk_bytes,