提交 875e063d 编写于 作者: H He Chuyue 提交者: guzitao

sw64: perf: remove redundant function declarations

Sunway inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I56X48

--------------------------------

The inconsistent function definition and call order make previous
patch declare sw64_pmu_start() and sw64_pmu_stop() again at the
beginning. Since the order of function definition has changed, and
this part can be removed.
Signed-off-by: NHe Chuyue <hechuyue@wxiat.com>
Reviewed-by: NHe Sheng <hesheng@wxiat.com>
Signed-off-by: NGu Zitao <guzitao@wxiat.com>
上级 a526a130
......@@ -25,9 +25,6 @@ struct cpu_hw_events {
DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events);
static void sw64_pmu_start(struct perf_event *event, int flags);
static void sw64_pmu_stop(struct perf_event *event, int flags);
struct sw64_perf_event {
/* pmu index */
int counter;
......@@ -375,6 +372,55 @@ static unsigned long sw64_perf_event_update(struct perf_event *event,
*
*/
/*
* pmu->start: start the event.
*/
static void sw64_pmu_start(struct perf_event *event, int flags)
{
struct hw_perf_event *hwc = &event->hw;
if (WARN_ON_ONCE(!(hwc->state & PERF_HES_STOPPED)))
return;
if (flags & PERF_EF_RELOAD) {
WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE));
sw64_perf_event_set_period(event, hwc, hwc->idx);
}
hwc->state = 0;
/* counting in selected modes, for both counters */
wrperfmon(PERFMON_CMD_PM, hwc->config_base);
if (hwc->idx == PERFMON_PC0) {
wrperfmon(PERFMON_CMD_EVENT_PC0, hwc->event_base);
wrperfmon(PERFMON_CMD_ENABLE, PERFMON_ENABLE_ARGS_PC0);
} else {
wrperfmon(PERFMON_CMD_EVENT_PC1, hwc->event_base);
wrperfmon(PERFMON_CMD_ENABLE, PERFMON_ENABLE_ARGS_PC1);
}
}
/*
* pmu->stop: stop the counter
*/
static void sw64_pmu_stop(struct perf_event *event, int flags)
{
struct hw_perf_event *hwc = &event->hw;
if (!(hwc->state & PERF_HES_STOPPED)) {
wrperfmon(PERFMON_CMD_DISABLE, hwc->idx == 0 ?
PERFMON_DISABLE_ARGS_PC0 :
PERFMON_DISABLE_ARGS_PC1);
hwc->state |= PERF_HES_STOPPED;
barrier();
}
if ((flags & PERF_EF_UPDATE) && !(hwc->state & PERF_HES_UPTODATE)) {
sw64_perf_event_update(event, hwc, hwc->idx, 0);
hwc->state |= PERF_HES_UPTODATE;
}
}
/*
* pmu->add: add the event to PMU.
*/
......@@ -433,55 +479,6 @@ static void sw64_pmu_del(struct perf_event *event, int flags)
local_irq_restore(irq_flags);
}
/*
* pmu->start: start the event.
*/
static void sw64_pmu_start(struct perf_event *event, int flags)
{
struct hw_perf_event *hwc = &event->hw;
if (WARN_ON_ONCE(!(hwc->state & PERF_HES_STOPPED)))
return;
if (flags & PERF_EF_RELOAD) {
WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE));
sw64_perf_event_set_period(event, hwc, hwc->idx);
}
hwc->state = 0;
/* counting in selected modes, for both counters */
wrperfmon(PERFMON_CMD_PM, hwc->config_base);
if (hwc->idx == PERFMON_PC0) {
wrperfmon(PERFMON_CMD_EVENT_PC0, hwc->event_base);
wrperfmon(PERFMON_CMD_ENABLE, PERFMON_ENABLE_ARGS_PC0);
} else {
wrperfmon(PERFMON_CMD_EVENT_PC1, hwc->event_base);
wrperfmon(PERFMON_CMD_ENABLE, PERFMON_ENABLE_ARGS_PC1);
}
}
/*
* pmu->stop: stop the counter
*/
static void sw64_pmu_stop(struct perf_event *event, int flags)
{
struct hw_perf_event *hwc = &event->hw;
if (!(hwc->state & PERF_HES_STOPPED)) {
wrperfmon(PERFMON_CMD_DISABLE, hwc->idx == 0 ?
PERFMON_DISABLE_ARGS_PC0 :
PERFMON_DISABLE_ARGS_PC1);
hwc->state |= PERF_HES_STOPPED;
barrier();
}
if ((flags & PERF_EF_UPDATE) && !(hwc->state & PERF_HES_UPTODATE)) {
sw64_perf_event_update(event, hwc, hwc->idx, 0);
hwc->state |= PERF_HES_UPTODATE;
}
}
/*
* pmu->read: read and update the counter
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册