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
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to