WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
los_perf.h
浏览该文件的文档.
1/* ----------------------------------------------------------------------------
2 * Copyright (c) Huawei Technologies Co., Ltd. 2017-2020. All rights reserved.
3 * Description: LiteOS Performance Monitor Module Implementation
4 * Author: Huawei LiteOS Team
5 * Create: 2017-01-01
6 * Redistribution and use in source and binary forms, with or without modification,
7 * are permitted provided that the following conditions are met:
8 * 1. Redistributions of source code must retain the above copyright notice, this list of
9 * conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 * 3. Neither the name of the copyright holder nor the names of its contributors may be used
14 * to endorse or promote products derived from this software without specific prior written
15 * permission.
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
18 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 * --------------------------------------------------------------------------- */
28
34#ifndef _LOS_PERF_H
35#define _LOS_PERF_H
36
37#include "los_typedef.h"
38
39#ifdef __cplusplus
40extern "C" {
41#endif /* __cplusplus */
42
47#define PERF_MAX_FILTER_TSKS 32
48
53#define PERF_MAX_EVENT 7
54
59#define PERF_MAX_CALLCHAIN_DEPTH 10
60
65#define PERF_BUFFER_WATERMARK_ONE_N 2
66
78
85
91typedef VOID (*PERF_BUF_FLUSH_HOOK)(VOID *addr, UINT32 size);
92
101#define LOS_ERRNO_PERF_STATUS_INVALID LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x00)
102
111#define LOS_ERRNO_PERF_HW_INIT_ERROR LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x01)
112
121#define LOS_ERRNO_PERF_TIMED_INIT_ERROR LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x02)
122
131#define LOS_ERRNO_PERF_SW_INIT_ERROR LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x03)
132
141#define LOS_ERRNO_PERF_BUF_ERROR LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x04)
142
151#define LOS_ERRNO_PERF_INVALID_PMU LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x05)
152
161#define LOS_ERRNO_PERF_PMU_CONFIG_ERROR LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x06)
162
171#define LOS_ERRNO_PERF_CONFIG_NULL LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x07)
172
181#define LOS_ERRNO_PERF_CONFIG_TASK_FILTER_ERROR LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x08)
182
191#define LOS_ERRNO_PERF_INIT_NO_MEMERY LOS_ERRNO_OS_ERROR(LOS_MOD_PERF, 0x09)
192
205
222
230
243
258
276
292
293extern VOID OsPerfHook(UINT32 event);
294
295#if defined(LOSCFG_KERNEL_PERF) && defined(LOSCFG_PERF_SW_PMU)
296#define LOS_PERF(EVENT) do { \
297 OsPerfHook(EVENT); \
298 } while (0)
299#else
300#define LOS_PERF(EVENT)
301#endif
302
334
353
373
400
420
443
466
493
494#ifdef __cplusplus
495}
496#endif /* __cplusplus */
497
498#endif /* _LOS_PERF_H */
UINT32 LOS_PerfInit(void *buf, UINT32 size)
Init perf.
void(* PERF_BUF_NOTIFY_HOOK)(void)
Definition los_perf.h:84
PmuTimedId
Definition los_perf.h:227
PerfEventType
Definition los_perf.h:197
UINT32 LOS_PerfDeinit(void)
Deinit perf.
void LOS_PerfStop(void)
Stop perf sampling.
#define PERF_MAX_EVENT
Definition los_perf.h:53
PmuSwId
Definition los_perf.h:235
UINT32 LOS_PerfDataRead(CHAR *dest, UINT32 size)
Read data from perf sample data buffer.
#define PERF_MAX_FILTER_TSKS
Definition los_perf.h:47
void(* PERF_BUF_FLUSH_HOOK)(void *addr, UINT32 size)
Definition los_perf.h:91
void LOS_PerfStart(UINT32 sectionId)
Start perf sampling.
void LOS_PerfNotifyHookReg(const PERF_BUF_NOTIFY_HOOK func)
Register perf sample data buffer water mark hook function.
UINT32 LOS_PerfConfig(PerfConfigAttr *attr)
Config perf parameters.
PmuHwId
Definition los_perf.h:210
void LOS_PerfFlushHookReg(const PERF_BUF_FLUSH_HOOK func)
Register perf sample data buffer flush hook function.
PerfSampleType
Definition los_perf.h:249
PerfStatus
Definition los_perf.h:71
@ PERF_COUNT_CPU_CLOCK
Definition los_perf.h:228
@ PERF_EVENT_TYPE_SW
Definition los_perf.h:200
@ PERF_EVENT_TYPE_HW
Definition los_perf.h:198
@ PERF_EVENT_TYPE_MAX
Definition los_perf.h:203
@ PERF_EVENT_TYPE_TIMED
Definition los_perf.h:199
@ PERF_EVENT_TYPE_RAW
Definition los_perf.h:201
@ PERF_COUNT_SW_IRQ_RESPONSE
Definition los_perf.h:237
@ PERF_COUNT_SW_MAX
Definition los_perf.h:241
@ PERF_COUNT_SW_MUX_PEND
Definition los_perf.h:239
@ PERF_COUNT_SW_TASK_SWITCH
Definition los_perf.h:236
@ PERF_COUNT_SW_MEM_ALLOC
Definition los_perf.h:238
@ PERF_COUNT_HW_BRANCH_INSTRUCTIONS
Definition los_perf.h:217
@ PERF_COUNT_HW_DCACHE_MISSES
Definition los_perf.h:214
@ PERF_COUNT_HW_DCACHE_REFERENCES
Definition los_perf.h:213
@ PERF_COUNT_HW_MAX
Definition los_perf.h:220
@ PERF_COUNT_HW_BRANCH_MISSES
Definition los_perf.h:218
@ PERF_COUNT_HW_ICACHE_MISSES
Definition los_perf.h:216
@ PERF_COUNT_HW_ICACHE_REFERENCES
Definition los_perf.h:215
@ PERF_COUNT_HW_CPU_CYCLES
Definition los_perf.h:211
@ PERF_COUNT_HW_INSTRUCTIONS
Definition los_perf.h:212
@ PERF_RECORD_CALLCHAIN
Definition los_perf.h:256
@ PERF_RECORD_TIMESTAMP
Definition los_perf.h:254
@ PERF_RECORD_TYPE
Definition los_perf.h:252
@ PERF_RECORD_TID
Definition los_perf.h:251
@ PERF_RECORD_CPU
Definition los_perf.h:250
@ PERF_RECORD_IP
Definition los_perf.h:255
@ PERF_RECORD_PERIOD
Definition los_perf.h:253
@ PERF_UNINIT
Definition los_perf.h:72
@ PERF_STOPPING
Definition los_perf.h:75
@ PERF_STOPED
Definition los_perf.h:76
@ PERF_STARTING
Definition los_perf.h:73
@ PERF_STARTED
Definition los_perf.h:74
void OsPerfHook(UINT32 event)
#define VOID
Definition los_typedef.h:88
unsigned int UINT32
Definition los_typedef.h:52
char CHAR
Definition los_typedef.h:58
size_t BOOL
Definition los_typedef.h:83
Definition los_perf.h:283
BOOL taskFilterEnable
Definition los_perf.h:290
UINT32 sampleType
Definition los_perf.h:288
PerfEventConfig eventsCfg
Definition los_perf.h:284
BOOL needSample
Definition los_perf.h:289
UINT32 taskIdsNr
Definition los_perf.h:286
Definition los_perf.h:265
UINT32 eventsNr
Definition los_perf.h:272
UINT32 eventId
Definition los_perf.h:268
UINT32 period
Definition los_perf.h:269
UINT32 type
Definition los_perf.h:266
BOOL predivided
Definition los_perf.h:273