|  | // Copyright 2020 The Chromium Authors | 
|  | // 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_ |