예제 #1
0
/*
 * Print out the current CPU settings as configured either from
 * the cpufreq sysfs files or the intel_pstate sysfs files.
 */
void printCpuValues(const Cpu &cpu)
{
	if (Log::isOutputCapable()) {
		printVersion();
		std::ostringstream oss;
		oss << Color::boldWhite()
			<< "    pstate::" << Color::boldGreen()
			<< "CPU_DRIVER     -> "
			<< Color::boldCyan() << cpu.getDriver()
			<< std::endl;
		oss << Color::boldWhite()
			<< "    pstate::" << Color::boldGreen()
			<< "CPU_GOVERNOR   -> "
			<< Color::boldCyan() << cpu.getGovernor()
			<< std::endl;
		const int turbo = cpu.getTurboBoost();
		oss << Color::boldWhite()
			<< "    pstate::" << Color::boldGreen()
			<< (cpu.hasPstate()
				? "NO_TURBO       -> "
				: "TURBO_BOOST    -> ")
			<< Color::boldCyan() << turbo << " : "
			<< (cpu.hasPstate()
				? (turbo == 1
					? "OFF"
					: "ON")
				: (turbo == 1
					? "ON"
					: "OFF"))
			<< std::endl;
		oss << Color::boldWhite()
			<< "    pstate::" << Color::boldGreen()
			<< "CPU_MIN        -> "
			<< Color::boldCyan() << cpu.getMinValue() << "% : "
			<< static_cast<int>(cpu.getScalingMinFrequency())
			<< "KHz" << std::endl;
		oss << Color::boldWhite()
			<< "    pstate::" << Color::boldGreen()
			<< "CPU_MAX        -> "
			<< Color::boldCyan() << cpu.getMaxValue() << "% : "
			<< static_cast<int>(cpu.getScalingMaxFrequency())
			<< "KHz" << std::endl;
		oss << Color::reset();
		std::cout << oss.str();
	}
}
예제 #2
0
static int turboFromOptArg(const Cpu &cpu, char *const arg)
{
	const std::string convertedArg(arg);
	int turbo;
	if (cpu.hasPstate()) {
		if (Log::isDebug()) {
			std::cout << "[Debug] System has intel_pstate"
				<< std::endl;
		}
		if (convertedArg.compare("0") == 0
				|| stringStartsWith("on",
					convertedArg)) {
			if (Log::isDebug()) {
				std::cout << "[Debug] Turbo On"
					<< std::endl;
			}
			turbo = Values::PSTATE_TURBO;
		} else if (convertedArg.compare("1") == 0
				|| stringStartsWith("off",
				convertedArg)) {
			if (Log::isDebug()) {
				std::cout << "[Debug] Turbo Off"
					<< std::endl;
			}
			turbo = Values::PSTATE_NO_TURBO;
		} else {
			if (Log::isDebug()) {
				std::cout << "[Debug] Turbo is insane"
					<< std::endl;
			}
			turbo = Values::TURBO_INSANE;
		}
	} else {
		if (Log::isDebug()) {
			std::cout << "[Debug] System does not have "
				<< "intel_pstate" << std::endl;
		}
		if (convertedArg.compare("0") == 0
				|| stringStartsWith("off",
					convertedArg)) {
			if (Log::isDebug()) {
				std::cout << "[Debug] Turbo Off"
					<< std::endl;
			}
			turbo = Values::CPUFREQ_NO_TURBO;
		} else if (convertedArg.compare("1") == 0
				|| stringStartsWith("on",
				convertedArg)) {
			if (Log::isDebug()) {
				std::cout << "[Debug] Turbo On"
					<< std::endl;
			}
			turbo = Values::CPUFREQ_TURBO;
		} else {
			if (Log::isDebug()) {
				std::cout << "[Debug] Turbo is insane"
					<< std::endl;
			}
			turbo = Values::TURBO_INSANE;
		}
	}
	return turbo;
}