<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>[PATCH 05/13] perf tools: Make perf_evlist__create_maps() take struct perf_target</title>
        <description> Now we have all information that needed to create cpu/thread maps
in struct perf_target, it'd be better using it as an argument.

Signed-off-by: Namhyung Kim &amp;lt;namhyung.kim@lge.com&amp;gt;
---
 tools/perf/builtin-record.c |    4 +---
 tools/perf/builtin-test.c   |    7 ++++---
 tools/perf/builtin-top.c    |    4 +---
 tools/perf/util/evlist.c    |   12 +++++++-----
 tools/perf/util/evlist.h    |    4 ++--
 5 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 3596ccab6d3b..d16590942cec 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -891,9 +891,7 @@ int cmd_record(int argc, const char **argv, const char *prefix __used)
 	    rec-&amp;gt;opts.target.uid == UINT_MAX - 1)
 		goto out_free_fd;
 
-	if (perf_evlist__create_maps(evsel_list, rec-&amp;gt;opts.target.pid,
-				     rec-&amp;gt;opts.target.tid, rec-&amp;gt;opts.target.uid,
-				     rec-&amp;gt;opts.target.cpu_list) &amp;lt; 0)
+	if (perf_evlist__create_maps(evsel_list, &amp;amp;rec-&amp;gt;opts.target) &amp;lt; 0)
 		usage_with_options(record_usage, record_options);
 
 	list_for_each_entry(pos, &amp;amp;evsel_list-&amp;gt;entries, node) {
diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c
index e9b256920da0..a281284ee2f5 100644
--- a/tools/perf/builtin-test.c
+++ b/tools/perf/builtin-test.c
@@ -1165,6 +1165,9 @@ realloc:
 static int test__PERF_RECORD(void)
 {
 	struct perf_record_opts opts = {
+		.target = {
+			.uid = UINT_MAX,
+		},
 		.no_delay   = true,
 		.freq	    = 10,
 		.mmap_pages = 256,
@@ -1207,9 +1210,7 @@ static int test__PERF_RECORD(void)
 	 * perf_evlist__prepare_workload we'll fill in the only thread
 	 * we're monitoring, the one forked there.
 	 */
-	err = perf_evlist__create_maps(evlist, opts.target.pid,
-				       opts.target.tid, UINT_MAX,
-				       opts.target.cpu_list);
+	err = perf_evlist__create_maps(evlist, &amp;amp;opts.target);
 	if (err &amp;lt; 0) {
 		pr_debug(&amp;quot;Not enough memory to create thread/cpu maps\n&amp;quot;);
 		goto out_delete_evlist;
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 4f47952eddbd..2a0ec09b9b77 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -1258,9 +1258,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
 	if (top.target.uid_str != NULL &amp;amp;&amp;amp; top.target.uid == UINT_MAX - 1)
 		goto out_delete_evlist;
 
-	if (perf_evlist__create_maps(top.evlist, top.target.pid,
-				     top.target.tid, top.target.uid,
-				     top.target.cpu_list) &amp;lt; 0)
+	if (perf_evlist__create_maps(top.evlist, &amp;amp;top.target) &amp;lt; 0)
 		usage_with_options(top_usage, options);
 
 	if (!top.evlist-&amp;gt;nr_entries &amp;amp;&amp;amp;
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index 7080901a2717..a43e2c56d1c6 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -599,18 +599,20 @@ int perf_evlist__mmap(struct perf_evlist *evlist, unsigned int pages,
 	return perf_evlist__mmap_per_cpu(evlist, prot, mask);
 }
 
-int perf_evlist__create_maps(struct perf_evlist *evlist, const char *target_pid,
-			     const char *target_tid, uid_t uid, const char *cpu_list)
+int perf_evlist__create_maps(struct perf_evlist *evlist,
+			     struct perf_target *target)
 {
-	evlist-&amp;gt;threads = thread_map__new_str(target_pid, target_tid, uid);
+	evlist-&amp;gt;threads = thread_map__new_str(target-&amp;gt;pid, target-&amp;gt;tid,
+					      target-&amp;gt;uid);
 
 	if (evlist-&amp;gt;threads == NULL)
 		return -1;
 
-	if (uid != UINT_MAX || (cpu_list == NULL &amp;amp;&amp;amp; target_tid))
+	if (target-&amp;gt;uid != UINT_MAX ||
+	    (target-&amp;gt;cpu_list == NULL &amp;amp;&amp;amp; target-&amp;gt;tid))
 		evlist-&amp;gt;cpus = cpu_map__dummy_new();
 	else
-		evlist-&amp;gt;cpus = cpu_map__new(cpu_list);
+		evlist-&amp;gt;cpus = cpu_map__new(target-&amp;gt;cpu_list);
 
 	if (evlist-&amp;gt;cpus == NULL)
 		goto out_delete_threads;
diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h
index 21f1c9e57f13..58abb63ac13a 100644
--- a/tools/perf/util/evlist.h
+++ b/tools/perf/util/evlist.h
@@ -106,8 +106,8 @@ static inline void perf_evlist__set_maps(struct perf_evlist *evlist,
 	evlist-&amp;gt;threads	= threads;
 }
 
-int perf_evlist__create_maps(struct perf_evlist *evlist, const char *target_pid,
-			     const char *tid, uid_t uid, const char *cpu_list);
+int perf_evlist__create_maps(struct perf_evlist *evlist,
+			     struct perf_target *target);
 void perf_evlist__delete_maps(struct perf_evlist *evlist);
 int perf_evlist__set_filters(struct perf_evlist *evlist);
 
-- 
1.7.10

--
To unsubscribe from this list: send the line &amp;quot;unsubscribe linux-kernel&amp;quot; in
the body of a message to &amp;#109;&amp;#97;&amp;#106;&amp;#111;&amp;#114;&amp;#100;&amp;#111;&amp;#109;&amp;#111;&amp;#64;&amp;#118;&amp;#103;&amp;#101;&amp;#114;&amp;#46;&amp;#107;&amp;#101;&amp;#114;&amp;#110;&amp;#101;&amp;#108;&amp;#46;&amp;#111;&amp;#114;&amp;#103;
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/</description>
        <link>http://www.serverphorums.com/read.php?12,486129,486129#msg-486129</link>
        <lastBuildDate>Wed, 22 May 2013 23:16:53 +0200</lastBuildDate>
        <generator>Phorum 5.2.18</generator>
        <item>
            <guid>http://www.serverphorums.com/read.php?12,486129,494303#msg-494303</guid>
            <title>[tip:perf/core] perf evlist: Make create_maps()  take struct perf_target</title>
            <link>http://www.serverphorums.com/read.php?12,486129,494303#msg-494303</link>
            <description><![CDATA[ Commit-ID:  b809ac100e2f12ebf1b58ff522dba15651a77d27<br />
Gitweb:     <a href="http://git.kernel.org/tip/b809ac100e2f12ebf1b58ff522dba15651a77d27" target="_blank"  rel="nofollow">http://git.kernel.org/tip/b809ac100e2f12ebf1b58ff522dba15651a77d27</a><br />
Author:     Namhyung Kim &lt;namhyung.kim@lge.com&gt;<br />
AuthorDate: Thu, 26 Apr 2012 14:15:19 +0900<br />
Committer:  Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;<br />
CommitDate: Wed, 2 May 2012 15:23:11 -0300<br />
<br />
perf evlist: Make create_maps() take struct perf_target<br />
<br />
Now we have all information that needed to create cpu/thread maps in<br />
struct perf_target, it'd be better using it as an argument.<br />
<br />
Signed-off-by: Namhyung Kim &lt;namhyung.kim@lge.com&gt;<br />
Reviewed-by: David Ahern &lt;dsahern@gmail.com&gt;<br />
Cc: David Ahern &lt;dsahern@gmail.com&gt;<br />
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;<br />
Cc: Namhyung Kim &lt;namhyung@gmail.com&gt;<br />
Cc: Paul Mackerras &lt;paulus@samba.org&gt;<br />
Cc: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;<br />
Link: <a href="http://lkml.kernel.org/r/1335417327-11796-6-git-send-email-namhyung.kim@lge.com" target="_blank"  rel="nofollow">http://lkml.kernel.org/r/1335417327-11796-6-git-send-email-namhyung.kim@lge.com</a><br />
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;<br />
---<br />
 tools/perf/builtin-record.c |    4 +---<br />
 tools/perf/builtin-test.c   |    7 ++++---<br />
 tools/perf/builtin-top.c    |    4 +---<br />
 tools/perf/util/evlist.c    |   12 +++++++-----<br />
 tools/perf/util/evlist.h    |    4 ++--<br />
 5 files changed, 15 insertions(+), 16 deletions(-)<br />
<br />
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c<br />
index 3596cca..d165909 100644<br />
--- a/tools/perf/builtin-record.c<br />
+++ b/tools/perf/builtin-record.c<br />
@@ -891,9 +891,7 @@ int cmd_record(int argc, const char **argv, const char *prefix __used)<br />
 	    rec-&gt;opts.target.uid == UINT_MAX - 1)<br />
 		goto out_free_fd;<br />
 <br />
-	if (perf_evlist__create_maps(evsel_list, rec-&gt;opts.target.pid,<br />
-				     rec-&gt;opts.target.tid, rec-&gt;opts.target.uid,<br />
-				     rec-&gt;opts.target.cpu_list) &lt; 0)<br />
+	if (perf_evlist__create_maps(evsel_list, &amp;rec-&gt;opts.target) &lt; 0)<br />
 		usage_with_options(record_usage, record_options);<br />
 <br />
 	list_for_each_entry(pos, &amp;evsel_list-&gt;entries, node) {<br />
diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c<br />
index 27882d8..9d9abbb 100644<br />
--- a/tools/perf/builtin-test.c<br />
+++ b/tools/perf/builtin-test.c<br />
@@ -1165,6 +1165,9 @@ realloc:<br />
 static int test__PERF_RECORD(void)<br />
 {<br />
 	struct perf_record_opts opts = {<br />
+		.target = {<br />
+			.uid = UINT_MAX,<br />
+		},<br />
 		.no_delay   = true,<br />
 		.freq	    = 10,<br />
 		.mmap_pages = 256,<br />
@@ -1207,9 +1210,7 @@ static int test__PERF_RECORD(void)<br />
 	 * perf_evlist__prepare_workload we'll fill in the only thread<br />
 	 * we're monitoring, the one forked there.<br />
 	 */<br />
-	err = perf_evlist__create_maps(evlist, opts.target.pid,<br />
-				       opts.target.tid, UINT_MAX,<br />
-				       opts.target.cpu_list);<br />
+	err = perf_evlist__create_maps(evlist, &amp;opts.target);<br />
 	if (err &lt; 0) {<br />
 		pr_debug(&quot;Not enough memory to create thread/cpu maps\n&quot;);<br />
 		goto out_delete_evlist;<br />
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c<br />
index 4f47952..2a0ec09 100644<br />
--- a/tools/perf/builtin-top.c<br />
+++ b/tools/perf/builtin-top.c<br />
@@ -1258,9 +1258,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)<br />
 	if (top.target.uid_str != NULL &amp;&amp; top.target.uid == UINT_MAX - 1)<br />
 		goto out_delete_evlist;<br />
 <br />
-	if (perf_evlist__create_maps(top.evlist, top.target.pid,<br />
-				     top.target.tid, top.target.uid,<br />
-				     top.target.cpu_list) &lt; 0)<br />
+	if (perf_evlist__create_maps(top.evlist, &amp;top.target) &lt; 0)<br />
 		usage_with_options(top_usage, options);<br />
 <br />
 	if (!top.evlist-&gt;nr_entries &amp;&amp;<br />
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c<br />
index 7080901..a43e2c5 100644<br />
--- a/tools/perf/util/evlist.c<br />
+++ b/tools/perf/util/evlist.c<br />
@@ -599,18 +599,20 @@ int perf_evlist__mmap(struct perf_evlist *evlist, unsigned int pages,<br />
 	return perf_evlist__mmap_per_cpu(evlist, prot, mask);<br />
 }<br />
 <br />
-int perf_evlist__create_maps(struct perf_evlist *evlist, const char *target_pid,<br />
-			     const char *target_tid, uid_t uid, const char *cpu_list)<br />
+int perf_evlist__create_maps(struct perf_evlist *evlist,<br />
+			     struct perf_target *target)<br />
 {<br />
-	evlist-&gt;threads = thread_map__new_str(target_pid, target_tid, uid);<br />
+	evlist-&gt;threads = thread_map__new_str(target-&gt;pid, target-&gt;tid,<br />
+					      target-&gt;uid);<br />
 <br />
 	if (evlist-&gt;threads == NULL)<br />
 		return -1;<br />
 <br />
-	if (uid != UINT_MAX || (cpu_list == NULL &amp;&amp; target_tid))<br />
+	if (target-&gt;uid != UINT_MAX ||<br />
+	    (target-&gt;cpu_list == NULL &amp;&amp; target-&gt;tid))<br />
 		evlist-&gt;cpus = cpu_map__dummy_new();<br />
 	else<br />
-		evlist-&gt;cpus = cpu_map__new(cpu_list);<br />
+		evlist-&gt;cpus = cpu_map__new(target-&gt;cpu_list);<br />
 <br />
 	if (evlist-&gt;cpus == NULL)<br />
 		goto out_delete_threads;<br />
diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h<br />
index 21f1c9e..58abb63 100644<br />
--- a/tools/perf/util/evlist.h<br />
+++ b/tools/perf/util/evlist.h<br />
@@ -106,8 +106,8 @@ static inline void perf_evlist__set_maps(struct perf_evlist *evlist,<br />
 	evlist-&gt;threads	= threads;<br />
 }<br />
 <br />
-int perf_evlist__create_maps(struct perf_evlist *evlist, const char *target_pid,<br />
-			     const char *tid, uid_t uid, const char *cpu_list);<br />
+int perf_evlist__create_maps(struct perf_evlist *evlist,<br />
+			     struct perf_target *target);<br />
 void perf_evlist__delete_maps(struct perf_evlist *evlist);<br />
 int perf_evlist__set_filters(struct perf_evlist *evlist);<br />
 <br />
--<br />
To unsubscribe from this list: send the line &quot;unsubscribe linux-kernel&quot; in<br />
the body of a message to <a href="mailto:&#109;&#97;&#106;&#111;&#114;&#100;&#111;&#109;&#111;&#64;&#118;&#103;&#101;&#114;&#46;&#107;&#101;&#114;&#110;&#101;&#108;&#46;&#111;&#114;&#103;">&#109;&#97;&#106;&#111;&#114;&#100;&#111;&#109;&#111;&#64;&#118;&#103;&#101;&#114;&#46;&#107;&#101;&#114;&#110;&#101;&#108;&#46;&#111;&#114;&#103;</a><br />
More majordomo info at  <a href="http://vger.kernel.org/majordomo-info.html" target="_blank"  rel="nofollow">http://vger.kernel.org/majordomo-info.html</a><br />
Please read the FAQ at  <a href="http://www.tux.org/lkml/" target="_blank"  rel="nofollow">http://www.tux.org/lkml/</a>]]></description>
            <dc:creator>tip-bot for Namhyung Kim</dc:creator>
            <category>Linux Kernel</category>
            <pubDate>Fri, 11 May 2012 08:40:04 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.serverphorums.com/read.php?12,486129,486129#msg-486129</guid>
            <title>[PATCH 05/13] perf tools: Make perf_evlist__create_maps() take struct perf_target</title>
            <link>http://www.serverphorums.com/read.php?12,486129,486129#msg-486129</link>
            <description><![CDATA[ Now we have all information that needed to create cpu/thread maps<br />
in struct perf_target, it'd be better using it as an argument.<br />
<br />
Signed-off-by: Namhyung Kim &lt;namhyung.kim@lge.com&gt;<br />
---<br />
 tools/perf/builtin-record.c |    4 +---<br />
 tools/perf/builtin-test.c   |    7 ++++---<br />
 tools/perf/builtin-top.c    |    4 +---<br />
 tools/perf/util/evlist.c    |   12 +++++++-----<br />
 tools/perf/util/evlist.h    |    4 ++--<br />
 5 files changed, 15 insertions(+), 16 deletions(-)<br />
<br />
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c<br />
index 3596ccab6d3b..d16590942cec 100644<br />
--- a/tools/perf/builtin-record.c<br />
+++ b/tools/perf/builtin-record.c<br />
@@ -891,9 +891,7 @@ int cmd_record(int argc, const char **argv, const char *prefix __used)<br />
 	    rec-&gt;opts.target.uid == UINT_MAX - 1)<br />
 		goto out_free_fd;<br />
 <br />
-	if (perf_evlist__create_maps(evsel_list, rec-&gt;opts.target.pid,<br />
-				     rec-&gt;opts.target.tid, rec-&gt;opts.target.uid,<br />
-				     rec-&gt;opts.target.cpu_list) &lt; 0)<br />
+	if (perf_evlist__create_maps(evsel_list, &amp;rec-&gt;opts.target) &lt; 0)<br />
 		usage_with_options(record_usage, record_options);<br />
 <br />
 	list_for_each_entry(pos, &amp;evsel_list-&gt;entries, node) {<br />
diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c<br />
index e9b256920da0..a281284ee2f5 100644<br />
--- a/tools/perf/builtin-test.c<br />
+++ b/tools/perf/builtin-test.c<br />
@@ -1165,6 +1165,9 @@ realloc:<br />
 static int test__PERF_RECORD(void)<br />
 {<br />
 	struct perf_record_opts opts = {<br />
+		.target = {<br />
+			.uid = UINT_MAX,<br />
+		},<br />
 		.no_delay   = true,<br />
 		.freq	    = 10,<br />
 		.mmap_pages = 256,<br />
@@ -1207,9 +1210,7 @@ static int test__PERF_RECORD(void)<br />
 	 * perf_evlist__prepare_workload we'll fill in the only thread<br />
 	 * we're monitoring, the one forked there.<br />
 	 */<br />
-	err = perf_evlist__create_maps(evlist, opts.target.pid,<br />
-				       opts.target.tid, UINT_MAX,<br />
-				       opts.target.cpu_list);<br />
+	err = perf_evlist__create_maps(evlist, &amp;opts.target);<br />
 	if (err &lt; 0) {<br />
 		pr_debug(&quot;Not enough memory to create thread/cpu maps\n&quot;);<br />
 		goto out_delete_evlist;<br />
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c<br />
index 4f47952eddbd..2a0ec09b9b77 100644<br />
--- a/tools/perf/builtin-top.c<br />
+++ b/tools/perf/builtin-top.c<br />
@@ -1258,9 +1258,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)<br />
 	if (top.target.uid_str != NULL &amp;&amp; top.target.uid == UINT_MAX - 1)<br />
 		goto out_delete_evlist;<br />
 <br />
-	if (perf_evlist__create_maps(top.evlist, top.target.pid,<br />
-				     top.target.tid, top.target.uid,<br />
-				     top.target.cpu_list) &lt; 0)<br />
+	if (perf_evlist__create_maps(top.evlist, &amp;top.target) &lt; 0)<br />
 		usage_with_options(top_usage, options);<br />
 <br />
 	if (!top.evlist-&gt;nr_entries &amp;&amp;<br />
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c<br />
index 7080901a2717..a43e2c56d1c6 100644<br />
--- a/tools/perf/util/evlist.c<br />
+++ b/tools/perf/util/evlist.c<br />
@@ -599,18 +599,20 @@ int perf_evlist__mmap(struct perf_evlist *evlist, unsigned int pages,<br />
 	return perf_evlist__mmap_per_cpu(evlist, prot, mask);<br />
 }<br />
 <br />
-int perf_evlist__create_maps(struct perf_evlist *evlist, const char *target_pid,<br />
-			     const char *target_tid, uid_t uid, const char *cpu_list)<br />
+int perf_evlist__create_maps(struct perf_evlist *evlist,<br />
+			     struct perf_target *target)<br />
 {<br />
-	evlist-&gt;threads = thread_map__new_str(target_pid, target_tid, uid);<br />
+	evlist-&gt;threads = thread_map__new_str(target-&gt;pid, target-&gt;tid,<br />
+					      target-&gt;uid);<br />
 <br />
 	if (evlist-&gt;threads == NULL)<br />
 		return -1;<br />
 <br />
-	if (uid != UINT_MAX || (cpu_list == NULL &amp;&amp; target_tid))<br />
+	if (target-&gt;uid != UINT_MAX ||<br />
+	    (target-&gt;cpu_list == NULL &amp;&amp; target-&gt;tid))<br />
 		evlist-&gt;cpus = cpu_map__dummy_new();<br />
 	else<br />
-		evlist-&gt;cpus = cpu_map__new(cpu_list);<br />
+		evlist-&gt;cpus = cpu_map__new(target-&gt;cpu_list);<br />
 <br />
 	if (evlist-&gt;cpus == NULL)<br />
 		goto out_delete_threads;<br />
diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h<br />
index 21f1c9e57f13..58abb63ac13a 100644<br />
--- a/tools/perf/util/evlist.h<br />
+++ b/tools/perf/util/evlist.h<br />
@@ -106,8 +106,8 @@ static inline void perf_evlist__set_maps(struct perf_evlist *evlist,<br />
 	evlist-&gt;threads	= threads;<br />
 }<br />
 <br />
-int perf_evlist__create_maps(struct perf_evlist *evlist, const char *target_pid,<br />
-			     const char *tid, uid_t uid, const char *cpu_list);<br />
+int perf_evlist__create_maps(struct perf_evlist *evlist,<br />
+			     struct perf_target *target);<br />
 void perf_evlist__delete_maps(struct perf_evlist *evlist);<br />
 int perf_evlist__set_filters(struct perf_evlist *evlist);<br />
 <br />
-- <br />
1.7.10<br />
<br />
--<br />
To unsubscribe from this list: send the line &quot;unsubscribe linux-kernel&quot; in<br />
the body of a message to <a href="mailto:&#109;&#97;&#106;&#111;&#114;&#100;&#111;&#109;&#111;&#64;&#118;&#103;&#101;&#114;&#46;&#107;&#101;&#114;&#110;&#101;&#108;&#46;&#111;&#114;&#103;">&#109;&#97;&#106;&#111;&#114;&#100;&#111;&#109;&#111;&#64;&#118;&#103;&#101;&#114;&#46;&#107;&#101;&#114;&#110;&#101;&#108;&#46;&#111;&#114;&#103;</a><br />
More majordomo info at  <a href="http://vger.kernel.org/majordomo-info.html" target="_blank"  rel="nofollow">http://vger.kernel.org/majordomo-info.html</a><br />
Please read the FAQ at  <a href="http://www.tux.org/lkml/" target="_blank"  rel="nofollow">http://www.tux.org/lkml/</a>]]></description>
            <dc:creator>Namhyung Kim</dc:creator>
            <category>Linux Kernel</category>
            <pubDate>Thu, 26 Apr 2012 07:20:15 +0200</pubDate>
        </item>
    </channel>
</rss>
