blob: 64b21dc5f571d61e3436c2a28876ab41c8e51d99 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <fbl/algorithm.h>
#include "garnet/bin/cpuperf_provider/categories.h"
#include "garnet/lib/perfmon/events.h"
namespace cpuperf_provider {
const CategorySpec kCommonCategories[] = {
// Options
{"cpu:os", CategoryGroup::kOption,
static_cast<CategoryValue>(TraceOption::kOs), 0, nullptr},
{"cpu:user", CategoryGroup::kOption,
static_cast<CategoryValue>(TraceOption::kUser), 0, nullptr},
{"cpu:pc", CategoryGroup::kOption,
static_cast<CategoryValue>(TraceOption::kPc), 0, nullptr},
#ifdef __x86_64__
{"cpu:last_branch", CategoryGroup::kOption,
static_cast<CategoryValue>(TraceOption::kLastBranch), 0, nullptr},
#endif
// Sampling rates.
// Only one of the following is allowed.
#define DEF_SAMPLE(name, value) \
{ "cpu:" name, CategoryGroup::kSample, value, 0, nullptr }
DEF_SAMPLE("tally", 0),
DEF_SAMPLE("sample:100", 100),
DEF_SAMPLE("sample:500", 500),
DEF_SAMPLE("sample:1000", 1000),
DEF_SAMPLE("sample:5000", 5000),
DEF_SAMPLE("sample:10000", 10000),
DEF_SAMPLE("sample:50000", 50000),
DEF_SAMPLE("sample:100000", 100000),
DEF_SAMPLE("sample:500000", 500000),
DEF_SAMPLE("sample:1000000", 1000000),
#undef DEF_SAMPLE
};
const size_t kNumCommonCategories = fbl::count_of(kCommonCategories);
} // namespace cpuperf_provider