<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Arnaldo&#039;s Ramblings</title>
	<atom:link href="https://acmel.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://acmel.wordpress.com</link>
	<description>Kernel Hacking &#38; Tooling Mostly...</description>
	<lastBuildDate>Fri, 11 Feb 2011 10:02:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='acmel.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s2.wp.com/i/buttonw-com.png</url>
		<title>Arnaldo&#039;s Ramblings</title>
		<link>https://acmel.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://acmel.wordpress.com/osd.xml" title="Arnaldo&#039;s Ramblings" />
	<atom:link rel='hub' href='https://acmel.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Using &#8211;pid and &#8211;tid to record samples in specific threads</title>
		<link>https://acmel.wordpress.com/2011/02/10/using-pid-and-tid-to-record-samples-in-specific-threads/</link>
		<comments>https://acmel.wordpress.com/2011/02/10/using-pid-and-tid-to-record-samples-in-specific-threads/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 18:33:59 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[perf]]></category>
		<category><![CDATA[Tooling]]></category>

		<guid isPermaLink="false">http://acmel.wordpress.com/?p=107</guid>
		<description><![CDATA[To test that a patch I wrote to fix a problem reported on lkml I ended up writing a changeset comment I think its worth sharing here, as it demonstrates how to use the &#8211;pid and &#8211;tid command line options available in perf record and perf top, so here it goes. Jeff Moyer reported these [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=107&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>To test that a patch I wrote to fix a problem reported on lkml I ended up writing a changeset comment I think its worth sharing here, as it demonstrates how to use the <em>&#8211;pid</em> and <em>&#8211;tid</em> command line options available in <strong>perf record</strong> and <strong>perf top</strong>, so here it goes.</p>
<p>Jeff Moyer reported these messages:</p>
<pre>      Warning:  ... trying to fall back to cpu-clock-ticks
    
    couldn't open /proc/-1/status
    couldn't open /proc/-1/maps
    [ls output]
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.008 MB perf.data (~363 samples) ]</pre>
<p>    That lead me and David Ahern to see that something was fishy on the thread synthesizing routines, at least for the case where the workload is started from <strong>perf record</strong>, as -1 is the default for target_tid in <strong>perf record</strong> <em>&#8211;tid</em> parameter, so somehow we were trying to synthesize the <em>PERF_RECORD_MMAP</em> and <em>PERF_RECORD_COMM</em> events for the thread -1, a bug.</p>
<p>    So I investigated this and noticed that when we introduced support for recording a process and its threads using <em>&#8211;pid</em> some bugs were introduced and that the way to fix it was to instead of passing the target_tid to the event synthesizing routines we should better pass the thread_map that has the list of threads for a <em>&#8211;pid</em> or just the single thread for a <em>&#8211;tid</em>.</p>
<p>    Checked in the following ways:</p>
<p>    On a 8-way machine run <strong>cyclictest</strong>:</p>
<pre>    [root@emilia ~]# perf record cyclictest -a -t -n -p99 -i100 -d50
    policy: fifo: loadavg: 0.00 0.13 0.31 2/139 28798
    
    T: 0 (28791) P:99 I:100 C:  25072 Min:      4 Act:    5 Avg:    6 Max:     122
    T: 1 (28792) P:98 I:150 C:  16715 Min:      4 Act:    6 Avg:    5 Max:      27
    T: 2 (28793) P:97 I:200 C:  12534 Min:      4 Act:    5 Avg:    4 Max:       8
    T: 3 (28794) P:96 I:250 C:  10028 Min:      4 Act:    5 Avg:    5 Max:      96
    T: 4 (28795) P:95 I:300 C:   8357 Min:      5 Act:    6 Avg:    5 Max:      12
    T: 5 (28796) P:94 I:350 C:   7163 Min:      5 Act:    6 Avg:    5 Max:      12
    T: 6 (28797) P:93 I:400 C:   6267 Min:      4 Act:    5 Avg:    5 Max:       9
    T: 7 (28798) P:92 I:450 C:   5571 Min:      4 Act:    5 Avg:    5 Max:       9
    ^C[ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.108 MB perf.data (~4719 samples) ]
    
    [root@emilia ~]#</pre>
<p>    This will create one extra thread per CPU:</p>
<pre>  [root@emilia ~]# tuna -t cyclictest -CP
                          thread       ctxt_switches
        pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
     28825   OTHER     0     0xff      2169          671      cyclictest
      28832   FIFO    93        6     52338            1      cyclictest
      28833   FIFO    92        7     46524            1      cyclictest
      28826   FIFO    99        0    209360            1      cyclictest
      28827   FIFO    98        1    139577            1      cyclictest
      28828   FIFO    97        2    104686            0      cyclictest
      28829   FIFO    96        3     83751            1      cyclictest
      28830   FIFO    95        4     69794            1      cyclictest
      28831   FIFO    94        5     59825            1      cyclictest
    [root@emilia ~]#</pre>
<p>    So we should expect only samples for the above 9 threads when using the <em>&#8211;dump-raw-trace|-D</em> <strong>perf report</strong> switch to look at the column with the tid:</p>
<pre>    [root@emilia ~]# perf report -D | grep RECORD_SAMPLE | cut -d/ -f2 | cut -d: -f1 | sort | uniq -c
        629 28825
        110 28826
        491 28827
        308 28828
        198 28829
        621 28830
        225 28831
        203 28832
         89 28833
    [root@emilia ~]#</pre>
<p>    So for workloads started by <strong>perf record</strong> it seems to work, now for existing workloads, just ran <strong>cyclictest</strong> first, without <strong>perf record</strong>:</p>
<pre>    [root@emilia ~]# tuna -t cyclictest -CP
                          thread       ctxt_switches
        pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
     28859   OTHER     0     0xff       594          200      cyclictest
      28864   FIFO    95        4     16587            1      cyclictest
      28865   FIFO    94        5     14219            1      cyclictest
      28866   FIFO    93        6     12443            0      cyclictest
      28867   FIFO    92        7     11062            1      cyclictest
      28860   FIFO    99        0     49779            1      cyclictest
      28861   FIFO    98        1     33190            1      cyclictest
      28862   FIFO    97        2     24895            1      cyclictest
      28863   FIFO    96        3     19918            1      cyclictest
    [root@emilia ~]#</pre>
<p>    and then later did:</p>
<pre>    [root@emilia ~]# perf record --pid 28859 sleep 3
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.027 MB perf.data (~1195 samples) ]

    [root@emilia ~]#</pre>
<p>    To collect 3 seconds worth of samples for pid 28859 and its children:</p>
<pre>    [root@emilia ~]# perf report -D | grep RECORD_SAMPLE | cut -d/ -f2 | cut -d: -f1 | sort | uniq -c
         15 28859
         33 28860
         19 28861
         13 28862
         13 28863
         10 28864
         11 28865
          9 28866
        255 28867
    [root@emilia ~]#</pre>
<p>    Works, last thing is to check if looking at just one of those threads also works:</p>
<pre>    [root@emilia ~]# perf record --tid 28866 sleep 3
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.006 MB perf.data (~242 samples) ]
    [root@emilia ~]# perf report -D | grep RECORD_SAMPLE | cut -d/ -f2 | cut -d: -f1 | sort | uniq -c
          3 28866
    [root@emilia ~]#</pre>
<p>    Works too.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=107&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2011/02/10/using-pid-and-tid-to-record-samples-in-specific-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
		<item>
		<title>Friggin mistery&#8230;</title>
		<link>https://acmel.wordpress.com/2011/01/26/friggin-mistery/</link>
		<comments>https://acmel.wordpress.com/2011/01/26/friggin-mistery/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 19:44:16 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[Linux Kernel]]></category>
		<category><![CDATA[perf]]></category>
		<category><![CDATA[Tooling]]></category>

		<guid isPermaLink="false">http://acmel.wordpress.com/?p=95</guid>
		<description><![CDATA[I&#8217;m working on adding a thin python binding for the evsel and evlist abstractions I introduced in the perf tools when I stumbled on this, how peterz calls &#8220;friggin mistery mmap events&#8221;&#8230; Lets start with the simple python script that started this: import perf def main(): cpus = perf.cpu_map() threads = perf.thread_map() evsel = perf.evsel(task [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=95&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m working on adding a thin python binding for the evsel and evlist abstractions I introduced in the perf tools when I stumbled on this, how peterz calls &#8220;friggin mistery mmap events&#8221;&#8230;</p>
<p>Lets start with the simple python script that started this:</p>
<pre>
import perf

def main():
	cpus = perf.cpu_map()
	threads = perf.thread_map()
	evsel = perf.evsel(task = 1, comm = 1,
			   wakeup_events = 1, sample_period = 1,
			   sample_id_all = 1,
			   sample_type = perf.SAMPLE_PERIOD | perf.SAMPLE_CPU | perf.SAMPLE_TID)
	evsel.open(cpus = cpus, threads = threads);
	evlist = perf.evlist()
	evlist.add(evsel)
	evlist.mmap(cpus = cpus, threads = threads)
	while True:
		evlist.poll(timeout = -1)
		for cpu in cpus:
			event = evlist.read_on_cpu(cpu)
			if not event:
				continue
			print "cpu: %2d, pid: %4d, tid: %4d" % (event.sample_cpu,
								event.sample_pid,
								event.sample_tid),
			print event

if __name__ == '__main__':
    main()
</pre>
<p>So what does this script? It will ask the kernel perf infrastructure to generate events every time a thread is created and when they exit.</p>
<p>Running it:</p>
<pre>
[root@emilia linux]# tools/perf/python/twatch.py
cpu:  0, pid:    0, tid:    0 { type: mmap, pid: 0, tid: 0, start: 0, length: 0x694ae632, offset: 0, filename:  }
cpu:  3, pid:    0, tid:    0 { type: mmap, pid: 0, tid: 0, start: 0x3, length: 0xc804d5ca, offset: 0, filename:  }
cpu:  6, pid:    0, tid:    0 { type: mmap, pid: 0, tid: 0, start: 0x6, length: 0xbba638e9, offset: 0, filename:  }
cpu:  1, pid: 1893, tid: 1893 { type: mmap, pid: 1893, tid: 1893, start: 0x1, length: 0x7899c915, offset: 0, filename:  }
cpu:  2, pid:   43, tid:   43 { type: mmap, pid: 43, tid: 43, start: 0x2, length: 0xca5a622e, offset: 0, filename:  }
cpu:  5, pid: 1523, tid: 1525 { type: mmap, pid: 1523, tid: 1525, start: 0x5, length: 0x9a4cd05f, offset: 0, filename:  }
cpu:  4, pid:    0, tid:    0 { type: mmap, pid: 0, tid: 0, start: 0x4, length: 0x7a4d4989, offset: 0, filename:  }

cpu:  2, pid: 1543, tid: 1543 { type: fork, pid: 1970, ppid: 1543, tid: 1970, ptid: 1543, time: 515738951270}
cpu:  6, pid: 1970, tid: 1970 { type: comm, pid: 1970, tid: 1970, comm: sshd }
cpu:  2, pid:   60, tid:   60 { type: fork, pid: 1971, ppid: 60, tid: 1971, ptid: 60, time: 515743769565}
cpu:  3, pid: 1971, tid: 1971 { type: fork, pid: 1972, ppid: 1971, tid: 1972, ptid: 1971, time: 515743810636}
cpu:  7, pid: 1972, tid: 1972 { type: comm, pid: 1972, tid: 1972, comm: modprobe }
cpu:  7, pid: 1972, tid: 1972 { type: exit, pid: 1972, ppid: 1972, tid: 1972, ptid: 1972, time: 515745080846}
cpu:  1, pid: 1971, tid: 1971 { type: exit, pid: 1971, ppid: 1971, tid: 1971, ptid: 1971, time: 515746027272}
cpu:  7, pid: 1972, tid: 1972 { type: exit, pid: 1972, ppid: 1972, tid: 1972, ptid: 1972, time: 515745086164}
cpu:  1, pid: 1971, tid: 1971 { type: exit, pid: 1971, ppid: 1971, tid: 1971, ptid: 1971, time: 515746034982}
cpu:  7, pid: 1970, tid: 1970 { type: fork, pid: 1973, ppid: 1970, tid: 1973, ptid: 1970, time: 515747725784}
cpu:  0, pid: 1278, tid: 1281 { type: fork, pid: 1278, ppid: 1278, tid: 1974, ptid: 1281, time: 515803257141}
cpu:  3, pid: 1278, tid: 1974 { type: comm, pid: 1278, tid: 1974, comm: rs:main Q:Reg }
cpu:  2, pid: 1973, tid: 1973 { type: exit, pid: 1973, ppid: 1973, tid: 1973, ptid: 1973, time: 515803913973}
cpu:  0, pid: 1970, tid: 1970 { type: fork, pid: 1975, ppid: 1970, tid: 1975, ptid: 1970, time: 515804961019}
cpu:  2, pid: 1973, tid: 1973 { type: exit, pid: 1973, ppid: 1973, tid: 1973, ptid: 1973, time: 515803917806}
cpu:  3, pid: 1975, tid: 1975 { type: fork, pid: 1976, ppid: 1975, tid: 1976, ptid: 1975, time: 515808031062}
cpu:  7, pid: 1976, tid: 1976 { type: comm, pid: 1976, tid: 1976, comm: bash }
</pre>
<p>Everything seems nice except for those first 8 mmap events, one per CPU, that I didn&#8217;t ask for in the evsel (event selector) constructor, here:</p>
<pre>
	evsel = perf.evsel(task = 1, comm = 1,
			   wakeup_events = 1, sample_period = 1,
			   sample_id_all = 1,
			   sample_type = perf.SAMPLE_PERIOD | perf.SAMPLE_CPU | perf.SAMPLE_TID
</pre>
<p>See &#8216;task = 1&#8242;? That asks for fork and exit events to be generated in the ring buffer, &#8216;comm = 1&#8242; asks for the COMM (short, 16 bytes max, process name), but I didn&#8217;t specified &#8216;mmap = 1&#8242;, to ask for events to be generated when executable mmaps take place&#8230;</p>
<p>As I know that those events are stashed in the ring buffer by the perf_event_mmap_output routine, I thought about using &#8216;perf probe&#8217; to figure out what was causing those events, so I did:</p>
<pre>
[root@emilia linux]# perf probe mmap_out=perf_event_mmap_output
Add new event:
  probe:mmap_out       (on perf_event_mmap_output)

You can now use it on all perf tools, such as:

	perf record -e probe:mmap_out -aR sleep 1

[root@emilia linux]#
</pre>
<p>That created a new event, one that will take place every time the perf_event_mmap_output is called. To reduce typing I added it aliased to &#8216;mmap_out&#8217;.</p>
<p>Now lets use it, asking for callchains to be taken every time this event happens:</p>
<pre>
[root@emilia linux]# perf record -e probe:mmap_out -g tools/perf/python/twatch.py 
cpu:  7, pid:    0, tid:    0 { type: mmap, pid: 0, tid: 0, start: 0x7, length: 0xc6b8162f, offset: 0, filename:  }
cpu:  2, pid:    0, tid:    0 { type: mmap, pid: 0, tid: 0, start: 0x2, length: 0xdf243434, offset: 0, filename:  }
cpu:  3, pid:    0, tid:    0 { type: mmap, pid: 0, tid: 0, start: 0x3, length: 0xf9f2d7ab, offset: 0, filename:  }
cpu:  5, pid: 1893, tid: 1893 { type: mmap, pid: 1893, tid: 1893, start: 0x5, length: 0xa00963c1, offset: 0, filename:  }
cpu:  1, pid:    0, tid:    0 { type: mmap, pid: 0, tid: 0, start: 0x1, length: 0x95744474, offset: 0, filename:  }
cpu:  0, pid: 1893, tid: 1893 { type: mmap, pid: 1893, tid: 1893, start: 0, length: 0xa0655031, offset: 0, filename:  }
cpu:  4, pid:    0, tid:    0 { type: mmap, pid: 0, tid: 0, start: 0x4, length: 0xb2b21883, offset: 0, filename:  }
^CTraceback (most recent call last):
  File "tools/perf/python/twatch.py", line 41, in 
    main()
[ perf record: Woken up 1 times to write data ]
  File "tools/perf/python/twatch.py", line 30, in main
    evlist.poll(timeout = -1)
[ perf record: Captured and wrote 0.012 MB perf.data (~545 samples) ]
KeyboardInterrupt
[root@emilia linux]#
</pre>
<p>And there they are, lets see what caused them?</p>
<pre>
[root@emilia linux]# perf report --stdio
# Events: 30 
#
# Overhead    Command      Shared Object                  Symbol
# ........  .........  .................  ......................
#
   100.00%  twatch.py  [kernel.kallsyms]  [k] perf_event_mmap_output
            |
            --- perf_event_mmap_output
                perf_event_mmap
               |          
               |--96.67%-- mmap_region
               |          do_mmap_pgoff
               |          |          
               |          |--93.10%-- sys_mmap_pgoff
               |          |          sys_mmap
               |          |          system_call
               |          |          __mmap
               |          |          |          
               |          |           --100.00%-- _dl_map_object
               |          |          
               |           --6.90%-- elf_map
               |                     load_elf_binary
               |                     search_binary_handler
               |                     load_script
               |                     search_binary_handler
               |                     do_execve
               |                     sys_execve
               |                     stub_execve
               |                     0x3d068a6dd7
               |          
                --3.33%-- install_special_mapping
                          arch_setup_additional_pages
                          load_elf_binary
                          search_binary_handler
                          load_script
                          search_binary_handler
                          do_execve
                          sys_execve
                          stub_execve
                          0x3d068a6dd7

#
# (For a higher level overview, try: perf report --sort comm,dso)
#
[root@emilia linux]# 
</pre>
<p>Ok, loading ELF files, the python interpreter&#8230;</p>
<p>The investigation is still underway, but using the perf tools in this way sounds so cool that I thought about sharing it here <img src='https://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=95&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2011/01/26/friggin-mistery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
		<item>
		<title>Cross platform perf.data analysis support</title>
		<link>https://acmel.wordpress.com/2010/01/14/cross-platform-perf-data-analysis-support/</link>
		<comments>https://acmel.wordpress.com/2010/01/14/cross-platform-perf-data-analysis-support/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 14:55:38 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[perf]]></category>

		<guid isPermaLink="false">http://acmel.wordpress.com/?p=86</guid>
		<description><![CDATA[There are still some problems related to loading vmlinux files, but those are unrelated to the feature implemented in this patch, so will get fixed in the next patches, but here are some results: 1. collect perf.data file on a Fedora 12 machine, x86_64, 64-bit userland 2. transfer it to a Debian Testing machine, PARISC64, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=86&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>There are still some problems related to loading vmlinux files, but those are<br />
unrelated to the feature implemented in this patch, so will get fixed in the<br />
next patches, but here are some results:</p>
<p>1. collect perf.data file on a Fedora 12 machine, x86_64, 64-bit userland</p>
<p>2. transfer it to a Debian Testing machine, PARISC64, 32-bit userland</p>
<p>acme@parisc:~/git/linux-2.6-tip$ perf buildid-list | head -5<br />
74f9930ee94475b6b3238caf3725a50d59cb994b [kernel.kallsyms]<br />
55fdd56670453ea66c011158c4b9d30179c1d049 /lib/modules/2.6.33-rc4-tip+/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko<br />
41adff63c730890480980d5d8ba513f1c216a858 /lib/modules/2.6.33-rc4-tip+/kernel/net/ipv4/netfilter/iptable_nat.ko<br />
90a33def1077bb8e97b8a78546dc96c2de62df46 /lib/modules/2.6.33-rc4-tip+/kernel/net/ipv4/netfilter/nf_nat.ko<br />
984c7bea90ce1376d5c8e7ef43a781801286e62d /lib/modules/2.6.33-rc4-tip+/kernel/drivers/net/tun.ko</p>
<p>acme@parisc:~/git/linux-2.6-tip$ perf buildid-list | tail -5<br />
22492f3753c6a67de5c7ccbd6b863390c92c0723 /usr/lib64/libXt.so.6.0.0<br />
353802bb7e1b895ba43507cc678f951e778e4c6f /usr/lib64/libMagickCore.so.2.0.0<br />
d10c2897558595efe7be8b0584cf7e6398bc776c /usr/lib64/libfprint.so.0.0.0<br />
a83ecfb519a788774a84d5ddde633c9ba56c03ab /home/acme/bin/perf<br />
d3ca765a8ecf257d263801d7ad8c49c189082317 /usr/lib64/libdwarf.so.0.0<br />
acme@parisc:~/git/linux-2.6-tip$</p>
<p>acme@parisc:~/git/linux-2.6-tip$ perf report &#8211;sort comm<br />
The file [kernel.kallsyms] cannot be used, trying to use /proc/kallsyms&#8230;</p>
<p>^^^^ The problem related to vmlinux handling, it shouldn&#8217;t be trying this<br />
^^^^ rather alien /proc/kallsyms at all&#8230;</p>
<p>/lib64/libpthread-2.10.2.so with build id 5c68f7afeb33309c78037e374b0deee84dd441f6 not found, continuing without symbols<br />
/lib64/libc-2.10.2.so with build id eb4ec8fa8b2a5eb18cad173c92f27ed8887ed1c1 not found, continuing without symbols<br />
/home/acme/bin/perf with build id a83ecfb519a788774a84d5ddde633c9ba56c03ab not found, continuing without symbols<br />
/usr/sbin/openvpn with build id f2037a091ef36b591187a858d75e203690ea9409 not found, continuing without symbols<br />
Failed to open /lib/modules/2.6.33-rc4-tip+/kernel/drivers/net/e1000e/e1000e.ko, continuing without symbols<br />
Failed to open /lib/modules/2.6.33-rc4-tip+/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko, continuing without symbols<br />
&lt;SNIP more complaints about not finding the right build-ids,<br />
those will have to wait for &#8216;perf archive&#8217; or plain<br />
copying what was collected by &#8216;perf record&#8217; on the x86_64,<br />
source machine, see further below for an example of this&gt;</p>
<p># Samples: 293085637<br />
#<br />
# Overhead          Command<br />
# &#8230;&#8230;..  &#8230;&#8230;&#8230;&#8230;&#8230;<br />
#<br />
61.70%             find<br />
23.50%             perf<br />
5.86%          swapper<br />
3.12%             sshd<br />
2.39%             init<br />
0.87%             bash<br />
0.86%            sleep<br />
0.59%      dbus-daemon<br />
0.25%             hald<br />
0.24%   NetworkManager<br />
0.19%  hald-addon-rfki<br />
0.15%          openvpn<br />
0.07%             phy0<br />
0.07%         events/0<br />
0.05%          iwl3945<br />
0.05%         events/1<br />
0.03%      kondemand/0<br />
acme@parisc:~/git/linux-2.6-tip$</p>
<p>Which matches what we get when running the same command for the same perf.data<br />
file on the F12, x86_64, source machine:</p>
<p>[root@doppio linux-2.6-tip]# perf report &#8211;sort comm<br />
# Samples: 293085637<br />
#<br />
# Overhead          Command<br />
# &#8230;&#8230;..  &#8230;&#8230;&#8230;&#8230;&#8230;<br />
#<br />
61.70%             find<br />
23.50%             perf<br />
5.86%          swapper<br />
3.12%             sshd<br />
2.39%             init<br />
0.87%             bash<br />
0.86%            sleep<br />
0.59%      dbus-daemon<br />
0.25%             hald<br />
0.24%   NetworkManager<br />
0.19%  hald-addon-rfki<br />
0.15%          openvpn<br />
0.07%             phy0<br />
0.07%         events/0<br />
0.05%          iwl3945<br />
0.05%         events/1<br />
0.03%      kondemand/0<br />
[root@doppio linux-2.6-tip]#</p>
<p>The other modes work as well, modulo the problem with vmlinux:</p>
<p>acme@parisc:~/git/linux-2.6-tip$ perf report &#8211;sort comm,dso 2&gt; /dev/null | head -15<br />
# Samples: 293085637<br />
#<br />
# Overhead          Command                      Shared Object<br />
# &#8230;&#8230;..  &#8230;&#8230;&#8230;&#8230;&#8230;  &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br />
#<br />
35.11%             find                   ffffffff81002b5a<br />
18.25%             perf                   ffffffff8102235f<br />
16.17%             find  libc-2.10.2.so<br />
9.07%             find  find<br />
5.80%          swapper                   ffffffff8102235f<br />
3.95%             perf  libc-2.10.2.so<br />
2.33%             init                   ffffffff810091b9<br />
1.65%             sshd  libcrypto.so.0.9.8k<br />
1.35%             find  [e1000e]<br />
0.68%            sleep  libc-2.10.2.so<br />
acme@parisc:~/git/linux-2.6-tip$</p>
<p>And the lack of the right buildids:</p>
<p>acme@parisc:~/git/linux-2.6-tip$ perf report &#8211;sort comm,dso,symbol 2&gt; /dev/null | head -15<br />
# Samples: 293085637<br />
#<br />
# Overhead          Command                      Shared Object  Symbol<br />
# &#8230;&#8230;..  &#8230;&#8230;&#8230;&#8230;&#8230;  &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;  &#8230;&#8230;<br />
#<br />
35.11%             find                   ffffffff81002b5a  [k] 0xffffffff81002b5a<br />
18.25%             perf                   ffffffff8102235f  [k] 0xffffffff8102235f<br />
16.17%             find  libc-2.10.2.so                     [.] 0&#215;00000000045782<br />
9.07%             find  find                               [.] 0x0000000000fb0e<br />
5.80%          swapper                   ffffffff8102235f  [k] 0xffffffff8102235f<br />
3.95%             perf  libc-2.10.2.so                     [.] 0x0000000007f398<br />
2.33%             init                   ffffffff810091b9  [k] 0xffffffff810091b9<br />
1.65%             sshd  libcrypto.so.0.9.8k                [.] 0&#215;00000000105440<br />
1.35%             find  [e1000e]                           [k] 0&#215;00000000010948<br />
0.68%            sleep  libc-2.10.2.so                     [.] 0x0000000011ad5b<br />
acme@parisc:~/git/linux-2.6-tip$</p>
<p>But if we:</p>
<p>acme@parisc:~/git/linux-2.6-tip$ ls ~/.debug<br />
ls: cannot access /home/acme/.debug: No such file or directory<br />
acme@parisc:~/git/linux-2.6-tip$ mkdir -p ~/.debug/lib64/libc-2.10.2.so/<br />
acme@parisc:~/git/linux-2.6-tip$ scp doppio:.debug/lib64/libc-2.10.2.so/* ~/.debug/lib64/libc-2.10.2.so/<br />
acme@doppio&#8217;s password:<br />
eb4ec8fa8b2a5eb18cad173c92f27ed8887ed1c1                   100% 1783KB 714.7KB/s   00:02<br />
acme@parisc:~/git/linux-2.6-tip$ mkdir -p ~/.debug/.build-id/eb<br />
acme@parisc:~/git/linux-2.6-tip$ ln -s ../../lib64/libc-2.10.2.so/eb4ec8fa8b2a5eb18cad173c92f27ed8887ed1c1 ~/.debug/.build-id/eb/4ec8fa8b2a5eb18cad173c92f27ed8887ed1c1<br />
acme@parisc:~/git/linux-2.6-tip$ perf report &#8211;dsos libc-2.10.2.so 2&gt; /dev/null</p>
<p># dso: libc-2.10.2.so<br />
# Samples: 64281170<br />
#<br />
# Overhead          Command  Symbol<br />
# &#8230;&#8230;..  &#8230;&#8230;&#8230;&#8230;&#8230;  &#8230;&#8230;<br />
#<br />
14.98%             perf  [.] __GI_strcmp<br />
12.30%             find  [.] __GI_memmove<br />
9.25%             find  [.] _int_malloc<br />
7.60%             find  [.] _IO_vfprintf_internal<br />
6.10%             find  [.] _IO_new_file_xsputn<br />
6.02%             find  [.] __GI_close<br />
3.08%             find  [.] _IO_file_overflow_internal<br />
3.08%             find  [.] malloc_consolidate<br />
3.08%             find  [.] _int_free<br />
3.08%             find  [.] __strchrnul<br />
3.08%             find  [.] __getdents64<br />
3.08%             find  [.] __write_nocancel<br />
3.08%            sleep  [.] __GI__dl_addr<br />
3.08%             sshd  [.] __libc_select<br />
3.08%             find  [.] _IO_new_file_write<br />
3.07%             find  [.] _IO_new_do_write<br />
3.06%             find  [.] __GI___errno_location<br />
3.05%             find  [.] __GI___libc_malloc<br />
3.04%             perf  [.] __GI_memcpy<br />
1.71%             find  [.] __fprintf_chk<br />
1.29%             bash  [.] __gconv_transform_utf8_internal<br />
0.79%      dbus-daemon  [.] __GI_strlen<br />
#<br />
# (For a higher level overview, try: perf report &#8211;sort comm,dso)<br />
#<br />
acme@parisc:~/git/linux-2.6-tip$</p>
<p>Which matches what we get on the source, F12, x86_64 machine:</p>
<p>[root@doppio linux-2.6-tip]# perf report &#8211;dsos libc-2.10.2.so<br />
# dso: libc-2.10.2.so<br />
# Samples: 64281170<br />
#<br />
# Overhead          Command  Symbol<br />
# &#8230;&#8230;..  &#8230;&#8230;&#8230;&#8230;&#8230;  &#8230;&#8230;<br />
#</p>
<p>14.98%             perf  [.] __GI_strcmp<br />
12.30%             find  [.] __GI_memmove<br />
9.25%             find  [.] _int_malloc<br />
7.60%             find  [.] _IO_vfprintf_internal<br />
6.10%             find  [.] _IO_new_file_xsputn<br />
6.02%             find  [.] __GI_close<br />
3.08%             find  [.] _IO_file_overflow_internal<br />
3.08%             find  [.] malloc_consolidate<br />
3.08%             find  [.] _int_free<br />
3.08%             find  [.] __strchrnul<br />
3.08%             find  [.] __getdents64<br />
3.08%             find  [.] __write_nocancel<br />
3.08%            sleep  [.] __GI__dl_addr<br />
3.08%             sshd  [.] __libc_select<br />
3.08%             find  [.] _IO_new_file_write<br />
3.07%             find  [.] _IO_new_do_write<br />
3.06%             find  [.] __GI___errno_location<br />
3.05%             find  [.] __GI___libc_malloc<br />
3.04%             perf  [.] __GI_memcpy<br />
1.71%             find  [.] __fprintf_chk<br />
1.29%             bash  [.] __gconv_transform_utf8_internal<br />
0.79%      dbus-daemon  [.] __GI_strlen<br />
#<br />
# (For a higher level overview, try: perf report &#8211;sort comm,dso)<br />
#<br />
[root@doppio linux-2.6-tip]#</p>
<p>So I think this is really, really nice in that it demonstrates the portability<br />
of perf.data files and the use of build-ids across such aliens worlds <img src='https://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>There are some things to fix tho, like the bitmap on the header, but things are<br />
looking good.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=86&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2010/01/14/cross-platform-perf-data-analysis-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
		<item>
		<title>perf on parisc64</title>
		<link>https://acmel.wordpress.com/2010/01/08/perf-on-parisc64/</link>
		<comments>https://acmel.wordpress.com/2010/01/08/perf-on-parisc64/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 21:28:38 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[perf]]></category>

		<guid isPermaLink="false">http://acmel.wordpress.com/?p=82</guid>
		<description><![CDATA[It built, after removing -fstack-protector-all that is not available for that target and suppressing the libelf-dev tests. Transferred a perf.data file created in a i386 machine and&#8230; it fails. Endianness issues, I guess. Will fully investigate this in the next days.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=82&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>It built, after removing <strong>-fstack-protector-all</strong> that is not available for that target and suppressing the <em>libelf-dev</em> tests.</p>
<p>Transferred a <em>perf.data</em> file created in a i386 machine and&#8230; it fails. Endianness issues, I guess. Will fully investigate this in the next days.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=82&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2010/01/08/perf-on-parisc64/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
		<item>
		<title>Modules encoded</title>
		<link>https://acmel.wordpress.com/2010/01/07/modules-encoded/</link>
		<comments>https://acmel.wordpress.com/2010/01/07/modules-encoded/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 22:08:26 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[perf]]></category>

		<guid isPermaLink="false">http://acmel.wordpress.com/?p=79</guid>
		<description><![CDATA[Ended up encoding modules as PERF_RECORD_MMAP events details at: http://lkml.org/lkml/2010/1/7/370. Lets see how people react.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=79&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ended up encoding modules as PERF_RECORD_MMAP events details at: <a href="http://lkml.org/lkml/2010/1/7/370" rel="nofollow">http://lkml.org/lkml/2010/1/7/370</a>. Lets see how people react.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=79&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2010/01/07/modules-encoded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
		<item>
		<title>Recording where modules were loaded in perf.data</title>
		<link>https://acmel.wordpress.com/2010/01/06/recording-where-modules-were-loaded-in-perf-data/</link>
		<comments>https://acmel.wordpress.com/2010/01/06/recording-where-modules-were-loaded-in-perf-data/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 00:50:35 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[perf]]></category>

		<guid isPermaLink="false">http://acmel.wordpress.com/?p=74</guid>
		<description><![CDATA[While trying to fix the build-id generation so as not to produce duplicates, I noticed another problem that needs to be solved before we can introduce perf archive and be able to analyse a perf.data file recorded in one machine on another, possibly with a different architecture and OS. The problem is similar to the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=74&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>While trying to fix the build-id generation so as not to produce duplicates, I noticed another problem that needs to be solved before we can introduce <strong>perf archive</strong> and be able to analyse a <em>perf.data</em> file recorded in one machine on another, possibly with a different architecture and OS.</p>
<p>The problem is similar to the relocatable kernel problem solved today: we need to have perf events that state where kernel modules were loaded, right now we are using the current <em>/proc/modules </em>to get that information, but it can no longer have some modules, unloaded after <strong>perf record </strong>and before <strong>perf report</strong>.</p>
<p>To properly fix that we need the kernel infrastructure to emit <strong>PERF_MODULE_LOAD/PERF_MODULE_UNLOAD</strong> events just like it does when DSOs get loaded by means of executable mmap, when it emits <strong>PERF_MMAP/PERF_MUNMAP</strong> events, so that there are no races and we can support long running <strong>perf record</strong> sessions where modules get loaded/unloaded.</p>
<p>Tomorrow I&#8217;ll work on synthesizing such events in <strong>perf record</strong> and then when all works we can do the kernel bits and stop synthesizing then in user space.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=74&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2010/01/06/recording-where-modules-were-loaded-in-perf-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
		<item>
		<title>dwarves on the spotlight</title>
		<link>https://acmel.wordpress.com/2009/02/05/dwarves-on-the-spotlight/</link>
		<comments>https://acmel.wordpress.com/2009/02/05/dwarves-on-the-spotlight/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 02:07:18 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[Kernel Hacking]]></category>

		<guid isPermaLink="false">http://oops.ghostprotocols.net:81/blog/?p=71</guid>
		<description><![CDATA[Recently I saw somebody boasting that Linus now uses Fedora and I don&#8217;t know why I found it silly. But then when Ingo Molnar even mentioned the name of the package where codiff is available I found that I can be silly too<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=71&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Recently I saw somebody boasting that Linus now uses Fedora and I don&#8217;t know why I found it silly. But then when Ingo Molnar even mentioned the name of the package where codiff is available I found that I can be silly too <img src='https://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=71&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2009/02/05/dwarves-on-the-spotlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
		<item>
		<title>Thank you Jeff &amp; Aristeu</title>
		<link>https://acmel.wordpress.com/2008/12/12/thank-you-jeff-aristeu/</link>
		<comments>https://acmel.wordpress.com/2008/12/12/thank-you-jeff-aristeu/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 00:58:08 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://oops.ghostprotocols.net:81/blog/?p=70</guid>
		<description><![CDATA[Someplace -&#62; My home: Aristeu Rozanski My home -&#62; usefulness: Jeff Garzik (best guess) [root@doppio tb]# mount &#124; grep tera /dev/mapper/teravg1-teralv1 on /media/tb type ext3 (rw) [root@doppio tb]# [root@doppio tb]# lspci &#124; grep SATA 00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02) 16:00.0 Mass storage controller: Silicon Image, Inc. SiI [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=70&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Someplace -&gt; My home: Aristeu Rozanski<br />
My home -&gt; usefulness: Jeff Garzik (best guess)</p>
<p>[root@doppio tb]# mount | grep tera<br />
/dev/mapper/teravg1-teralv1 on /media/tb type ext3 (rw)<br />
[root@doppio tb]#<br />
[root@doppio tb]# lspci | grep SATA<br />
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02)<br />
16:00.0 Mass storage controller: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller (rev 01)<br />
[root@doppio tb]#<br />
root@doppio tb]# df<br />
Filesystem           1K-blocks      Used Available Use% Mounted on<br />
/dev/mapper/VolGroup00-LogVol01<br />
                      16251816  14685780    727176  96% /<br />
/dev/mapper/VolGroup00-LogVol02<br />
                      74116232  24936588  45355968  36% /home<br />
/dev/sda1              2030736    163560   1762356   9% /boot<br />
tmpfs                  1025588      2460   1023128   1% /dev/shm<br />
/dev/sdc1             57685532  43834840  10920440  81% /media/disk-1<br />
/dev/mapper/teravg1-teralv1<br />
                     961428808 428881904 483709068  47% /media/tb<br />
[root@doppio tb]#</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=70&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2008/12/12/thank-you-jeff-aristeu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
		<item>
		<title>tuna &amp; the oscilloscope</title>
		<link>https://acmel.wordpress.com/2008/07/30/tuna-the-oscilloscope/</link>
		<comments>https://acmel.wordpress.com/2008/07/30/tuna-the-oscilloscope/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 13:57:58 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[Kernel Hacking]]></category>
		<category><![CDATA[Tooling]]></category>

		<guid isPermaLink="false">http://oops.ghostprotocols.net:81/blog/?p=69</guid>
		<description><![CDATA[Since I haven&#8217;t blogged about these toys, please take a look at Carsten&#8217;s article at OSADL and perhaps at my OLS 2008 paper too.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=69&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Since I haven&#8217;t blogged about these toys, please take a look at <a href="http://www.osadl.org/Single-View.111+M5d6d15531f8.0.html">Carsten&#8217;s article</a> at OSADL and perhaps at <a href="http://ols.fedoraproject.org/OLS/Reprints-2008/melo-reprint.pdf">my OLS 2008 paper</a> too.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/acmel.wordpress.com/69/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/acmel.wordpress.com/69/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=69&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2008/07/30/tuna-the-oscilloscope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
		<item>
		<title>right to self-defense</title>
		<link>https://acmel.wordpress.com/2008/06/12/right-to-self-defense/</link>
		<comments>https://acmel.wordpress.com/2008/06/12/right-to-self-defense/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 02:40:47 +0000</pubDate>
		<dc:creator>acmel</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://oops.ghostprotocols.net:81/blog/?p=68</guid>
		<description><![CDATA[Cool, gitmo is located in the free world after all.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=68&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Cool, gitmo is located in the free world after all.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/acmel.wordpress.com/68/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/acmel.wordpress.com/68/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/acmel.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/acmel.wordpress.com/68/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=acmel.wordpress.com&#038;blog=11265254&#038;post=68&#038;subd=acmel&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://acmel.wordpress.com/2008/06/12/right-to-self-defense/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="https://2.gravatar.com/avatar/e86e7223325b1a015330c0681ccd7eb6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">acmel</media:title>
		</media:content>
	</item>
	</channel>
</rss>
