On Mon, Dec 1, 2014 at 2:53 PM, Bill Fischofer <[email protected]> wrote: > The real answer would seem to be that there should be a wait option on > odp_queue_deq() that doesn't return until a buffer is available for dequeue. > That's a fairly natural means of using queues as a synchronization > mechanism. Busy waiting on a queue seems wasteful whether or not we call it > a "polled" queue.
This is an interesting point, I too was under the impression we can use queues as a means for synchronization. It doesn't seem to be this way in linux-generic. I am curious whether real HW provides blocking operation through the SDK. Also, how would this fit with the concept of running ODP in linux userspace with possibly core isolation with NO_HZ_FULL where any blocking call can lock your system? Spinlocks can be used but as Bill points out that wastes energy busy-waiting to get the lock. > > What seems to exacerbate this issue with the new buffer pool code is that > odp_bufffer_alloc() and odp_buffer_free() are now lockless (thanks to the > new odp_atomic_internal.h) and so there's less lock-stepping as threads > fight over the pool lock for buffer allocates and frees. I suspect the > latter tended to serialize things a bit more which smoothed these race > conditions out a bit. > > Bill > > On Mon, Dec 1, 2014 at 6:01 AM, Ola Liljedahl <[email protected]> > wrote: >> >> Wasn't there some discussion a while ago that the ODP test program >> expects buffer enqueue operations to be instantaneous (the buffer can >> immediately be popped or scheduled) while HW queue implementations >> likely will have some latency before the buffer becomes visible again. >> >> -- Ola >> >> >> On 30 November 2014 at 17:09, Bill Fischofer <[email protected]> >> wrote: >> > I'm testing my new buffer pool code and one thing I'm seeing is that the >> > odp_example.c program seems to have a race condition that causes it to >> > fail >> > intermittently. Has anyone else seen this issue? >> > >> > The failing call is on line 297: >> > >> > buf = odp_queue_deq(queue); >> > >> > if (!odp_buffer_is_valid(buf)) { >> > EXAMPLE_ERR(" [%i] Queue empty.\n", thr); >> > return -1; >> > } >> > >> > I modified odp_queue_deq() to retry dequeues up to 1 million times >> > before >> > reporting empty to allow for some race conditions and the results are >> > illuminating. There's a large variance in how many retries are needed >> > to >> > find a non-empty queue and this suggests that this is a design issue in >> > the >> > test program. The odp_buffer_pool_print() output shows that the pools >> > themselves seem normal with very few buffers actually in use, again >> > suggesting that this is a race condition in the example. >> > >> > I'll dig into the example code to try to determine how best to address >> > this >> > but just wondering if anyone else has seen this. >> > >> > Thanks. >> > >> > Bill >> > >> > bill@Ubuntu13:~/linaro/v10bufpool/example/odp_example$ ./odp_example >> > >> > ODP example starts >> > >> > Thread mode >> > odp_buffer_pool.c:84:odp_buffer_pool_init_global(): >> > Buffer pool init global >> > odp_buffer_pool.c:85:odp_buffer_pool_init_global(): pool_entry_s size >> > 256 >> > odp_buffer_pool.c:86:odp_buffer_pool_init_global(): pool_entry_t size >> > 256 >> > odp_buffer_pool.c:87:odp_buffer_pool_init_global(): odp_buffer_hdr_t >> > size >> > 120 >> > odp_buffer_pool.c:88:odp_buffer_pool_init_global(): >> > odp_queue.c:100:odp_queue_init_global():Queue init ... >> > odp_queue.c:120:odp_queue_init_global():done >> > odp_queue.c:121:odp_queue_init_global():Queue init global >> > odp_queue.c:123:odp_queue_init_global(): struct queue_entry_s size 192 >> > odp_queue.c:125:odp_queue_init_global(): queue_entry_t size 192 >> > odp_queue.c:126:odp_queue_init_global(): >> > odp_schedule.c:89:odp_schedule_init_global():Schedule init ... >> > odp_schedule.c:141:odp_schedule_init_global():done >> > odp_timer.c:220:odp_timer_init_global():Timer init >> > ...odp_timer.c:226:odp_timer_init_global():done >> > >> > ODP system info >> > --------------- >> > ODP API version: 0.3.0 >> > CPU model: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz >> > CPU freq (hz): 3400000000 >> > Cache line size: 64 >> > Max core count: 2 >> > >> > num worker threads: 2 >> > first core: 1 >> > >> > Time accuracy test (2 sec) >> > clock_gettime 2000000024 ns >> > odp_time_cycles 6800000036 cycles >> > odp_time_cycles_to_ns 2000000010 ns >> > odp get cycle error -0.000001% >> > >> > >> > Shared memory >> > -------------- >> > page size: 4 kB >> > huge page size: 2048 kB >> > >> > id name kB align huge addr >> > 0 odp_thread_globals 1 64 0x7fd35a926000 >> > 1 odp_buffer_pools 4 256 0x7fd35a924000 >> > 2 odp_queues 192 192 0x7fd35a8d7000 >> > 3 odp_scheduler 0 64 0x7fd35a923000 >> > 4 odp_sched_pool 8192 4096 0x7fd358f24000 >> > 5 odp_pktio_entries 28 448 0x7fd35a91b080 >> > 6 crypto_pool 14 64 0x7fd35a917000 >> > 7 test_globals 0 64 0x7fd35a916000 >> > 8 msg_pool 65536 4096 0x7fd354f23000 >> > >> > Thread 1 starts on core 1 >> > Thread 2 starts on core 0 >> > [2] alloc_sng alloc+free 766 cycles, 225 ns >> > [1] alloc_sng alloc+free 775 cycles, 228 ns >> > [2] alloc_multi alloc+free 859 cycles, 245 ns >> > [1] alloc_multi alloc+free 874 cycles, 245 ns >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after 1 >> > retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 1846 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 5220 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 640 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4235 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 484 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4186 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 479 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4172 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 474 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4159 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 472 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4161 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 471 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4155 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 474 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4185 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 477 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4174 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 481 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4195 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 520 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4224 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 572 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4225 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 569 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4201 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 481 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4187 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 470 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4206 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 569 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4217 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 572 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4157 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 474 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4174 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 472 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4183 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 472 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4159 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 473 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4154 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 476 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 4148 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 471 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 2483 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 567 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 430 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 370 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 363 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 359 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 357 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 350 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 355 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 348 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 357 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 348 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 357 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 352 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 358 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 347 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 357 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 349 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 357 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 344 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 347 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 353 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 346 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 430 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 427 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 356 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 349 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 356 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 348 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 351 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 355 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 353 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 356 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 345 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 361 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 346 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 358 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 342 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 362 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 349 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 365 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 345 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 326 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 342 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 331 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 324 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 331 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 321 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 334 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 333 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 331 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 333 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 324 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 326 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 318 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 322 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 320 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 322 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 325 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 324 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 323 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 326 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 331 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 322 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 321 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 318 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 329 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 324 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 332 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 321 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 324 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 329 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 336 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 320 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 318 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 323 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 321 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 321 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 329 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 320 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 332 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 314 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 324 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 806221 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 695 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 614 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 368 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 383 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 365 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 363 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 349 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 360 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 351 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 351 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 351 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 347 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 351 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 362 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 348 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 353 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 346 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 347 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 350 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 346 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 345 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 353 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 345 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 347 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 347 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 351 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 342 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 348 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 346 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 352 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 344 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 351 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 348 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 352 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 351 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 350 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 348 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 354 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 349 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 350 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 349 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 353 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 352 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 346 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 323 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 325 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 331 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 333 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 325 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 326 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 329 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 336 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 323 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 331 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 326 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 321 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 324 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 336 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 331 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 322 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 329 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 337 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 336 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 332 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 331 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 329 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 329 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 324 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 321 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 336 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 332 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 325 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 325 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 323 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 334 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 317 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 323 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 333 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 333 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 324 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 326 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 328 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 322 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 327 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 321 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 326 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 325 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 326 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 321 retries >> > odp_queue.c:448:odp_queue_deq():Got buf 0x7fd354f23500 from queue 61 >> > after >> > 330 retries >> > odp_example.c:297:test_poll_queue(): [2] Queue empty. >> > odp_example.c:298:test_poll_queue(): buf = ffffffff >> > odp_buffer_pool.c:477:odp_buffer_pool_print():Pool info >> > odp_buffer_pool.c:478:odp_buffer_pool_print():--------- >> > odp_buffer_pool.c:479:odp_buffer_pool_print(): pool 1 >> > odp_buffer_pool.c:481:odp_buffer_pool_print(): name >> > odp_sched_pool >> > odp_buffer_pool.c:487:odp_buffer_pool_print(): pool type raw >> > odp_buffer_pool.c:490:odp_buffer_pool_print(): pool storage ODP >> > managed >> > odp_buffer_pool.c:492:odp_buffer_pool_print(): pool status active >> > odp_buffer_pool.c:496:odp_buffer_pool_print(): pool opts >> > unsegmented, >> > non-zeroized, created >> > odp_buffer_pool.c:497:odp_buffer_pool_print(): pool base >> > 0x7fd358f24000 >> > odp_buffer_pool.c:499:odp_buffer_pool_print(): pool size 8388608 >> > (2048 >> > pages) >> > odp_buffer_pool.c:500:odp_buffer_pool_print(): udata size 0 >> > odp_buffer_pool.c:501:odp_buffer_pool_print(): buf size 4 >> > odp_buffer_pool.c:502:odp_buffer_pool_print(): num bufs 65536 >> > odp_buffer_pool.c:503:odp_buffer_pool_print(): bufs in use 128 >> > odp_buffer_pool.c:504:odp_buffer_pool_print(): buf allocs 128 >> > odp_buffer_pool.c:505:odp_buffer_pool_print(): buf frees 0 >> > odp_buffer_pool.c:506:odp_buffer_pool_print(): buf empty 0 >> > odp_buffer_pool.c:508:odp_buffer_pool_print(): blk size 0 >> > odp_buffer_pool.c:509:odp_buffer_pool_print(): blks available 0 >> > odp_buffer_pool.c:510:odp_buffer_pool_print(): blk allocs 0 >> > odp_buffer_pool.c:511:odp_buffer_pool_print(): blk frees 0 >> > odp_buffer_pool.c:512:odp_buffer_pool_print(): blk empty 0 >> > odp_buffer_pool.c:513:odp_buffer_pool_print(): high wm count 0 >> > odp_buffer_pool.c:514:odp_buffer_pool_print(): low wm count 0 >> > odp_buffer_pool.c:477:odp_buffer_pool_print():Pool info >> > odp_buffer_pool.c:478:odp_buffer_pool_print():--------- >> > odp_buffer_pool.c:479:odp_buffer_pool_print(): pool 2 >> > odp_buffer_pool.c:481:odp_buffer_pool_print(): name msg_pool >> > odp_buffer_pool.c:487:odp_buffer_pool_print(): pool type raw >> > odp_buffer_pool.c:490:odp_buffer_pool_print(): pool storage ODP >> > managed >> > odp_buffer_pool.c:492:odp_buffer_pool_print(): pool status active >> > odp_buffer_pool.c:496:odp_buffer_pool_print(): pool opts >> > unsegmented, >> > non-zeroized, created >> > odp_buffer_pool.c:497:odp_buffer_pool_print(): pool base >> > 0x7fd354f23000 >> > odp_buffer_pool.c:499:odp_buffer_pool_print(): pool size 67108864 >> > (16384 pages) >> > odp_buffer_pool.c:500:odp_buffer_pool_print(): udata size 0 >> > odp_buffer_pool.c:501:odp_buffer_pool_print(): buf size 8 >> > odp_buffer_pool.c:502:odp_buffer_pool_print(): num bufs 524288 >> > odp_buffer_pool.c:503:odp_buffer_pool_print(): bufs in use 2 >> > odp_buffer_pool.c:504:odp_buffer_pool_print(): buf allocs 75497474 >> > odp_buffer_pool.c:505:odp_buffer_pool_print(): buf frees 75497472 >> > odp_buffer_pool.c:506:odp_buffer_pool_print(): buf empty 0 >> > odp_buffer_pool.c:508:odp_buffer_pool_print(): blk size 0 >> > odp_buffer_pool.c:509:odp_buffer_pool_print(): blks available 0 >> > odp_buffer_pool.c:510:odp_buffer_pool_print(): blk allocs 0 >> > odp_buffer_pool.c:511:odp_buffer_pool_print(): blk frees 0 >> > odp_buffer_pool.c:512:odp_buffer_pool_print(): blk empty 0 >> > odp_buffer_pool.c:513:odp_buffer_pool_print(): high wm count 0 >> > odp_buffer_pool.c:514:odp_buffer_pool_print(): low wm count 0 >> > [1] poll_queue enq+deq 328 cycles, 96 ns >> > >> > >> > _______________________________________________ >> > lng-odp mailing list >> > [email protected] >> > http://lists.linaro.org/mailman/listinfo/lng-odp >> > > > > > _______________________________________________ > lng-odp mailing list > [email protected] > http://lists.linaro.org/mailman/listinfo/lng-odp > _______________________________________________ lng-odp mailing list [email protected] http://lists.linaro.org/mailman/listinfo/lng-odp
