Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so:laboratoare:resurse:oprofile [2013/01/31 21:57]
127.0.0.1 external edit
so:laboratoare:resurse:oprofile [2013/02/19 09:10] (current)
larisa.grigore
Line 3: Line 3:
 Oprofile este un sistem de profiling disponibil ca modul pentru kernel-ul de Linux (și integrat în variantele mai noi ale acestuia), capabil să analizeze atât kernel-ul, cât și aplicațiile utilizator. Folosește tehnica de sampling și se bazează pe informațiile oferite de contoarele din CPU. Oprofile este un sistem de profiling disponibil ca modul pentru kernel-ul de Linux (și integrat în variantele mai noi ale acestuia), capabil să analizeze atât kernel-ul, cât și aplicațiile utilizator. Folosește tehnica de sampling și se bazează pe informațiile oferite de contoarele din CPU.
  
-    ​*vantaje**:+**Avantaje**:
   *overhead redus   *overhead redus
   *profiling al întregului sistem (inclusiv secțiuni "​delicate"​ din kernel)   *profiling al întregului sistem (inclusiv secțiuni "​delicate"​ din kernel)
   *prezentarea efectelor la nivel de hardware   *prezentarea efectelor la nivel de hardware
  
-    ​*ezavantaje**:+**Dezavantaje**:
   *necesita drepturi de utilizator privilegiat (root)   *necesita drepturi de utilizator privilegiat (root)
   *nu poate fi folosit pentru cod compilat dinamic sau interpretat (Java, Python, etc)   *nu poate fi folosit pentru cod compilat dinamic sau interpretat (Java, Python, etc)
Line 14: Line 14:
 ==== Arhitectura și modul de funcționare ==== ==== Arhitectura și modul de funcționare ====
  
-{{:​laboratoare:​lab12-oprofile.png|Arhitectura Oprofile}}+{{so:​laboratoare:​lab12-oprofile.png|Arhitectura Oprofile}}
 Procesoarele au niște countere speciale pe care le decrementează de fiecare dată când are loc un eveniment de un anumit tip (cache miss, tlb miss, branch miss-predictions,​ etc.). Când un astfel de counter se ajunge la valoarea zero, se trimite o întrerupere NMI care este interceptată de modulul de kernel al oprofile. Modulul de kernel resetează counterul la o valoare fixată de utilizator și salvează într-un buffer din kernel date despre locația care a generat întreruperea (proces/​kernel,​ id-ul threadului, instrucținea curentă care a generat decrementarea counterului,​ etc.). Procesoarele au niște countere speciale pe care le decrementează de fiecare dată când are loc un eveniment de un anumit tip (cache miss, tlb miss, branch miss-predictions,​ etc.). Când un astfel de counter se ajunge la valoarea zero, se trimite o întrerupere NMI care este interceptată de modulul de kernel al oprofile. Modulul de kernel resetează counterul la o valoare fixată de utilizator și salvează într-un buffer din kernel date despre locația care a generat întreruperea (proces/​kernel,​ id-ul threadului, instrucținea curentă care a generat decrementarea counterului,​ etc.).
  
Line 37: Line 37:
 muttley:~# modprobe oprofile muttley:~# modprobe oprofile
 </​code>​ </​code>​
-    ​*au**+**sau**
 <​code>​ <​code>​
 muttley:~# opcontrol --init muttley:~# opcontrol --init
Line 55: Line 55:
 student@muttley:​~$ opcontrol --list-events student@muttley:​~$ opcontrol --list-events
 </​code>​ </​code>​
-    ​*au**+**sau**
 <​code>​ <​code>​
 student@muttley:​~$ ophelp student@muttley:​~$ ophelp
Line 110: Line 110:
 muttley:~# opcontrol --reset muttley:~# opcontrol --reset
 </​code>​ </​code>​
-    ​*au** se salvează bufferul curent în sesiunea cu numele ''​sesiunea_anterioara''​+**sau** se salvează bufferul curent în sesiunea cu numele ''​sesiunea_anterioara''​
 <​code>​ <​code>​
 muttley:~# opcontrol --save=sesiunea_anterioara muttley:~# opcontrol --save=sesiunea_anterioara
so/laboratoare/resurse/oprofile.txt · Last modified: 2013/02/19 09:10 by larisa.grigore
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0