Служба профилирования

Служба предназначена для профилирования пользовательского кода и кода ядра, получения сведений о покрытии кода ядра и пользовательского кода, а также получения значений счетчиков производительности.

Сведения о методах службы приведены в таблице ниже.

Методы службы profiler.Profiler (интерфейс kl.core.Profiler)

Метод

Назначение и параметры метода

Потенциальная опасность метода

CreateUser

Назначение

Назначает профилирование пользовательского кода.

Результатом профилирования является статистика исполнения пользовательского кода в контексте заданного потока исполнения. Статистика показывает, сколько раз за время профилирования сработал пользовательский код из разных участков заданного диапазона виртуальных адресов.

Параметры

  • [in] tid – идентификатор потока исполнения (TID).
  • [in] from – начальный адрес диапазона виртуальных адресов, для которого собирается статистика.
  • [in] to – конечный адрес диапазон виртуальных адресов, для которого собирается статистика.
  • [in] scale – значение, определяющее гранулярность разбиения пользовательского кода внутри диапазона виртуальных адресов, заданного через параметры from и to. От этого значения зависит, на сколько участков будет разбит диапазон адресов.
  • [out] rc – код возврата.

Позволяет исчерпать память ядра, создавая в ней множество объектов.

DestroyUser

Назначение

Отменяет профилирование пользовательского кода.

Параметры

  • [in] tid – идентификатор потока исполнения (TID).
  • [out] rc – код возврата.

Нет.

CreateKernel

Назначение

Назначает профилирование кода ядра.

Результатом профилирования является статистика исполнения кода ядра. Статистика показывает, сколько раз за время профилирования сработал код ядра из разных участков диапазона адресов памяти процесса, вызвавшего этот метод. Диапазон виртуальных адресов, занятых кодом ядра, идентичен для всех процессов. Статистика исполнения кода ядра собирается в общем, а не в контексте одного процесса или потока исполнения.

Параметры

  • [out] from – начальный адрес диапазона виртуальных адресов, для которого собирается статистика.
  • [out] to – конечный адрес диапазон виртуальных адресов, для которого собирается статистика.
  • [out] scale – значение, отражающее гранулярность разбиения кода ядра внутри диапазона виртуальных адресов, соответствующего параметрам from и to. Это значение зависит от того, на сколько участков разбит диапазон адресов.
  • [out] size – размер данных, содержащих статистику, в байтах.
  • [out] rc – код возврата.

Нет.

DestroyKernel

Назначение

Отменяет профилирование кода ядра.

Параметры

  • [out] rc – код возврата.

Нет.

StartKernel

Назначение

Запускает профилирование кода ядра.

Параметры

  • [out] rc – код возврата.

Нет.

StopKernel

Назначение

Останавливает профилирование кода ядра.

Параметры

  • [out] rc – код возврата.

Нет.

GetKernelData

Назначение

Позволяет получить данные, содержащие статистику исполнения кода ядра, полученную в результате профилирования.

Параметры

  • [in] buf – указатель на буфер для сохранения данных, содержащих статистику исполнения кода ядра.
  • [out] rc – код возврата.

Нет.

GetCoverageData

Назначение

Позволяет получить сведения о покрытии кода ядра.

Параметры

  • [in] index – индекс для перечисления объектных файлов, содержащих инструментированный код для сбора покрытия. Нумерация начинается с нуля.
  • [out] buf – последовательность, содержащая сведения о покрытии кода объектного файла (в формате gcda).
  • [out] size – размер данных, содержащих сведения о покрытии кода объектного файла, в байтах.
  • [out] name – путь к файлу *.gcda, назначенный при компиляции.
  • [out] rc – код возврата.

Нет.

FlushGcov

Назначение

Выводит сведения о покрытии кода ядра в формате gcda через UART.

Параметры

  • [out] rc – код возврата.

Нет.

FlushGcovFile

Назначение

Выводит сведения о покрытии кода в формате gcda через UART.

Параметры

  • [in] name – путь к файлу *.gcda, назначенный при компиляции.
  • [in] buf – указатель на буфер, содержащий сведения о покрытии кода в формате gcda.
  • [in] size – размер данных, содержащих сведения о покрытии кода.
  • [out] rc – код возврата.

Нет.

GetCounters

Назначение

Позволяет получить значения счетчиков производительности.

Параметры

  • [in] prefix – префикс для имен счетчиков производительности.
  • [in] names – последовательность, содержащая имена счетчиков производительности.
  • [out] values – последовательность, содержащая значения счетчиков производительности.
  • [out] rc – код возврата.

Нет.

В начало