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, > ¶ms[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
