[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