Dear Juan,

Bitmaps are dense byte vectors. You’re asking clib_bitmap_set to create a 
bitmap that’s 290,984,198,272 bytes (290gb) in size. The main heap is likely 
3gb, and cannot exceed 4gb unless you build an image with CLIB_VEC64 > 1. 
Please don’t go there.

If you need a sparse structure, try using a hash table.

#6  clib_bitmap_set (value=1, i=2327873586176, ai=0x0) at 
/usr/include/vppinfra/bitmap.h:177

Thanks… Dave

From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On 
Behalf Of Juan Salmon
Sent: Monday, February 6, 2017 8:09 AM
To: vpp-dev@lists.fd.io
Subject: [vpp-dev] memory allocation fail in clib_bitmap

Hi,
I want to use VPP clib_bitmap but when the  "i" value is more than 32 bit, it 
fails to allocate memory.
There is my code:
    uword i;
    clib_bitmap_set ( base_ptr->bitmap_block_map, i , 1);

and the back trace report:

The target endianness is set automatically (currently little endian)
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffdc0231700 (LWP 44436)]
[New Thread 0x7ffdbfa30700 (LWP 44437)]
[New Thread 0x7ffdbf22f700 (LWP 44438)]
bt
#0  0x00007ffff5804c37 in __GI_raise (sig=sig@entry=6) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff5808028 in __GI_abort () at abort.c:89
#2  0x000000000059f3fe in os_panic () at 
/root/src/build-data/../vpp/vnet/main.c:330
#3  0x00007ffff66f6ea5 in clib_mem_alloc_aligned_at_offset 
(os_out_of_memory_on_failure=1, align_offset=<optimized out>, align=8, 
size=<optimized out>) at /root/src/build-data/../vppinfra/vppinfra/mem.h:102
#4  vec_resize_allocate_memory (v=v@entry=0x0, length_increment=36373024785, 
data_bytes=<optimized out>, header_bytes=<optimized out>, header_bytes@entry=0, 
data_align=data_align@entry=8) at 
/root/src/build-data/../vppinfra/vppinfra/vec.c:59
#5  0x00007ffdf53b105a in _vec_resize (data_align=8, header_bytes=0, 
data_bytes=<optimized out>, length_increment=<optimized out>, v=<optimized 
out>) at /usr/include/vppinfra/vec.h:142
#6  clib_bitmap_set (value=1, i=2327873586176, ai=0x0) at 
/usr/include/vppinfra/bitmap.h:177

Best Regards,
Juan Salmon.
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to