 | Приложение C. Трассировочные события в ALF
Ниже перечислено определенные трассировочные события в ALF. В большинстве случаев каждая функция имеет две трассировочных ловушки:
- Первая ловушка отслеживает входные значения
- Вторая ловушка отслеживает выходные значения, а также время выполнения функции
Трассировочные ловушки функций ALF
Активируются с помощью: TRACE_ALF_DEBUG.
| Идентификатор отладочной ловушки | Отслеживаемые значения |
|---|
| _ALF_DATASET_ASSOCIATE_ENTRY | task_handle, dataset_handle |
|---|
| _ALF_DATASET_ASSOCIATE_EXIT_INTERVAL | retcode |
|---|
| _ALF_DATASET_BUFFER_ADD_ENTRY | dataset_handle, buffer, size, access_mode |
|---|
| _ALF_DATASET_BUFFER_ADD_EXIT_INTERVAL | retcode |
|---|
| _ALF_DATASET_CREATE_ENTRY | alf_handle, p_dataset_handle |
|---|
| _ALF_DATASET_CREATE_EXIT_INTERVAL | dataset_handle, retcode |
|---|
| _ALF_DATASET_DESTROY_ENTRY | dataset_handle |
|---|
| _ALF_DATASET_DESTROY_EXIT_INTERVAL | retcode |
|---|
| _ALF_EXIT_ENTRY | alf_handle, exit_policy, timeout |
|---|
| _ALF_EXIT_EXIT_INTERVAL | retcode |
|---|
| _ALF_GENERIC_DEBUG | long1, long2, long3, long4, long5, long6, long7, long8, long9, long10 |
|---|
| _ALF_INIT_ENTRY | sys_config_info, alf_handle_ptr |
|---|
| _ALF_INIT_EXIT_INTERVAL | rtn |
|---|
| _ALF_NUM_INSTANCES_SET_ENTRY | alf_handle, number_of_instances |
|---|
| _ALF_NUM_INSTANCES_SET_EXIT_INTERVAL | retcode |
|---|
| _ALF_QUERY_SYSINFO_ENTRY | alf_handle, query_info, accel_type, p_query_result |
|---|
| _ALF_QUERY_SYSINFO_EXIT_INTERVAL | query_result, retcode |
|---|
| _ALF_REGISTER_ERROR_HANDLER_ENTRY | alf_handle, error_handler_function, p_context |
|---|
| _ALF_REGISTER_ERROR_HANDLER_EXIT_INTERVAL | retcode |
|---|
| _ALF_TASK_CREATE_ENTRY | task_desc_handle, p_task_context_data, num_accelerators, tsk_attr, wb_dist_size, p_task_handle |
|---|
| _ALF_TASK_CREATE_EXIT_INTERVAL | task_handle, retcode |
|---|
| _ALF_TASK_DEPENDS_ON_ENTRY | task_handle_dependent, task_handle |
|---|
| _ALF_TASK_DEPENDS_ON_EXIT_INTERVAL | retcode |
|---|
| _ALF_TASK_DESC_CREATE_ENTRY | alf_handle, accel_type, task_desc_handle_ptr |
|---|
| _ALF_TASK_DESC_CREATE_EXIT_INTERVAL | desc_info_handle, retcode |
|---|
| _ALF_TASK_DESC_CTX_ENTRY_ADD_ENTRY | task_desc_handle, data_type, size |
|---|
| _ALF_TASK_DESC_CTX_ENTRY_ADD_EXIT_INTERVAL | retcode |
|---|
| _ALF_TASK_DESC_DESTROY_ENTRY | task_desc_handle |
|---|
| _ALF_TASK_DESC_DESTROY_EXIT_INTERVAL | retcode |
|---|
| _ALF_TASK_DESC_SET_INT32_ENTRY | task_desc_handle, field, value |
|---|
| _ALF_TASK_DESC_SET_INT32_EXIT_INTERVAL | retcode |
|---|
| _ALF_TASK_DESC_SET_INT64_ENTRY | task_desc_handle, field, value |
|---|
| _ALF_TASK_DESC_SET_INT64_EXIT_INTERVAL | retcode |
|---|
| _ALF_TASK_EVENT_HANDLER_REGISTER_ENTRY | task_handle, task_event_handler, p_data, data_size, event_mask |
|---|
| _ALF_TASK_EVENT_HANDLER_REGISTER_EXIT_INTERVAL | retcode |
|---|
| _ALF_TASK_FINALIZE_ENTRY | task_handle |
|---|
| _ALF_TASK_FINALIZE_EXIT_INTERVAL | retcode |
|---|
| _ALF_TASK_QUERY_ENTRY | talk_handle, p_unfinished_wbs, p_total_wbs |
|---|
| _ALF_TASK_QUERY_EXIT_INTERVAL | unfinished_wbs, total_wbs, retcode |
|---|
| _ALF_TASK_WAIT_ENTRY | task_handle, time_out |
|---|
| _ALF_TASK_WAIT_EXIT_INTERVAL | retcode |
|---|
| _ALF_WB_CREATE_ENTRY | task_handle, work_block_type, repeat_count, p_wb_handle |
|---|
| _ALF_WB_CREATE_EXIT_INTERVAL | wb_handle, retcode |
|---|
| _ALF_WB_DTL_SET_BEGIN_ENTRY | wb_handle, buffer_type, offset_to_the_local_buffer |
|---|
| _ALF_WB_DTL_SET_BEGIN_EXIT_INTERVAL | retcode |
|---|
| _ALF_WB_DTL_SET_END_ENTRY | wb_handle |
|---|
| _ALF_WB_DTL_SET_END_EXIT_INTERVAL | retcode |
|---|
| _ALF_WB_DTL_SET_ENTRY_ADD_ENTRY | wb_handle, p_address, size_of_data, data_type |
|---|
| _ALF_WB_DTL_SET_ENTRY_ADD_EXIT_INTERVAL | retcode |
|---|
| _ALF_WB_ENQUEUE_ENTRY | wb_handle |
|---|
| _ALF_WB_ENQUEUE_EXIT_INTERVAL | retcode |
|---|
| _ALF_WB_PARM_ADD_ENTRY | wb_handle, pdata, size_of_data, data_type, address_alignment |
|---|
| _ALF_WB_PARM_ADD_EXIT_INTERVAL | retcode |
|---|
Ловушки для повышения производительности
Данные ловушки активируются группой директив LIBALF_PERF (0x08) в конфигурационном файле. Ловушки COUNTERS и TIMERS содержат данные, накапливаемые в процессе выполнения функций ALF. В имеющихся версиях эти данные и события трассировки передаются при активации различных функций, выполняющих выход из ALF.
| Идентификатор ловушки | Отслеживаемые значения |
|---|
| _ALF_GENERIC_PERFORM_HOST | long1, long2, long3, long4, long5, long6, long7, long8, long9, long10 |
|---|
| _ALF_GENERIC_PERFORM_SPU | long1, long2, long3, long4, long5, long6, long7, long8, long9, long10 |
|---|
| _ALF_HOST_COUNTERS | alf_task_creates, alf_task_waits, alf_wb_enqueues, thread_total_count, thread_reuse_count, x |
|---|
| _ALF_HOST_TIMERS | alf_runtime, alf_accel_utilize, x1, x2 |
|---|
| _ALF_SPU_COUNTERS | alf_input_bytes, alf_output_bytes, alf_workblock_total, double_buffer_used, x1, x2 |
|---|
| _ALF_SPU_TIMERS | alf_lqueue_empty, alf_wait_data_dtl, alf_prep_input_dtl, alf_prep_output_dtl, alf_compute_kernel, alf_spu_task_run, x1, x2 |
|---|
| _ALF_TASK_BEFORE_EXEC_INTERVAL | task_flag |
|---|
| _ALF_TASK_CONTEXT_MERGE_INTERVAL | task_flag |
|---|
| _ALF_TASK_CONTEXT_SWAP_INTERVAL | task_flag |
|---|
| _ALF_TASK_EXEC_INTERVAL | task_flag |
|---|
| _ALF_THREAD_RUN_INTERVAL | task_flag |
|---|
| _ALF_WAIT_FIRST_WB_INTERVAL | task_flag, wb_flag, packet_flag |
|---|
| _ALF_WB_COMPUTE_KERNEL_INTERVAL | task_flag, wb_flag, wb idx |
|---|
| _ALF_WB_DATA_TRANSFER_WAIT_INTERVAL | task_flag, wb_flag, wb idx |
|---|
| _ALF_WB_DTL_PREPARE_IN_INTERVAL | task_flag, wb_flag, wb idx |
|---|
| _ALF_WB_DTL_PREPARE_OUT_INTERVAL | task_flag, wb_flag, wb idx |
|---|
| _ALF_WB_LQUEUE_EMPTY_INTERVAL | task_flag, packet_flag |
|---|
 |
Ловушки SPU ALF
Данные ловушки активируются группой директив LIBALF_SPU (0x09) в конфигурационном файле.
| Идентификатор ловушки | Отслеживаемые значения |
|---|
| _ALF_ACCEL_COMP_KERNEL_ENTRY | p_task_context, p_parm_ctx_buffer, p_input_buffer, p_output_buffer, p_inout_buffer, current_iter, num_iter |
|---|
| _ALF_ACCEL_COMP_KERNEL_EXIT | retcode |
|---|
| _ALF_ACCEL_DTL_BEGIN_ENTRY | p_dtl, buf_type, offset |
|---|
| _ALF_ACCEL_DTL_BEGIN_EXIT | p_dtl, retcode |
|---|
| _ALF_ACCEL_DTL_END_ENTRY | p_dtl |
|---|
| _ALF_ACCEL_DTL_END_EXIT _ | retcode |
|---|
| _ALF_ACCEL_DTL_ENTRY_ADD_ENTRY | p_dtl, data_size, data_type, p_host_address |
|---|
| _ALF_ACCEL_DTL_ENTRY_ADD_EXIT | retcode |
|---|
| _ALF_ACCEL_INPUT_DTL_PREPARE_ENTRY | p_task_context, p_parm_ctx_buffer, p_dtl, current_iter, num_iter |
|---|
| _ALF_ACCEL_INPUT_DTL_PREPARE_EXIT | retcode |
|---|
| _ALF_ACCEL_NUM_INSTANCES | retcode |
|---|
| _ALF_ACCEL_OUTPUT_DTL_PREPARE_ENTRY | p_task_context, p_parm_ctx_buffer, p_io_container, current_iter, num_iter |
|---|
| _ALF_ACCEL_OUTPUT_DTL_PREPARE_EXIT | retcode |
|---|
| _ALF_ACCEL_TASK_CONTEXT_MERGE_ENTRY | p_task_context_to_be_merged, p_task_context |
|---|
| _ALF_ACCEL_TASK_CONTEXT_MERGE_EXIT | retcode |
|---|
| _ALF_ACCEL_TASK_CONTEXT_SETUP_ENTRY | p_task_context |
|---|
| _ALF_ACCEL_TASK_CONTEXT_SETUP_EXIT | retcode |
|---|
| _ALF_INSTANCES_ID | retcode |
|---|
| _ALF_SPE_GENERIC_DEBUG | long1, long2, long3, long4, long5, long6, long7, long8, long9, long10 |
|---|
 |
|  |