Class: Jkr::Cpufreq

Inherits:
Object
  • Object
show all
Defined in:
lib/jkr/cpufreq.rb

Defined Under Namespace

Classes: Config

Class Method Summary collapse

Class Method Details

.available?Boolean

Returns:

  • (Boolean)


23
24
25
26
27
# File 'lib/jkr/cpufreq.rb', line 23

def self.available?()
  (0..(self.num_cpu() - 1)).to_a.every?{|cpu_idx|
    File.exists?(cpufreqpath(cpu_idx))
  }
end

.available_frequency(cpu_idx = 0) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/jkr/cpufreq.rb', line 33

def self.available_frequency(cpu_idx = 0)
  if self.available?
    `cat #{cpufreqpath(cpu_idx) + "/scaling_available_frequencies"}`.strip.split.map(&:to_i).sort
  else
    []
  end
end

.configObject



29
30
31
# File 'lib/jkr/cpufreq.rb', line 29

def self.config()
  Config.get()
end

.cpufreqpath(cpu_idx = 0) ⇒ Object



15
16
17
# File 'lib/jkr/cpufreq.rb', line 15

def self.cpufreqpath(cpu_idx = 0)
  cpupath(cpu_idx) + "/cpufreq"
end

.cpupath(cpu_idx = nil) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/jkr/cpufreq.rb', line 7

def self.cpupath(cpu_idx = nil)
  if cpu_idx
    self.cpupath() + "/cpu#{cpu_idx}"
  else
    "/sys/devices/system/cpu"
  end
end

.num_cpuObject



19
20
21
# File 'lib/jkr/cpufreq.rb', line 19

def self.num_cpu()
  Dir.glob(cpupath("*")).select{|file| file =~ /cpu\d+$/}.size
end