Thanks Shmulik

If this turns out to be a real issue please file a bug in Buffers & Packets
@ https://bugs.linaro.org/describecomponents.cgi?product=OpenDataPlane

On 9 January 2015 at 08:38, Shmulik Ladkani <[email protected]>
wrote:

> Hello ODP fellows,
>
> I've suffering 'odp_buffer_alloc' failures, which occur very early in
> applocation's lifetime.
> These havn't occured in v0.4.0.
>
> I was able to synthesize a test code demonstrating the failures, see
> program below.
>
> Working on Ubuntu 32bit, Linux 3.13.
> ODP compiled locally from top of branch at ffea5118bd.
>
> I'd be glad if you could please reproduce, or verify correctness of the
> test program's ODP API usage.
>
> Regards,
> Shmulik
>
> Example program:
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <odp_buffer_pool.h>
> #include <odp_init.h>
>
> #define ASSERT(x) do { \
>     if (!(x)) { \
>         fprintf(stderr, "\nFailure: %s:%d: '" #x "'\n", __func__,
> __LINE__); \
>         exit(-1); \
>     } \
> } while (0)
>
> int main(int argc, char **argv)
> {
>     odp_buffer_pool_param_t params[] = {
>         { .buf_size = 3116, .buf_align = 4, .num_bufs = 84,
>             .buf_type = ODP_BUFFER_TYPE_RAW },
>         { .buf_size = 1076, .buf_align = 4, .num_bufs = 7796,
>             .buf_type = ODP_BUFFER_TYPE_RAW },
>         { .buf_size = 53, .buf_align = 4, .num_bufs = 158275,
>             .buf_type = ODP_BUFFER_TYPE_RAW },
>         { .buf_size = 308, .buf_align = 4, .num_bufs = 6808,
>             .buf_type = ODP_BUFFER_TYPE_RAW },
>         { .buf_size = 1600, .buf_align = 0, .num_bufs = 2621,
>             .buf_type = ODP_BUFFER_TYPE_PACKET },
>     };
>     odp_buffer_pool_t pool_hdl[sizeof(params)/sizeof(*params)];
>     int i;
>
>     ASSERT(!odp_init_global(NULL, NULL));
>     ASSERT(!odp_init_local());
>
>     for (i = 0; i < sizeof(params)/sizeof(*params); i++)
>     {
>         char name[16];
>
>         sprintf(name, "pool%d", i);
>         pool_hdl[i] = odp_buffer_pool_create(name, ODP_SHM_NULL,
> &params[i]);
>         /* assure pool ok */
>         ASSERT(pool_hdl[i] != ODP_BUFFER_POOL_INVALID);
>         /* assure one buff gets allocated */
>         ASSERT(odp_buffer_alloc(pool_hdl[i]) != ODP_BUFFER_INVALID);
>     }
>
>     /* test some allocations */
>     ASSERT(odp_buffer_alloc(pool_hdl[0]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[3]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[1]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[1]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[1]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[1]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[1]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[1]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[1]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[1]) != ODP_BUFFER_INVALID);
>     ASSERT(odp_buffer_alloc(pool_hdl[1]) != ODP_BUFFER_INVALID);
>
>     return 0;
> }
>
>
> _______________________________________________
> lng-odp mailing list
> [email protected]
> http://lists.linaro.org/mailman/listinfo/lng-odp
>



-- 
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to