On 26 August 2014 13:10, Savolainen, Petri (NSN - FI/Espoo) <
[email protected]> wrote:

> This patch is ready for merge. Waiting for review tags...
>

Please rebase this on origin/master and send it again... because it doesn't
apply now... =(

I agree it was ready for merge...

Cheers,
Anders


>
> -Petri
>
> > -----Original Message-----
> > From: ext Anders Roxell [mailto:[email protected]]
> > Sent: Thursday, August 21, 2014 12:47 PM
> > To: Savolainen, Petri (NSN - FI/Espoo)
> > Cc: Petri Savolainen; [email protected]
> > Subject: Re: [lng-odp] [PATCH v3] Change invalid buffer pool handle to
> > zero
> >
> > On 2014-08-21 09:39, Savolainen, Petri (NSN - FI/Espoo) wrote:
> > >
> > >
> > > > -----Original Message-----
> > > > From: ext Anders Roxell [mailto:[email protected]]
> > > > Sent: Thursday, August 21, 2014 11:44 AM
> > > > To: Petri Savolainen
> > > > Cc: [email protected]
> > > > Subject: Re: [lng-odp] [PATCH v3] Change invalid buffer pool handle
> > to
> > > > zero
> > > >
> > > > On 2014-08-21 10:52, Petri Savolainen wrote:
> > > > > For consistency and easier debugging, use zero as the value of
> > > > > an invalid pool handle (in linux-generic).
> > > > >
> > > > > v2: rename pool id
> > > > > v3: rename pool handles
> > > >
> > > > v2 and v3 should be added below "---", because that should not be
> > in
> > > > the
> > > > commit message.
> > > >
> > > > >
> > > > > Signed-off-by: Petri Savolainen <[email protected]>
> > > > > ---
> > > > >  include/odp_buffer_pool.h                          |  2 +-
> > > > >  .../linux-generic/include/odp_buffer_internal.h    |  4 +-
> > > > >  .../include/odp_buffer_pool_internal.h             |  6 +-
> > > > >  platform/linux-generic/odp_buffer.c                |  2 +-
> > > > >  platform/linux-generic/odp_buffer_pool.c           | 68
> > > > ++++++++++++++--------
> > > > >  5 files changed, 50 insertions(+), 32 deletions(-)
> > > > >
> > > > > diff --git a/include/odp_buffer_pool.h
> > b/include/odp_buffer_pool.h
> > > > > index 26d9f14..fe88898 100644
> > > > > --- a/include/odp_buffer_pool.h
> > > > > +++ b/include/odp_buffer_pool.h
> > > > > @@ -27,7 +27,7 @@ extern "C" {
> > > > >  #define ODP_BUFFER_POOL_NAME_LEN  32
> > > > >
> > > > >  /** Invalid buffer pool */
> > > > > -#define ODP_BUFFER_POOL_INVALID  (0xffffffff)
> > > > > +#define ODP_BUFFER_POOL_INVALID   0
> > > > >
> > > > >  /** ODP buffer pool */
> > > > >  typedef uint32_t odp_buffer_pool_t;
> > > > > diff --git a/platform/linux-generic/include/odp_buffer_internal.h
> > > > b/platform/linux-generic/include/odp_buffer_internal.h
> > > > > index bffd0dd..2002b51 100644
> > > > > --- a/platform/linux-generic/include/odp_buffer_internal.h
> > > > > +++ b/platform/linux-generic/include/odp_buffer_internal.h
> > > > > @@ -48,7 +48,7 @@ typedef union odp_buffer_bits_t {
> > > > >         odp_buffer_t handle;
> > > > >
> > > > >         struct {
> > > > > -               uint32_t pool:ODP_BUFFER_POOL_BITS;
> > > > > +               uint32_t pool_id:ODP_BUFFER_POOL_BITS;
> > > > >                 uint32_t index:ODP_BUFFER_INDEX_BITS;
> > > > >         };
> > > > >  } odp_buffer_bits_t;
> > > > > @@ -91,7 +91,7 @@ typedef struct odp_buffer_hdr_t {
> > > > >         odp_atomic_int_t         ref_count;  /* reference count */
> > > > >         odp_buffer_scatter_t     scatter;    /* Scatter/gather list
> > */
> > > > >         int                      type;       /* type of next header
> > */
> > > > > -       odp_buffer_pool_t        pool;       /* buffer pool */
> > > > > +       odp_buffer_pool_t        pool_hdl;   /* buffer pool handle
> > */
> > > > >
> > > > >  } odp_buffer_hdr_t;
> > > > >
> > > > > diff --git a/platform/linux-
> > > > generic/include/odp_buffer_pool_internal.h b/platform/linux-
> > > > generic/include/odp_buffer_pool_internal.h
> > > > > index 1c0a9fc..e0210bd 100644
> > > > > --- a/platform/linux-generic/include/odp_buffer_pool_internal.h
> > > > > +++ b/platform/linux-generic/include/odp_buffer_pool_internal.h
> > > > > @@ -51,7 +51,7 @@ struct pool_entry_s {
> > > > >         uint64_t                free_bufs;
> > > > >         char                    name[ODP_BUFFER_POOL_NAME_LEN];
> > > > >
> > > > > -       odp_buffer_pool_t       pool ODP_ALIGNED_CACHE;
> > > > > +       odp_buffer_pool_t       pool_hdl ODP_ALIGNED_CACHE;
> > >
> > >
> > > Anders, I think you meant this one. It's renamed already in this
> > patch.
> >
> > Yes you are correct!
> > Sorry that I missed that! =/
> >
> > >
> > >
> > > > >         uintptr_t               buf_base;
> > > > >         size_t                  buf_size;
> > > > >         size_t                  buf_offset;
> > > > > @@ -68,7 +68,7 @@ struct pool_entry_s {
> > > > >  extern void *pool_entry_ptr[];
> > > > >
> > > > >
> > > > > -static inline void *get_pool_entry(odp_buffer_pool_t pool_id)
> > > > > +static inline void *get_pool_entry(uint32_t pool_id)
> > > > >  {
> > > > >         return pool_entry_ptr[pool_id];
> > > > >  }
> > > > > @@ -83,7 +83,7 @@ static inline odp_buffer_hdr_t
> > > > *odp_buf_to_hdr(odp_buffer_t buf)
> > > > >         odp_buffer_hdr_t *hdr;
> > > > >
> > > > >         handle.u32 = buf;
> > > > > -       pool_id    = handle.pool;
> > > > > +       pool_id    = handle.pool_id;
> > > > >         index      = handle.index;
> > > > >
> > > > >  #ifdef POOL_ERROR_CHECK
> > > > > diff --git a/platform/linux-generic/odp_buffer.c
> > b/platform/linux-
> > > > generic/odp_buffer.c
> > > > > index 0169eec..e54e0e7 100644
> > > > > --- a/platform/linux-generic/odp_buffer.c
> > > > > +++ b/platform/linux-generic/odp_buffer.c
> > > > > @@ -61,7 +61,7 @@ int odp_buffer_snprint(char *str, size_t n,
> > > > odp_buffer_t buf)
> > > > >         len += snprintf(&str[len], n-len,
> > > > >                         "Buffer\n");
> > > > >         len += snprintf(&str[len], n-len,
> > > > > -                       "  pool         %i\n",        hdr->pool);
> > > > > +                       "  pool         %i\n",
> hdr->pool_hdl);
> > > > >         len += snprintf(&str[len], n-len,
> > > > >                         "  index        %"PRIu32"\n", hdr->index);
> > > > >         len += snprintf(&str[len], n-len,
> > > > > diff --git a/platform/linux-generic/odp_buffer_pool.c
> > > > b/platform/linux-generic/odp_buffer_pool.c
> > > > > index a48781a..e538f04 100644
> > > > > --- a/platform/linux-generic/odp_buffer_pool.c
> > > > > +++ b/platform/linux-generic/odp_buffer_pool.c
> > > > > @@ -80,25 +80,40 @@ void
> > *pool_entry_ptr[ODP_CONFIG_BUFFER_POOLS];
> > > > >  static __thread odp_buffer_chunk_hdr_t
> > > > *local_chunk[ODP_CONFIG_BUFFER_POOLS];
> > > > >
> > > > >
> > > > > +static inline odp_buffer_pool_t pool_index_to_handle(uint32_t
> > > > pool_id)
> > > > > +{
> > > > > +       return pool_id + 1;
> > > > > +}
> > > > > +
> > > > > +
> > > > > +static inline uint32_t pool_handle_to_index(odp_buffer_pool_t
> > > > pool_hdl)
> > > > > +{
> > > > > +       return pool_hdl -1;
> > > > > +}
> > > > > +
> > > > > +
> > > > >  static inline void set_handle(odp_buffer_hdr_t *hdr,
> > > > >                               pool_entry_t *pool, uint32_t index)
> > > > >  {
> > > > > -       uint32_t pool_id = (uint32_t) pool->s.pool;
> > > > > +       odp_buffer_pool_t pool_hdl = pool->s.pool_hdl;
> > > > > +       uint32_t          pool_id  =
> > pool_handle_to_index(pool_hdl);
> > > > >
> > > > > -       if (pool_id > ODP_CONFIG_BUFFER_POOLS)
> > > > > -               ODP_ERR("set_handle: Bad pool id\n");
> > > > > +       if (pool_id >= ODP_CONFIG_BUFFER_POOLS) {
> > > > > +               ODP_ERR("set_handle: Bad pool handle %u\n",
> > pool_hdl);
> > > > > +               exit(0);
> > > > > +       }
> > > > >
> > > > >         if (index > ODP_BUFFER_MAX_INDEX)
> > > > >                 ODP_ERR("set_handle: Bad buffer index\n");
> > > > >
> > > > > -       hdr->handle.pool  = pool_id;
> > > > > -       hdr->handle.index = index;
> > > > > +       hdr->handle.pool_id = pool_id;
> > > > > +       hdr->handle.index   = index;
> > > > >  }
> > > > >
> > > > >
> > > > >  int odp_buffer_pool_init_global(void)
> > > > >  {
> > > > > -       odp_buffer_pool_t i;
> > > > > +       uint32_t i;
> > > > >
> > > > >         pool_tbl = odp_shm_reserve("odp_buffer_pools",
> > > > >                                    sizeof(pool_table_t),
> > > > > @@ -113,7 +128,7 @@ int odp_buffer_pool_init_global(void)
> > > > >                 /* init locks */
> > > > >                 pool_entry_t *pool = &pool_tbl->pool[i];
> > > > >                 LOCK_INIT(&pool->s.lock);
> > > > > -               pool->s.pool = i;
> > > > > +               pool->s.pool_hdl = pool_index_to_handle(i);
> > > > >
> > > > >                 pool_entry_ptr[i] = pool;
> > > > >         }
> > > > > @@ -257,11 +272,11 @@ static void fill_hdr(void *ptr,
> > pool_entry_t
> > > > *pool, uint32_t index,
> > > > >
> > > > >         set_handle(hdr, pool, index);
> > > > >
> > > > > -       hdr->addr  = &buf_data[pool->s.buf_offset - pool-
> > >s.hdr_size];
> > > > > -       hdr->index = index;
> > > > > -       hdr->size  = pool->s.user_size;
> > > > > -       hdr->pool  = pool->s.pool;
> > > > > -       hdr->type  = buf_type;
> > > > > +       hdr->addr     = &buf_data[pool->s.buf_offset - pool-
> > >s.hdr_size];
> > > > > +       hdr->index    = index;
> > > > > +       hdr->size     = pool->s.user_size;
> > > > > +       hdr->pool_hdl = pool->s.pool_hdl;
> > > > > +       hdr->type     = buf_type;
> > > >
> > > > urgh... I'm not sure show we should do this, and its not in the
> > scope
> > > > of
> > > > this patch.
> > > > However, I will raise the question here anyway.
> > > > In the struct pool_entry_s we have (file
> > > > platform/linux-generic/include/odp_buffer_pool_internal.h):
> > > > odp_buffer_pool_t pool ODP_ALIGNED_CACHE;
> > > >
> > > > Shouldn't that be renamed to pool_hdl?
> > > >
> > > > I think this needs to be renamed as well, do we need to have some
> > sort
> > > > of naming convention for this?
> > > >
> > > > If we agree that this shouldn't be changed in this patch.
> > >
> > > Done already. See above.
> >
> > Great! =)
> >
> > Cheers,
> > Anders
> >
> > >
> > >
> > > >
> > > > Reviewed-by: Anders Roxell <[email protected]>
> > > >
> > > > And Maxim can cleanup the commit message before he push this, so
> > you
> > > > don't have to resend the patch.
> > >
> > > OK.
> > >
> > > -Petri
> > >
> > >
> > >
> > > > Cheers,
> > > > Anders
> > > >
> > > > >
> > > > >         check_align(pool, hdr);
> > > > >  }
> > > > > @@ -363,9 +378,9 @@ odp_buffer_pool_t
> > odp_buffer_pool_create(const
> > > > char *name,
> > > > >                                          size_t buf_size, size_t
> buf_align,
> > > > >                                          int buf_type)
> > > > >  {
> > > > > -       odp_buffer_pool_t i;
> > > > > +       odp_buffer_pool_t pool_hdl = ODP_BUFFER_POOL_INVALID;
> > > > >         pool_entry_t *pool;
> > > > > -       odp_buffer_pool_t pool_id = ODP_BUFFER_POOL_INVALID;
> > > > > +       uint32_t i;
> > > > >
> > > > >         for (i = 0; i < ODP_CONFIG_BUFFER_POOLS; i++) {
> > > > >                 pool = get_pool_entry(i);
> > > > > @@ -388,20 +403,20 @@ odp_buffer_pool_t
> > odp_buffer_pool_create(const
> > > > char *name,
> > > > >
> > > > >                         UNLOCK(&pool->s.lock);
> > > > >
> > > > > -                       pool_id = i;
> > > > > +                       pool_hdl = pool->s.pool_hdl;
> > > > >                         break;
> > > > >                 }
> > > > >
> > > > >                 UNLOCK(&pool->s.lock);
> > > > >         }
> > > > >
> > > > > -       return pool_id;
> > > > > +       return pool_hdl;
> > > > >  }
> > > > >
> > > > >
> > > > >  odp_buffer_pool_t odp_buffer_pool_lookup(const char *name)
> > > > >  {
> > > > > -       odp_buffer_pool_t i;
> > > > > +       uint32_t i;
> > > > >         pool_entry_t *pool;
> > > > >
> > > > >         for (i = 0; i < ODP_CONFIG_BUFFER_POOLS; i++) {
> > > > > @@ -411,7 +426,7 @@ odp_buffer_pool_t
> > odp_buffer_pool_lookup(const
> > > > char *name)
> > > > >                 if (strcmp(name, pool->s.name) == 0) {
> > > > >                         /* found it */
> > > > >                         UNLOCK(&pool->s.lock);
> > > > > -                       return i;
> > > > > +                       return pool->s.pool_hdl;
> > > > >                 }
> > > > >                 UNLOCK(&pool->s.lock);
> > > > >         }
> > > > > @@ -420,11 +435,12 @@ odp_buffer_pool_t
> > odp_buffer_pool_lookup(const
> > > > char *name)
> > > > >  }
> > > > >
> > > > >
> > > > > -odp_buffer_t odp_buffer_alloc(odp_buffer_pool_t pool_id)
> > > > > +odp_buffer_t odp_buffer_alloc(odp_buffer_pool_t pool_hdl)
> > > > >  {
> > > > >         pool_entry_t *pool;
> > > > >         odp_buffer_chunk_hdr_t *chunk;
> > > > >         odp_buffer_bits_t handle;
> > > > > +       uint32_t pool_id = pool_handle_to_index(pool_hdl);
> > > > >
> > > > >         pool  = get_pool_entry(pool_id);
> > > > >         chunk = local_chunk[pool_id];
> > > > > @@ -462,12 +478,12 @@ odp_buffer_t
> > odp_buffer_alloc(odp_buffer_pool_t
> > > > pool_id)
> > > > >  void odp_buffer_free(odp_buffer_t buf)
> > > > >  {
> > > > >         odp_buffer_hdr_t *hdr;
> > > > > -       odp_buffer_pool_t pool_id;
> > > > > +       uint32_t pool_id;
> > > > >         pool_entry_t *pool;
> > > > >         odp_buffer_chunk_hdr_t *chunk_hdr;
> > > > >
> > > > >         hdr       = odp_buf_to_hdr(buf);
> > > > > -       pool_id   = hdr->pool;
> > > > > +       pool_id   = pool_handle_to_index(hdr->pool_hdl);
> > > > >         pool      = get_pool_entry(pool_id);
> > > > >         chunk_hdr = local_chunk[pool_id];
> > > > >
> > > > > @@ -496,21 +512,23 @@ odp_buffer_pool_t
> > odp_buffer_pool(odp_buffer_t
> > > > buf)
> > > > >         odp_buffer_hdr_t *hdr;
> > > > >
> > > > >         hdr = odp_buf_to_hdr(buf);
> > > > > -       return hdr->pool;
> > > > > +       return hdr->pool_hdl;
> > > > >  }
> > > > >
> > > > >
> > > > > -void odp_buffer_pool_print(odp_buffer_pool_t pool_id)
> > > > > +void odp_buffer_pool_print(odp_buffer_pool_t pool_hdl)
> > > > >  {
> > > > >         pool_entry_t *pool;
> > > > >         odp_buffer_chunk_hdr_t *chunk_hdr;
> > > > >         uint32_t i;
> > > > > +       uint32_t pool_id;
> > > > >
> > > > > -       pool = get_pool_entry(pool_id);
> > > > > +       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);
> > > > > +       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);
> > > > > --
> > > > > 2.1.0
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > lng-odp mailing list
> > > > > [email protected]
> > > > > http://lists.linaro.org/mailman/listinfo/lng-odp
> > > >
> > > > --
> > > > Anders Roxell
> > > > [email protected]
> > > > M: +46 709 71 42 85 | IRC: roxell
> _______________________________________________
> 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

Reply via email to