IBM®
Skip to main content
    Country/region [select]      Terms of use
 
 
    
     Home      Products      Services & solutions      Support & downloads      My account     
 
developerworks > My developerWorks >  Dashboard > Linux for Power Architecture > Home > Entries in the proc Filesystem > Information > Page Comparison
developerWorks
Log In   View a printable version of the current page.
Overview Connect Spaces Forums Wikis
Entries in the proc Filesystem
Version 32 by mperzl
on Nov 20, 2006 07:36.


compared with
Current by mperzl
on Nov 20, 2006 07:40.

(show comment)
 
Key
These lines were removed. This word was removed.
These lines were added. This word was added.

View page history


There are 7 changes. View first change.

 h1. The /proc/ppc64 Directory
 We don't know of any complete separately available documentation covering the /proc file system. There is some documentation available, however, it is quite dispersed. What we would strongly recommend in any case is to download the latest version of the 2.6.x line of the Linux kernel source code from http://kernel.org. There you'll find all available documentation in the directory "Documentation". Information about the /proc file system can be find in the file "proc.txt" in the directory "Documentation/filesystems".
  
 For the PowerPC processor architecture the directory "Documentation/powerpc" is the most interesting one.
  
 The following article might also be worth while reading: http://www-128.ibm.com/developerworks/linux/library/l-pow-dynamic/
  
 This is the contents of the /proc/ppc64 directory on a PowerPC processor system:
 {noformat}
 # ls -al /proc/ppc64
 total 8
 dr-xr-xr-x 4 root root 0 Dec 10 17:11 .
 dr-xr-xr-x 264 root root 0 Dec 10 17:09 ..
 -r--r--r-- 1 root root 0 Dec 15 20:19 eeh
 -r-------- 1 root root 0 Dec 15 20:19 lparcfg
 -r-------- 1 root root 4096 Dec 15 20:19 naca
 --w------- 1 root root 0 Dec 15 20:19 ofdt
 dr-xr-xr-x 2 root root 0 Dec 15 20:19 paca
 dr-xr-xr-x 2 root root 0 Dec 10 17:11 rtas
 -r--r--r-- 1 root root 4096 Dec 15 17:07 systemcfg
 {noformat}
  
 h2. The /proc/ppc64/eeh Entry
 {noformat}
 # cat /proc/ppc64/eeh
 EEH Subsystem is globally disabled
 eeh_total_mmio_ffs=0
 {noformat}
  
 h2. The /proc/ppc64/lparcfg Entry
  
 h3. /proc/ppc64/lparcfg on a LPAR-capable system
 {noformat}
 # cat /proc/ppc64/lparcfg
 lparcfg 1.6
 serial_number=IBM,021008B1A
 system_type=IBM,9123-710
 partition_id=2
 R4=0x1e
 R5=0x0
 R6=0x80020000
 R7=0x100000020002
 BoundThrds=1
 CapInc=1
 DisWheRotPer=2070000
 MinEntCap=10
 MinEntCapPerVP=10
 MinMem=512
 MinProcs=1
 partition_max_entitled_capacity=100
 system_potential_processors=2
 DesEntCap=30
 DesMem=1024
 DesProcs=1
 DesVarCapWt=16
  
 partition_entitled_capacity=30
 group=32770
 system_active_processors=2
 pool=0
 pool_capacity=200
 pool_idle_time=2126092257974
 pool_num_procs=0
 unallocated_capacity_weight=0
 capacity_weight=16
 capped=0
 unallocated_capacity=0
 purr=1028292894312
 partition_active_processors=1
 partition_potential_processors=10
 shared_processor_mode=1
 {noformat}
  
 ||Entry||Meaning||
 |lparcfg 1.6|Version number of the lparcfg entity ??|
 |serial_number=IBM,021008B1A|Manufacturer (=IBM) and serial number (10-08B1A), what is the preceding 02 ???|
 |system_type=IBM,9123-710|Manufacturer (=IBM), Type=9123, Model=710, this is an OpenPower 710|
 |partition_id=2|The LPAR id number|
 |R4=0x1e|???|
 |R5=0x0|???|
 |R6=0x80020000|???|
 |R7=0x100000020002|???|
 |BoundThrds=1|???|
 |CapInc=1|Minimum CPU increment/decrement = 1% = 0.01 physical processor ???|
  |CapInc=1|Minimum CPU increment/decrement = 1% = 0.01 physical processor|
 |DisWheRotPer=2070000|???|
 |MinEntCap=10|Minimum entitled capacity for LPAR = 10% = 0.1 physical processor|
 |MinEntCapPerVP=10|Minimum entitled capacity required per virtual processor = 10% = 0.1 physical processor|
 |MinMem=512|Minimum required amount of main memory required for start of LPAR (= 512 MB)|
 |MinProcs=1|Minimum required number of virtual processor for start of LPAR|
 |partition_max_entitled_capacity=100|Maximum entitled capacity for LPAR = 100% = 1.0 physical processor|
|system_potential_processors=2|Maximum number of physical processors in the system ???|
  |system_potential_processors=2|Maximum number of physical processors in the system (fully equipped)|
 |DesEntCap=30|Desired entitled capacity for LPAR = 30% = 0.3 physical processor|
 |DesMem=1024|Desired amount of main memory for LPAR (= 1024 MB)|
 |DesProcs=1|Desired number of virtual processors for LPAR|
|DesVarCapWt=16|Weight of LPAR when running in uncapped mode ???|
  |DesVarCapWt=16|Desired weight of LPAR when running in uncapped mode|
 |partition_entitled_capacity=30|Current entitled capacity of the LPAR = 30% = 0.3 physical processor|
 |group=32770|???|
|system_active_processors=2|Number of active physical processors in the system ???|
  |system_active_processors=2|Total number of active physical processors in the system|
 |pool=0|The id number of the shared processor pool (only one available) ???|
|pool_capacity=200|Maximum capacity of the shared processor pool = 200% = 2.0 physical processors ???|
  |pool_capacity=200|Maximum capacity of the shared processor pool = 200% = 2.0 physical processors|
 |pool_idle_time=2126092257974|Please see separate discussion of the PURR register further below|
 |pool_num_procs=0|???|
 |unallocated_capacity_weight=0|???|
|capacity_weight=16|Weight of LPAR when running in uncapped mode ???|
  |capacity_weight=16|Weight of LPAR when running in uncapped mode|
 |capped=0|LPAR runs in capped mode ? (0=FALSE, 1=TRUE)|
 |unallocated_capacity=0|???|
 |purr=1028292894312|Please see separate discussion of the PURR register further below|
 |partition_active_processors=1|Current number of virtual processors of the LPAR|
 |partition_potential_processors=10|Maximum number of possible virtual processors for LPAR|
 |shared_processor_mode=1|Is the shared processor pool being used (0=FALSE, 1=TRUE)|
  
 h3. /proc/ppc64/lparcfg on a non LPAR-capable system
  
 On a system that is not LPAR-capable (e.g., a POWER4 p615) only the following entities are set:
 {noformat}
 # cat lparcfg
 lparcfg 1.6
 serial_number=IBM,01659B11F
 system_type=IBM,7029-6E3
 partition_id=0
 system_active_processors=2
 system_potential_processors=2
 partition_max_entitled_capacity=200
 partition_entitled_capacity=200
 partition_active_processors=2
 partition_potential_processors=2
 shared_processor_mode=0
 {noformat}
  
 h3. The PURR register - Calculation of consumed CPU cycles for an uncapped LPAR
  
 Let's assume the following situation:
 Our LPAR has a certain CPU entitlement but is running in uncapped mode. Now, when our LPAR is very busy it can utilize non-used free CPU-cycles available in the shared processor pool and actually go beyond the assigned CPU entitlement up to the maximum defined in the LPAR profile.
 The question is now: *how do we determine how much physical CPU resources our LPAR has really used?*
  
 This can be calculated with the help of the PURR register. PURR is an acronym for Processor Utilization Resources Register. You calculate the number of physical CPU seconds as follows:
  
 * At starting time *t1* (measured in seconds) extract the value of purr from /proc/ppc64/lparcfg as *p1*.
 * At end time *t2* (measured in seconds) extract the value of purr from /proc/ppc64/lparcfg as *p2*.
 * Calculate the time difference (elapsed time in seconds), now denoted as *delta t* = t2 - t1.
 * Calculate the purr difference, now denoted as *delta purr* = p2 - p1.
 * Extract the value for *timebase* from /proc/cpuinfo.
 * The number of physical CPU seconds is now calculated as: *((delta purr) / timebase) / (elapsed time)*
  
 Here is the calculation as a formula: !purr-formula.png!
  
 *Some remarks:*
 * Please note that the values of _purr_ are rather large! For the calculation you have to use 64-bit variables, e.g., of data type {{long long}}.
 * The values of purr are represented in units of _timebase_ as obtained from {{/proc/cpuinfo}}.
 * The calculated value represents the *average* usage of physical CPU resources during the observed time interval!
  
 *Relation of purr and pool_idle_time:*
 * The same calculation can be made for *pool_idle_time* (i.e., replace *purr* with *pool_idle_time*) except that the calculated value then represents the number of CPU cycles (in units of physical processors) of the shared processor pool that were *not* used for LPARs, e.g., that were idle.
  
 Very technical details can be found in the following article *Advanced virtualization capabilities of POWER5 systems* which appeared in the _IBM Journal of Research and Development_ (Volume 49, Number 4/5, 2005), available at http://www.research.ibm.com/journal/rd/494/armstrong.html.
  
 h4. Example calculation #1
 still to be done...
  
 h4. Example calculation #2
 still to be done...
  
 h2. The /proc/ppc64/naca Entry
 {note:title=No Documentation currently available}
 So far no documentation found... :(
 {note}
  
 h2. The /proc/ppc64/ofdt Entry
 ofdt - perform operations on the Open Firmware device tree
  
 h2. The /proc/ppc64/paca Directory
 {note:title=No Documentation currently available}
 So far no documentation found... :(
 {note}
  
 h2. The /proc/ppc64/rtas Directory
 Die Beschreibung der Parameter im Verzeichnis "rtas" bezieht sich auf Linux on pSeries RAS. Hierzu einige URLs:
  
 Homepage der Linux on POWER Service Aids:
 http://techsupport.services.ibm.com/server/lopdiags
  
 Linux on POWER RAS Whitepaper:
 http://techsupport.services.ibm.com/server/lopdiags/images/Linux_RAS.pdf
  
 Hier eine recht gute und ausführliche Beschreibung der Parameter im "rtas" Verzeichnis:
 http://lib.hutech.edu.vn/ebookonline/ebook1/0738498769/ch04lev1sec1.html
  
 h2. The /proc/ppc64/systemcfg Entry
  
 Die Datei systemcfg ist eine Binärdatei und beinhaltet ein Structure vom Type "struct systemcfg". Wie der Struct aufgebaut ist, ist in folgender Include-Datei beschrieben: /usr/include/asm-ppc64/systemcfg.h
 Ein Code-Example wie man darauf zugreifen kann findet sich z.B auf:
 http://www.funet.fi/pub/Linux/PEOPLE/Linus/v2.4/patch-html/patch-2.4.21/linux-2.4.21_include_asm-ppc64_systemcfg.h.html
  
  
 Das File "Documentation/powerpc/eeh-pci-error-recovery.txt" beschreibt die Parameter der Datei eeh.

 
    About IBM Privacy Contact