Wednesday, 5 December 2012

Manage CPU cores in Linux

This is going to be a short post. There are two things I need to do frequently with manycores machines that I have:

* Switch them on/off to perform experiments in a more controlled environment. 
* Scale their frequency to match their performance.  


For first, there is a simple trick. All CPU cores in linux show up in sysfs 


#ls /sys/devices/system/cpu/
cpu0/       cpu1/       cpu2/       cpu3/       cpufreq/    cpuidle/    kernel_max  microcode/  modalias    offline     online      possible    present     probe       release     uevent      

As you can see there are 4 directories for 4 core system that I have. In each of the core* directories I have

#ls /sys/devices/system/cpu/cpu0/
cache  cpufreq crash_notes  microcode node0  online  subsystem thermal_throttle  topology  uevent

So one just have to echo 1 (for ON) or 0 (for OFF) into online file. This is a sysfs file, writing to which triggers some action inside kernel. In our case this would be switching off the CPU. 

#echo 0 > /sys/devices/system/cpu/cpu0/online

For this to work, you kernel must support dynamic hotplugging of CPUs. Mind that CPU0 has a special status and you can not switch if off. Although, Linux is smart enough when running on a single core, it switches to uniprocessor (UP) code. 

For second, you need to have associated processor power state driver. Most of the modern Intel processor can work with P state acpi_cpufreq.ko driver. For other driver options check in: 

'make menuconfig' -> Power Management and ACPI Options -> CPU Frequency Scaling
-> x86 CPU Frequency Scaling Drivers  

Now get the driver in. To regulate frequency from userspace you need a userspace tool called 'cpufrequtils'. Install it. With the driver and tool in, we get something like: 

#cpufreq-info 
cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.60 GHz - 2.53 GHz
  available frequency steps: 2.53 GHz, 2.39 GHz, 2.26 GHz, 2.13 GHz, 2.00 GHz, 1.86 GHz, 1.73 GHz, 1.60 GHz
  available cpufreq governors: conservative, ondemand, userspace, performance
  current policy: frequency should be within 1.60 GHz and 2.53 GHz.
                  The governor "userspace" may decide which speed to use
                  within this range.
  current CPU frequency is 1.86 GHz (asserted by call to hardware).

As you can it there are multiple frequencies I can choose from. You can not arbitrarily set one frequency, it has to be one from the set. To set the frequency: 

#cpufreq-set -c 0 -f 1.8GHz

where -C is core number. And -f is frequency. 

And thats about it. For more details see Linux kernel documentation at 

and most of other ACPI and power/performance related options are in 
'make menuconfig' -> Power Management and ACPI Options

Cheers

12 comments:

  1. The major clients of such service providers are advertising and marketing agencies,CPU
    photography studios, graphic design studios, web designers and in some cases
    printing companies and lithographers too.

    ReplyDelete
  2. This is an amazing post you have shared with us . I appreciate you excellent post . Remvoe White Background | Clipping Path | Product Photo Editing

    ReplyDelete
  3. Thanks for the great info. I am so benefited by your post. Thanks

    ReplyDelete
  4. Very effective and useful article. I was finding professional clipping path service provider but after seeing your post and great information share this post.

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. this was a very useful article . i am very thankful for your post Clipping Path Service

    ReplyDelete
  7. Wiz Cut Out is the most guaranteed way to grow your business using our image editing services and specialized in e-commerce photo editing.

    Services,
    clipping path, clipping path services, background removal, clipping mask, masking
    shadow creation

    ReplyDelete
  8. World777 is an eSports fantasy justice game played by roughly 13 million people. It has a total standing of3.9/ 5 and has been installed till date. In this game, the player can form a platoon of 11 members by opting them from a pool of 25 or 30 players. The performance of the 11 players on your platoon earns you the points just as the live match begins. Your final score gives you a ranking at the end.

    ReplyDelete
  9. Well, this is the nicest blog I went through so I kept my posting here with good feedback.
    https://www.outlookindia.com/outlook-spotlight/testogen-reviews-2022-testogen-results-benefits-ingredients-before-and-after-news-221686

    ReplyDelete