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