On Mon, Sep 19, 2016 at 10:56 AM, Christophe Milard <
christophe.mil...@linaro.org> wrote:

> Rather than using INSTANCE_ID (constant 0xdeadbeef), the ODP main
> instantiation process ID is used as instance ID in the linux-generic
> implementation. This is a simple way to guarantee instance uniqueness
> on linux systems.
>
> Signed-off-by: Christophe Milard <christophe.mil...@linaro.org>
>

Reviewed-and-tested-by: Bill Fischofer <bill.fischo...@linaro.org>


> ---
>  platform/linux-generic/include/odp_internal.h | 1 -
>  platform/linux-generic/odp_init.c             | 7 +++----
>  platform/linux-generic/odp_traffic_mngr.c     | 3 ++-
>  3 files changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/platform/linux-generic/include/odp_internal.h
> b/platform/linux-generic/include/odp_internal.h
> index 8bad450..3429781 100644
> --- a/platform/linux-generic/include/odp_internal.h
> +++ b/platform/linux-generic/include/odp_internal.h
> @@ -25,7 +25,6 @@ extern "C" {
>
>  extern __thread int __odp_errno;
>
> -#define INSTANCE_ID    0xdeadbeef
>  #define MAX_CPU_NUMBER 128
>
>  typedef struct {
> diff --git a/platform/linux-generic/odp_init.c
> b/platform/linux-generic/odp_init.c
> index f534759..77f4f8a 100644
> --- a/platform/linux-generic/odp_init.c
> +++ b/platform/linux-generic/odp_init.c
> @@ -116,8 +116,7 @@ int odp_init_global(odp_instance_t *instance,
>                 goto init_failed;
>         }
>
> -       /* Dummy support for single instance */
> -       *instance = INSTANCE_ID;
> +       *instance = (odp_instance_t)odp_global_data.main_pid;
>
>         return 0;
>
> @@ -128,7 +127,7 @@ init_failed:
>
>  int odp_term_global(odp_instance_t instance)
>  {
> -       if (instance != INSTANCE_ID) {
> +       if (instance != (odp_instance_t)odp_global_data.main_pid) {
>                 ODP_ERR("Bad instance.\n");
>                 return -1;
>         }
> @@ -250,7 +249,7 @@ int odp_init_local(odp_instance_t instance,
> odp_thread_type_t thr_type)
>  {
>         enum init_stage stage = NO_INIT;
>
> -       if (instance != INSTANCE_ID) {
> +       if (instance != (odp_instance_t)odp_global_data.main_pid) {
>                 ODP_ERR("Bad instance.\n");
>                 goto init_fail;
>         }
> diff --git a/platform/linux-generic/odp_traffic_mngr.c
> b/platform/linux-generic/odp_traffic_mngr.c
> index 4fe07ef..85228cd 100644
> --- a/platform/linux-generic/odp_traffic_mngr.c
> +++ b/platform/linux-generic/odp_traffic_mngr.c
> @@ -2317,7 +2317,8 @@ static void *tm_system_thread(void *arg)
>         uint32_t destroying, work_queue_cnt, timer_cnt;
>         int rc;
>
> -       rc = odp_init_local(INSTANCE_ID, ODP_THREAD_WORKER);
> +       rc = odp_init_local((odp_instance_t)odp_global_data.main_pid,
> +                           ODP_THREAD_WORKER);
>         ODP_ASSERT(rc == 0);
>         tm_group = arg;
>
> --
> 2.7.4
>
>

Reply via email to