The only real issue here for this internal always on print capability out
of the library is the name.
I can work with  ODP_PR or ODP_PRINT either is better then ODP_PRI by the
sounds of it.
I think I will go with ODP_PRINT and push v2 after waiting a little while
longer for any other review comments

On 19 November 2014 10:35, Mike Holmes <[email protected]> wrote:

>
>
> On 18 November 2014 17:57, Maxim Uvarov <[email protected]> wrote:
>
>> I think we are going to have huge number of functions which do message
>> print.
>>
>
> I hope not, just cases where the implementation needs to return data for
> application logs to use
>
>>
>> Can we use single function for that? Might be
>>
>> odp_pr(enum level, fmt, ##__VA_ARGS__);
>> This is not needed to be macro, it's ok to be function.
>>
>> Also one comment bellow about that patch.
>> Maxim.
>
>
> Lets not make up yet another log, it is ALL going via what ODP_LOG
> becomes, I like the name ODP_PR out of all the suggestions so far however
>
>
>>
>>
>>
>> On 11/18/2014 09:30 PM, Mike Holmes wrote:
>>
>>> Current ODP APIs that print internal data on demand for the application
>>> do so
>>> via  printf.
>>>
>>> Introduce ODP_PRI so that APIs that produce output may be channeled
>>> though
>>> ODP_LOG to match the other logging types.
>>>
>>> Signed-off-by: Mike Holmes <[email protected]>
>>> ---
>>>
>>> This patch does not impact the behaviour of any current example or test.
>>>
>>> A follow on should implement the application replaceable ODP_LOG function
>>> via weak linking.
>>>
>>>   platform/linux-generic/include/api/odp_debug.h | 14 +++++++-
>>>   platform/linux-generic/odp_buffer.c            |  4 +--
>>>   platform/linux-generic/odp_buffer_pool.c       | 44
>>> +++++++++++++-------------
>>>   platform/linux-generic/odp_packet.c            |  2 +-
>>>   platform/linux-generic/odp_shared_memory.c     | 30 +++++++++---------
>>>   5 files changed, 53 insertions(+), 41 deletions(-)
>>>
>>> diff --git a/platform/linux-generic/include/api/odp_debug.h
>>> b/platform/linux-generic/include/api/odp_debug.h
>>> index c9b2edd..1a6fbda 100644
>>> --- a/platform/linux-generic/include/api/odp_debug.h
>>> +++ b/platform/linux-generic/include/api/odp_debug.h
>>> @@ -76,7 +76,8 @@ typedef enum odp_log_level {
>>>         ODP_LOG_DBG,
>>>         ODP_LOG_ERR,
>>>         ODP_LOG_UNIMPLEMENTED,
>>> -       ODP_LOG_ABORT
>>> +       ODP_LOG_ABORT,
>>> +       ODP_LOG_PRI,
>>>   } odp_log_level_e;
>>>     /**
>>> @@ -94,6 +95,10 @@ do { \
>>>                         fprintf(stderr, "%s:%d:%s():" fmt, __FILE__, \
>>>                         __LINE__, __func__, ##__VA_ARGS__); \
>>>                 break; \
>>> +       case ODP_LOG_PRI: \
>>> +               fprintf(stderr, "%s:%d:%s():" fmt, __FILE__, \
>>> +               __LINE__, __func__, ##__VA_ARGS__); \
>>> +               break; \
>>>
>>
>> So you also changing print from stdout to stderr. Reason?
>
>
> No - thank you that is a mistake and I will fix it.
>
>>
>>
>>          case ODP_LOG_ABORT: \
>>>                 fprintf(stderr, "%s:%d:%s(): " fmt, __FILE__, \
>>>                 __LINE__, __func__, ##__VA_ARGS__); \
>>> @@ -111,6 +116,13 @@ do { \
>>>   } while (0)
>>>     /**
>>> + * Printing macro, which prints output when the application
>>> + * calls one of the ODP APIs specifically for dumping internal data.
>>> + */
>>> +#define ODP_PRI(fmt, ...) \
>>> +               ODP_LOG(ODP_LOG_PRI, fmt, ##__VA_ARGS__)
>>> +
>>> +/**
>>>    * Debug printing macro, which prints output when DEBUG flag is set.
>>>    */
>>>   #define ODP_DBG(fmt, ...) \
>>> diff --git a/platform/linux-generic/odp_buffer.c
>>> b/platform/linux-generic/odp_buffer.c
>>> index e54e0e7..2ee0461 100644
>>> --- a/platform/linux-generic/odp_buffer.c
>>> +++ b/platform/linux-generic/odp_buffer.c
>>> @@ -52,7 +52,7 @@ int odp_buffer_snprint(char *str, size_t n,
>>> odp_buffer_t buf)
>>>         int len = 0;
>>>         if (!odp_buffer_is_valid(buf)) {
>>> -               printf("Buffer is not valid.\n");
>>> +               ODP_PRI("Buffer is not valid.\n");
>>>                 return len;
>>>         }
>>>   @@ -98,7 +98,7 @@ void odp_buffer_print(odp_buffer_t buf)
>>>         len = odp_buffer_snprint(str, max_len-1, buf);
>>>         str[len] = 0;
>>>   -     printf("\n%s\n", str);
>>> +       ODP_PRI("\n%s\n", str);
>>>   }
>>>     void odp_buffer_copy_scatter(odp_buffer_t buf_dst, odp_buffer_t
>>> buf_src)
>>> diff --git a/platform/linux-generic/odp_buffer_pool.c
>>> b/platform/linux-generic/odp_buffer_pool.c
>>> index a48d7d6..3555166 100644
>>> --- a/platform/linux-generic/odp_buffer_pool.c
>>> +++ b/platform/linux-generic/odp_buffer_pool.c
>>> @@ -523,20 +523,20 @@ void odp_buffer_pool_print(odp_buffer_pool_t
>>> pool_hdl)
>>>         pool_id = pool_handle_to_index(pool_hdl);
>>>         pool    = get_pool_entry(pool_id);
>>>   -     printf("Pool info\n");
>>> -       printf("---------\n");
>>> -       printf("  pool          %i\n",           pool->s.pool_hdl);
>>> -       printf("  name          %s\n",           pool->s.name);
>>> -       printf("  pool base     %p\n",           pool->s.pool_base_addr);
>>> -       printf("  buf base      0x%"PRIxPTR"\n", pool->s.buf_base);
>>> -       printf("  pool size     0x%"PRIx64"\n",  pool->s.pool_size);
>>> -       printf("  buf size      %zu\n",          pool->s.user_size);
>>> -       printf("  buf align     %zu\n",          pool->s.user_align);
>>> -       printf("  hdr size      %zu\n",          pool->s.hdr_size);
>>> -       printf("  alloc size    %zu\n",          pool->s.buf_size);
>>> -       printf("  offset to hdr %zu\n",          pool->s.buf_offset);
>>> -       printf("  num bufs      %"PRIu64"\n",    pool->s.num_bufs);
>>> -       printf("  free bufs     %"PRIu64"\n",    pool->s.free_bufs);
>>> +       ODP_PRI("Pool info\n");
>>> +       ODP_PRI("---------\n");
>>> +       ODP_PRI("  pool          %i\n",           pool->s.pool_hdl);
>>> +       ODP_PRI("  name          %s\n",           pool->s.name);
>>> +       ODP_PRI("  pool base     %p\n",
>>>  pool->s.pool_base_addr);
>>> +       ODP_PRI("  buf base      0x%"PRIxPTR"\n", pool->s.buf_base);
>>> +       ODP_PRI("  pool size     0x%"PRIx64"\n",  pool->s.pool_size);
>>> +       ODP_PRI("  buf size      %zu\n",          pool->s.user_size);
>>> +       ODP_PRI("  buf align     %zu\n",          pool->s.user_align);
>>> +       ODP_PRI("  hdr size      %zu\n",          pool->s.hdr_size);
>>> +       ODP_PRI("  alloc size    %zu\n",          pool->s.buf_size);
>>> +       ODP_PRI("  offset to hdr %zu\n",          pool->s.buf_offset);
>>> +       ODP_PRI("  num bufs      %"PRIu64"\n",    pool->s.num_bufs);
>>> +       ODP_PRI("  free bufs     %"PRIu64"\n",    pool->s.free_bufs);
>>>         /* first chunk */
>>>         chunk_hdr = pool->s.head;
>>> @@ -546,7 +546,7 @@ void odp_buffer_pool_print(odp_buffer_pool_t
>>> pool_hdl)
>>>                 return;
>>>         }
>>>   -     printf("\n  First chunk\n");
>>> +       ODP_PRI("\n  First chunk\n");
>>>         for (i = 0; i < chunk_hdr->chunk.num_bufs - 1; i++) {
>>>                 uint32_t index;
>>> @@ -555,20 +555,20 @@ void odp_buffer_pool_print(odp_buffer_pool_t
>>> pool_hdl)
>>>                 index = chunk_hdr->chunk.buf_index[i];
>>>                 hdr   = index_to_hdr(pool, index);
>>>   -             printf("  [%i] addr %p, id %"PRIu32"\n", i, hdr->addr,
>>> index);
>>> +               ODP_PRI("  [%i] addr %p, id %"PRIu32"\n", i, hdr->addr,
>>> index);
>>>         }
>>>   -     printf("  [%i] addr %p, id %"PRIu32"\n", i,
>>> chunk_hdr->buf_hdr.addr,
>>> -              chunk_hdr->buf_hdr.index);
>>> +       ODP_PRI("  [%i] addr %p, id %"PRIu32"\n", i,
>>> chunk_hdr->buf_hdr.addr,
>>> +               chunk_hdr->buf_hdr.index);
>>>         /* next chunk */
>>>         chunk_hdr = next_chunk(pool, chunk_hdr);
>>>         if (chunk_hdr) {
>>> -               printf("  Next chunk\n");
>>> -               printf("  addr %p, id %"PRIu32"\n",
>>> chunk_hdr->buf_hdr.addr,
>>> -                      chunk_hdr->buf_hdr.index);
>>> +               ODP_PRI("  Next chunk\n");
>>> +               ODP_PRI("  addr %p, id %"PRIu32"\n",
>>> chunk_hdr->buf_hdr.addr,
>>> +                       chunk_hdr->buf_hdr.index);
>>>         }
>>>   -     printf("\n");
>>> +       ODP_PRI("\n");
>>>   }
>>> diff --git a/platform/linux-generic/odp_packet.c
>>> b/platform/linux-generic/odp_packet.c
>>> index 82ea879..7fe9ed0 100644
>>> --- a/platform/linux-generic/odp_packet.c
>>> +++ b/platform/linux-generic/odp_packet.c
>>> @@ -346,7 +346,7 @@ void odp_packet_print(odp_packet_t pkt)
>>>                         "  input        %u\n", hdr->input);
>>>         str[len] = '\0';
>>>   -     printf("\n%s\n", str);
>>> +       ODP_PRI("\n%s\n", str);
>>>   }
>>>     int odp_packet_copy(odp_packet_t pkt_dst, odp_packet_t pkt_src)
>>> diff --git a/platform/linux-generic/odp_shared_memory.c
>>> b/platform/linux-generic/odp_shared_memory.c
>>> index 24a5d60..cd4415d 100644
>>> --- a/platform/linux-generic/odp_shared_memory.c
>>> +++ b/platform/linux-generic/odp_shared_memory.c
>>> @@ -285,14 +285,14 @@ void odp_shm_print_all(void)
>>>   {
>>>         int i;
>>>   -     printf("\nShared memory\n");
>>> -       printf("--------------\n");
>>> -       printf("  page size:      %"PRIu64" kB\n", odp_sys_page_size() /
>>> 1024);
>>> -       printf("  huge page size: %"PRIu64" kB\n",
>>> -              odp_sys_huge_page_size() / 1024);
>>> -       printf("\n");
>>> +       ODP_PRI("\nShared memory\n");
>>> +       ODP_PRI("--------------\n");
>>> +       ODP_PRI("  page size:      %"PRIu64" kB\n", odp_sys_page_size()
>>> / 1024);
>>> +       ODP_PRI("  huge page size: %"PRIu64" kB\n",
>>> +               odp_sys_huge_page_size() / 1024);
>>> +       ODP_PRI("\n");
>>>   -     printf("  id name                       kB align huge addr\n");
>>> +       ODP_PRI("  id name                       kB align huge addr\n");
>>>         for (i = 0; i < ODP_SHM_NUM_BLOCKS; i++) {
>>>                 odp_shm_block_t *block;
>>> @@ -300,15 +300,15 @@ void odp_shm_print_all(void)
>>>                 block = &odp_shm_tbl->block[i];
>>>                 if (block->addr) {
>>> -                       printf("  %2i %-24s %4"PRIu64"  %4"PRIu64" %2c
>>>  %p\n",
>>> -                              i,
>>> -                              block->name,
>>> -                              block->size/1024,
>>> -                              block->align,
>>> -                              (block->huge ? '*' : ' '),
>>> -                              block->addr);
>>> +                       ODP_PRI("  %2i %-24s %4"PRIu64"  %4"PRIu64" %2c
>>>  %p\n",
>>> +                               i,
>>> +                               block->name,
>>> +                               block->size/1024,
>>> +                               block->align,
>>> +                               (block->huge ? '*' : ' '),
>>> +                               block->addr);
>>>                 }
>>>         }
>>>   -     printf("\n");
>>> +       ODP_PRI("\n");
>>>   }
>>>
>>
>>
>> _______________________________________________
>> lng-odp mailing list
>> [email protected]
>> http://lists.linaro.org/mailman/listinfo/lng-odp
>>
>
>
>
> --
> *Mike Holmes*
> Linaro  Sr Technical Manager
> 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