On 11/10/2015 17:49, Bill Fischofer wrote:
Thanks, Maxim. I sent a v4 that should correct those issues. If it doesn't, I'd take parts 1-7 that fix the actual bugs and I'll tweak the enhanced test case further separately.


Bill, I already merged 1-7.

In test you need to use PRIu64 instead of %lu.

configure: WARNING: using cross tools not prefixed with host triplet
scheduler.c: In function 'chaos_thread':
scheduler.c:428:19: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
           chaos_q[(uint64_t)odp_queue_context(from)].name,
                   ^
scheduler.c:430:11: error: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'uint64_t' [-Werror=format=]
           chaos_q[cbuf->seqno % CHAOS_NUM_QUEUES].name);
           ^
scheduler.c:430:11: error: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'uint64_t' [-Werror=format=] scheduler.c:457:19: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
           chaos_q[(uint64_t)odp_queue_context(from)].name);
                   ^
scheduler.c:457:11: error: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'uint64_t' [-Werror=format=]
           chaos_q[(uint64_t)odp_queue_context(from)].name);
           ^
scheduler.c:457:11: error: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'uint64_t' [-Werror=format=]
scheduler.c: In function 'scheduler_test_chaos':
scheduler.c:521:9: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
         (void *)(uint64_t)i);
         ^
scheduler.c:557:19: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
           chaos_q[(uint64_t)odp_queue_context(from)].name);
                   ^
scheduler.c:557:11: error: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'uint64_t' [-Werror=format=]
           chaos_q[(uint64_t)odp_queue_context(from)].name);
           ^
scheduler.c:557:11: error: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'uint64_t' [-Werror=format=]






On Tue, Nov 10, 2015 at 1:01 AM, Maxim Uvarov <maxim.uva...@linaro.org <mailto:maxim.uva...@linaro.org>> wrote:

    On 11/10/2015 07:20, Bill Fischofer wrote:

        Changes for v3
        -- Resolves deadlock issue identified by Carl Wallen
        -- Adds a "chaos" test to the scheduler CUnit suite to verify
        the above

        Changes for v2
        -- Remove unused routine get_sched_sync() as part of part 1 of
        of this series

        This series cleans up the implementation of ordered queues and
        fixes
        Bug https://bugs.linaro.org/show_bug.cgi?id=1879


        Bill Fischofer (8):
           linux-generic: schedule: move ordered lock routines to
        odp_schedule.c
           linux-generic: queue: add utility functions for restructure
           linux-generic: queue: add ordered_queue_enq() routine - part 1
           linux-generic: queue: add ordered_queue_enq() routine - part 2
           linux-generic: queue: streamline reorder_deq() routine
           linux-generic: queue: streamline and correct
        release_order() routine
           linux-generic: schedule: allow order to be ignored for
        internal use
           validation: schedule: add chaos test

          .../linux-generic/include/odp_queue_internal.h     | 67 ++++-
          .../linux-generic/include/odp_schedule_internal.h  |  8 +-
          platform/linux-generic/odp_queue.c                 | 322
        +++++++++++----------
          platform/linux-generic/odp_schedule.c              | 62 +++-
          test/validation/scheduler/scheduler.c              | 192
        ++++++++++++
          test/validation/scheduler/scheduler.h              |  1 +
          6 files changed, 472 insertions(+), 180 deletions(-)


    void *odp_queue_context(odp_queue_t handle)
    {
        queue_entry_t *queue;
        queue = queue_to_qentry(handle);
        return queue->s.param.context;
    }

    chaos_q[(uint64_t)odp_queue_context(from)].name

    then:

    +       int i, rc;


    +               rc = odp_queue_context_set(globals->chaos_q[i].handle,
    +                                          (void *)(uint64_t)i);

    Which might fail on 32 bits.
    I'm ok to merge first 7 patches (i.e. patches without test case).

    errors:

    scheduler.c:428:19: error: cast from pointer to integer of
    different size [-Werror=pointer-to-int-cast]
               chaos_q[(uint64_t)odp_queue_context(from)].name,
                       ^
    scheduler.c:430:11: error: format '%lu' expects argument of type
    'long unsigned int', but argument 3 has type 'uint64_t'
    [-Werror=format=]
               chaos_q[cbuf->seqno % CHAOS_NUM_QUEUES].name);
               ^
    scheduler.c:430:11: error: format '%lu' expects argument of type
    'long unsigned int', but argument 4 has type 'uint64_t'
    [-Werror=format=]
    scheduler.c:457:19: error: cast from pointer to integer of
    different size [-Werror=pointer-to-int-cast]
               chaos_q[(uint64_t)odp_queue_context(from)].name);
                       ^
    scheduler.c:457:11: error: format '%lu' expects argument of type
    'long unsigned int', but argument 3 has type 'uint64_t'
    [-Werror=format=]
               chaos_q[(uint64_t)odp_queue_context(from)].name);
               ^
    scheduler.c:457:11: error: format '%lu' expects argument of type
    'long unsigned int', but argument 4 has type 'uint64_t'
    [-Werror=format=]
    scheduler.c: In function 'scheduler_test_chaos':
    scheduler.c:521:9: error: cast to pointer from integer of
    different size [-Werror=int-to-pointer-cast]
             (void *)(uint64_t)i);
             ^
    scheduler.c:557:19: error: cast from pointer to integer of
    different size [-Werror=pointer-to-int-cast]
               chaos_q[(uint64_t)odp_queue_context(from)].name);
                       ^
    scheduler.c:557:11: error: format '%lu' expects argument of type
    'long unsigned int', but argument 2 has type 'uint64_t'
    [-Werror=format=]
               chaos_q[(uint64_t)odp_queue_context(from)].name);
               ^
    scheduler.c:557:11: error: format '%lu' expects argument of type
    'long unsigned int', but argument 3 has type 'uint64_t'
    [-Werror=format=]


    _______________________________________________
    lng-odp mailing list
    lng-odp@lists.linaro.org <mailto:lng-odp@lists.linaro.org>
    https://lists.linaro.org/mailman/listinfo/lng-odp



_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to