[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [IA64] xenoprof/ia64 howto



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1200597061 25200
# Node ID 7238393ef22030463a88f35163a94031f7d5fd4c
# Parent  003036d7db0fa5e3b988a4011655db411be8ed06
[IA64] xenoprof/ia64 howto

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 xen/arch/ia64/tools/README.xenoprof |  154 ++++++++++++++++++++++++++++++++++++
 1 files changed, 154 insertions(+)

diff -r 003036d7db0f -r 7238393ef220 xen/arch/ia64/tools/README.xenoprof
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/arch/ia64/tools/README.xenoprof       Thu Jan 17 12:11:01 2008 -0700
@@ -0,0 +1,154 @@
+                       Xenoprof/IA64 HOWTO
+
+                          Written by Isaku Yamahata <yamahata at valinux co jp>
+                                                                 15th Jan, 2008
+
+
+Introduction
+------------
+This documents describes how to use xenoprof/ia64.
+See oprofile site for the details of oprofile itself.
+
+
+Reference
+---------
+oprofile
+http://oprofile.sourceforge.net/news/
+
+xenoprof
+http://xenoprof.sourceforge.net/
+
+
+Requirement
+-----------
+- xen VMM
+  xen-ia64-devel.hg c/s 16632:2900e4dacaa7 or later
+  Probably xen 3.2 or later would be OK.
+
+- dom0/domU Linux
+  linux kernel tree corresponding to xen VMM.
+
+- Oprofile
+  oprofile 0.9.3 or later
+  get the patch for oprofile 0.9.3 from http://xenoprof.sourceforge.net/
+  oprofile-0.9.3-xen-r2.patch or later
+  NOTE:The xenoprof/IA64 specific part is already included in the development
+       cvs tree.
+
+- Documentation
+  You can find the documentation from http://xenoprof.sourceforge.net/.
+  It doesn't cover IA64 specific part, but it almost applies.
+
+
+Options to opcontrol
+--------------------
+You have to tell the oprofile daemon that the session is xenoprof one
+by "--xen" option.
+--xen=<xen_image_file>
+  Specify the xen image.
+--active-domains<list>
+  Specify active domains
+--passive-domains=<list>
+  Specify passive domains
+
+
+Examples
+--------
+- dom0 active, dom1 passive case example
+  on dom0
+  # opctonrol --start-daemon --xen=<path to xen-syms> \
+    --vmlinux=<path to vmlinux> \
+    --active-domains=0 --passive-domains=1
+  # opcontrol --start
+
+  <make activity you want>
+
+  # opcontrol --stop (or opcontrol --shutdown)
+  # opreport -l or something to get the result
+
+
+- both dom0 and dom1 active example
+  on dom0
+  # opctonrol --start-daemon --xen=<path to xen-syms> \
+    --vmlinux=<path to vmlinux> \
+    --active-domains=0,1
+
+  on dom1
+  # opctonrol --start-daemon --xen=<path to xen-syms> \
+    --vmlinux=<path to vmlinux>
+  domain1 isn't primary domain so that --active-domains/--passive-domains
+  shouldn't be specified.
+
+  on dom0
+  # opcontrol --start
+  on dom1
+  # opcontrol --start
+
+  <make activity you want>
+
+  on dom1
+  # opcontrol --stop (or opcontrol --shutdown)
+  on dom0
+  # opcontrol --stop (or opcontrol --shutdown)
+
+  on dom0
+  # opreport -l or something to get the result of dom0
+  on dom1
+  # opreport -l or something to get the result of dom1
+
+
+Result example
+--------------
+The app name of non-dom0 domain would be domain<N>-{xen, kernel, modules, app}
+where N is the domain id.
+You may want to create domain<N>-xen domain<N>-kernel to get the symbol names.
+
+# opreport
+CPU: Itanium 2, speed 1595 MHz (estimated)
+Counted L2DTLB_MISSES events (L2DTLB Misses) with a unit mask of 0x00 (No unit 
mask) count 5000
+L2DTLB_MISSES:...|
+  samples|      %|
+------------------
+      242 40.2662 domain1-kernel
+      176 29.2845 domain1-xen
+      128 21.2978 domain1-apps
+       55  9.1514 xen-syms
+
+# opreport -l
+CPU: Itanium 2, speed 1595 MHz (estimated)
+Counted L2DTLB_MISSES events (L2DTLB Misses) with a unit mask of 0x00 (No unit 
mask) count 5000
+warning: /boot/domain1-xen could not be found.
+warning: /domain1-apps could not be found.
+warning: /domain1-kernel could not be found.
+samples  %        app name                 symbol name
+242      40.2662  domain1-kernel           (no symbols)
+176      29.2845  domain1-xen              (no symbols)
+128      21.2978  domain1-apps             (no symbols)
+16        2.6622  xen-syms                 context_switch
+16        2.6622  xen-syms                 lookup_domain_mpa
+7         1.1647  xen-syms                 vcpu_get_domain_bundle
+3         0.4992  xen-syms                 do_dom0vp_op
+3         0.4992  xen-syms                 lookup_noalloc_domain_pte
+3         0.4992  xen-syms                 xencomm_get_page
+2         0.3328  xen-syms                 __copy_user
+2         0.3328  xen-syms                 vcpu_translate
+1         0.1664  xen-syms                 ia64_frametable_probe
+1         0.1664  xen-syms                 vcpu_wake
+1         0.1664  xen-syms                 xencomm_ctxt_init
+
+
+Limitations
+-----------
+- Don't create/destroy/save/restore/live migration during xenoprof session.
+  Otherwise something would go wrong. (including xen VMM hang)
+  This isn't ia64 specific.
+  If you want to profile early boot phase, "xm create -p/unpause" is your
+  friend.
+
+- Currently only the generic PMC/PMD is supported.
+  The CPU implementation specific PMC/PMD isn't supported.
+
+- calling graph isn't supported yet.
+
+- The active domain for HVM domain isn't supported
+  Xen/IA64 VMM itself supports it, however the driver doesn't exist.

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.