[Openmp-dev] Enabling OMPT by default
Paul Osmialowski via Openmp-dev
openmp-dev at lists.llvm.org
Thu Dec 21 02:22:01 PST 2017
replies inlined below:
On 20/12/2017 18:34, Jonas Hahnfeld wrote:
> Am 2017-12-20 14:22, schrieb Paul Osmialowski:
>> Yeah, you're right again, with the following change:
>>
>> +#define print_possible_return_addresses(addr) \
>> + printf("%" PRIu64 ": current_address=%p or %p\n",
>> ompt_get_thread_data()->value, \
>> + ((char *)addr) - 4, ((char *)addr) - 8)
>
> Cool, can you put up a patch for this?
>
Done, https://reviews.llvm.org/D41482
>> ...I can see only ompt/tasks/explicit_task.c failing from time to
>> time, but it seems to be unrelated to printed address issue:
>>
>> runtime/test/ompt/tasks/explicit_task.c:94:12: error: expected string
>> not found in input
>> // CHECK: {{^}}[[THREAD_ID]]: ompt_event_barrier_end:
>> parallel_id={{[0-9]+}}, task_id=[[IMPLICIT_TASK_ID]]
>> ^
>> <stdin>:53:1: note: scanning from here
>
> Do you have the chance to get the full output when the checks fail? (I
> usually run the test directly, save the output temporarily and pass it
> to FileCheck to have the output at hand if that fails.)
>
Now when I run it in isolation, it points to different line, but the
issue seems the same:
$ cat explicit_task.c.tmp.out
|$HOME/llvm/build-shared-release/bin/FileCheck
$HOME/openmp/runtime/test/ompt/tasks/explicit_task.c
$HOME/openmp/runtime/test/ompt/tasks/explicit_task.c:76:12: error:
expected string not found in input
// CHECK: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_implicit_task_begin:
parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID:[0-9]+]]
^
<stdin>:50:86: note: scanning from here
281474976710657: ompt_event_implicit_task_end: parallel_id=0,
task_id=281474976710661, team_size=2, thread_num=0
^
<stdin>:50:86: note: with variable "PARALLEL_ID" equal to "281474976710660"
281474976710657: ompt_event_implicit_task_end: parallel_id=0,
task_id=281474976710661, team_size=2, thread_num=0
^
<stdin>:55:5: note: possible intended match here
562949953421313: ompt_event_implicit_task_end: parallel_id=0,
task_id=562949953421314, team_size=0, thread_num=1
^
...And the full output is:
0: NULL_POINTER=(nil)
281474976710657: ompt_event_thread_begin:
thread_type=ompt_thread_initial=1, thread_id=281474976710657
281474976710657: ompt_event_task_create: parent_task_id=0,
parent_task_frame.exit=(nil), parent_task_frame.reenter=(nil),
new_task_id=281474976710658, codeptr_ra=(nil),
task_type=ompt_task_initial=1, has_dependences=no
281474976710657: __builtin_frame_address(0)=0xffffc0a5d2a0
281474976710657: ompt_event_parallel_begin:
parent_task_id=281474976710658, parent_task_frame.exit=(nil),
parent_task_frame.reenter=0xffffc0a5d2a0, parallel_id=281474976710660,
requested_team_size=2, codeptr_ra=0x402fac, invoker=2
281474976710657: ompt_event_implicit_task_begin:
parallel_id=281474976710660, task_id=281474976710661, team_size=2,
thread_num=0
281474976710657: __builtin_frame_address(1)=0xffffc0a5cec0
281474976710657: task level 0: parallel_id=281474976710660,
task_id=281474976710661, exit_frame=0xffffc0a5cec0, reenter_frame=(nil)
281474976710657: task level 1: parallel_id=281474976710659,
task_id=281474976710658, exit_frame=(nil), reenter_frame=0xffffc0a5d2a0
281474976710657: __builtin_frame_address(0)=0xffffc0a5cea0
281474976710657: ompt_event_master_begin: parallel_id=281474976710660,
task_id=281474976710661, codeptr_ra=0x403078
281474976710657: task level 0: parallel_id=281474976710660,
task_id=281474976710661, exit_frame=0xffffc0a5cec0, reenter_frame=(nil)
281474976710657: ompt_event_task_create: parent_task_id=281474976710661,
parent_task_frame.exit=0xffffc0a5cec0,
parent_task_frame.reenter=0xffffc0a5cea0, new_task_id=281474976710662,
codeptr_ra=0x4030e8, task_type=ompt_task_explicit=4, has_dependences=no
281474976710657: fuzzy_address=0x402f or 0x4030 (0x4030f0)
562949953421313: ompt_event_thread_begin:
thread_type=ompt_thread_worker=2, thread_id=562949953421313
562949953421313: ompt_event_implicit_task_begin:
parallel_id=281474976710660, task_id=562949953421314, team_size=2,
thread_num=1
562949953421313: __builtin_frame_address(1)=0xffff8f929610
562949953421313: task level 0: parallel_id=281474976710660,
task_id=562949953421314, exit_frame=0xffff8f929610, reenter_frame=(nil)
562949953421313: task level 1: parallel_id=281474976710659,
task_id=281474976710658, exit_frame=(nil), reenter_frame=0xffffc0a5d2a0
562949953421313: __builtin_frame_address(0)=0xffff8f9295f0
562949953421313: ompt_event_barrier_begin: parallel_id=281474976710660,
task_id=562949953421314, codeptr_ra=0x403174
562949953421313: task level 0: parallel_id=281474976710660,
task_id=562949953421314, exit_frame=0xffff8f929610,
reenter_frame=0xffff8f9295f0
562949953421313: ompt_event_wait_barrier_begin:
parallel_id=281474976710660, task_id=562949953421314, codeptr_ra=0x403174
562949953421313: ompt_event_task_schedule:
first_task_id=562949953421314, second_task_id=281474976710662,
prior_task_status=ompt_task_others=4
562949953421313: __builtin_frame_address(1)=0xffff8f929260
562949953421313: task level 0: parallel_id=281474976710660,
task_id=281474976710662, exit_frame=0xffff8f929260, reenter_frame=(nil)
562949953421313: task level 1: parallel_id=281474976710660,
task_id=562949953421314, exit_frame=0xffff8f929610,
reenter_frame=0xffff8f9295f0
562949953421313: task level 2: parallel_id=281474976710659,
task_id=281474976710658, exit_frame=(nil), reenter_frame=0xffffc0a5d2a0
562949953421313: ompt_event_task_schedule:
first_task_id=281474976710662, second_task_id=562949953421314,
prior_task_status=ompt_task_complete=1
562949953421313: ompt_event_task_end: task_id=281474976710662
281474976710657: task level 0: parallel_id=281474976710660,
task_id=281474976710661, exit_frame=0xffffc0a5cec0, reenter_frame=(nil)
281474976710657: ompt_event_master_end: parallel_id=281474976710660,
task_id=281474976710661, codeptr_ra=0x403160
281474976710657: ompt_event_barrier_begin: parallel_id=281474976710660,
task_id=281474976710661, codeptr_ra=0x403174
281474976710657: task level 0: parallel_id=281474976710660,
task_id=281474976710661, exit_frame=0xffffc0a5cec0,
reenter_frame=0xffffc0a5cea0
281474976710657: ompt_event_wait_barrier_begin:
parallel_id=281474976710660, task_id=281474976710661, codeptr_ra=0x403174
562949953421313: ompt_event_wait_barrier_end:
parallel_id=281474976710660, task_id=562949953421314, codeptr_ra=0x403174
281474976710657: ompt_event_wait_barrier_end:
parallel_id=281474976710660, task_id=281474976710661, codeptr_ra=0x403174
562949953421313: ompt_event_barrier_end: parallel_id=281474976710660,
task_id=562949953421314, codeptr_ra=0x403174
562949953421313: task level 0: parallel_id=281474976710660,
task_id=562949953421314, exit_frame=0xffff8f929610, reenter_frame=(nil)
281474976710657: ompt_event_barrier_end: parallel_id=281474976710660,
task_id=281474976710661, codeptr_ra=0x403174
281474976710657: task level 0: parallel_id=281474976710660,
task_id=281474976710661, exit_frame=0xffffc0a5cec0, reenter_frame=(nil)
562949953421313: ompt_event_barrier_begin: parallel_id=281474976710660,
task_id=562949953421314, codeptr_ra=(nil)
562949953421313: task level 0: parallel_id=281474976710660,
task_id=562949953421314, exit_frame=(nil), reenter_frame=(nil)
562949953421313: ompt_event_wait_barrier_begin:
parallel_id=281474976710660, task_id=562949953421314, codeptr_ra=(nil)
281474976710657: ompt_event_barrier_begin: parallel_id=281474976710660,
task_id=281474976710661, codeptr_ra=0x402fac
281474976710657: task level 0: parallel_id=281474976710660,
task_id=281474976710661, exit_frame=(nil), reenter_frame=(nil)
281474976710657: ompt_event_wait_barrier_begin:
parallel_id=281474976710660, task_id=281474976710661, codeptr_ra=0x402fac
281474976710657: ompt_event_wait_barrier_end:
parallel_id=281474976710660, task_id=281474976710661, codeptr_ra=0x402fac
281474976710657: ompt_event_barrier_end: parallel_id=281474976710660,
task_id=281474976710661, codeptr_ra=0x402fac
281474976710657: ompt_event_implicit_task_end: parallel_id=0,
task_id=281474976710661, team_size=2, thread_num=0
281474976710657: ompt_event_parallel_end: parallel_id=281474976710660,
task_id=281474976710658, invoker=2, codeptr_ra=0x402fac
281474976710657: ompt_event_thread_end: thread_id=281474976710657
562949953421313: ompt_event_wait_barrier_end: parallel_id=0,
task_id=562949953421314, codeptr_ra=(nil)
562949953421313: ompt_event_barrier_end: parallel_id=0,
task_id=562949953421314, codeptr_ra=(nil)
562949953421313: ompt_event_implicit_task_end: parallel_id=0,
task_id=562949953421314, team_size=0, thread_num=1
562949953421313: ompt_event_idle_begin:
562949953421313: ompt_event_idle_end:
562949953421313: ompt_event_thread_end: thread_id=562949953421313
0: ompt_event_runtime_shutdown
>>
>> On 19/12/2017 21:22, Joachim Protze wrote:
>>> Ok, this seems to be similar as for x86. You can add multiple offset
>>> prints. The test will match any of these printed addresses.
>>>
>>> - Joachim
>>>
>>> On 12/19/2017 09:36 PM, Paul Osmialowski wrote:
>>>> Yeah, you're right initializing this variable to zero fixes failing
>>>> test case. However, this uncovers flaw in my snippet. Some test
>>>> cases have failed as additional str instruction was added after nop:
>>>>
>>>> libomp :: ompt/misc/control_tool.c
>>>> libomp :: ompt/synchronization/taskwait.c
>>>> libomp :: ompt/synchronization/test_lock.c
>>>> libomp :: ompt/synchronization/test_nest_lock_parallel.c
>>>>
>>>> Will look at this later as I'm waiting for my flitht now.
More information about the Openmp-dev
mailing list