blob: a41c41ee9ca092f98dfe7c097a650c65c8d9c578 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SYSTEM_CORE_SCHEDULING_H_
#define CHROMEOS_SYSTEM_CORE_SCHEDULING_H_
#include "chromeos/chromeos_export.h"
namespace chromeos {
namespace system {
// EnableCoreScheduVlingIfAvailable will turn on core scheduling for a process
// if it's available,
void CHROMEOS_EXPORT EnableCoreSchedulingIfAvailable();
// Returns true if core scheduling is supported in the kernel, and CPU has MDS
// or L1TF vulnerabilities. Core scheduling does not run on CPUs that are not
// vulnerable.
bool CHROMEOS_EXPORT IsCoreSchedulingAvailable();
// Returns number of physical cores. This is useful when deciding the number of
// crosvm vCPUs for devices with per-vCPU core scheduling. When the device uses
// per-VM core scheduling, use base::SysInfo::NumberOfProcessors() instead.
int CHROMEOS_EXPORT NumberOfPhysicalCores();
} // namespace system
} // namespace chromeos
#endif // CHROMEOS_SYSTEM_CORE_SCHEDULING_H_