[PATCH] fix up perfmon to build on -mm

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Andrew Morton <akpm@...>, Stephane Eranian <eranian@...>
Cc: <perfmon@...>, <linux-kernel@...>
Date: Tuesday, November 6, 2007 - 8:34 pm

Here's a patch against my current tree that gets the perfmon code
building and hopefully working.

Note, it needs the kobject_create_and_register() patch which is in my
tree, but I do not think it made it to -mm yet.  The next -mm cycle
should have it.

Also, the sysfs usage in the perfmon code is quite strange and not
documented at all.  Yes, there is a little bit in the documentation
about what a few of the files do, but there are _way_ more files and
even directories being created under /sys/kernel/perfmon/ that are not
documented at all here.

If you document this stuff, I think I can clean up your sysfs code a
lot, making things simpler, easier to extend, and easier to understand.
But as it is, I don't want to break anything as it's totally unknown how
this stuff is supposed to work...

Hint, use the Documentation/ABI directory to document your sysfs
interfaces, that is what it is there for...

thanks,

greg k-h

---------------
From: Greg Kroah-Hartman <gregkh@suse.de>
Subject: perfmon: fix up some static kobject usages

This gets the perfmon code to build properly on the latest -mm tree, as
well as removing some static kobjects.

A lot of future kobject cleanups can be done on this code, but the
documentation for the perfmon sysfs interface is very limited and does
not describe all of the different files and subdirectories at all.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 perfmon/perfmon_sysfs.c |   37 +++++++++++++++----------------------
 1 file changed, 15 insertions(+), 22 deletions(-)

--- a/perfmon/perfmon_sysfs.c
+++ b/perfmon/perfmon_sysfs.c
@@ -76,7 +76,8 @@ EXPORT_SYMBOL(pfm_controls);
 
 DECLARE_PER_CPU(struct pfm_stats, pfm_stats);
 
-static struct kobject pfm_kernel_kobj, pfm_kernel_fmt_kobj;
+static struct kobject *pfm_kernel_kobj;
+static struct kobject *pfm_kernel_fmt_kobj;
 
 static void pfm_reset_stats(int cpu)
 {
@@ -402,31 +403,23 @@ static struct attribute_group pfm_kernel
 
 int __init pfm_init_sysfs(void)
 {
-	int ret;
+	int ret = -ENOMEM;
 	int i, cpu = -1;
 
-	kobject_init(&pfm_kernel_kobj);
-	kobject_init(&pfm_kernel_fmt_kobj);
-
-	pfm_kernel_kobj.parent = &kernel_subsys.kobj;
-	kobject_set_name(&pfm_kernel_kobj, "perfmon");
-
-	pfm_kernel_fmt_kobj.parent = &pfm_kernel_kobj;
-	kobject_set_name(&pfm_kernel_fmt_kobj, "formats");
-
-	ret = kobject_add(&pfm_kernel_kobj);
-	if (ret) {
-		PFM_INFO("cannot add kernel object: %d", ret);
+	pfm_kernel_kobj = kobject_create_and_register("perfmon", kernel_kobj);
+	if (!pfm_kernel_kobj) {
+		PFM_INFO("cannot create perfmon kernel object");
 		goto error;
 	}
 
-	ret = kobject_add(&pfm_kernel_fmt_kobj);
-	if (ret) {
-		PFM_INFO("cannot add fmt object: %d", ret);
+	pfm_kernel_fmt_kobj = kobject_create_and_register("formats",
+							  pfm_kernel_kobj);
+	if (!pfm_kernel_fmt_kobj) {
+		PFM_INFO("cannot add fmt object");
 		goto error_fmt;
 	}
 
-	ret = sysfs_create_group(&pfm_kernel_kobj, &pfm_kernel_attr_group);
+	ret = sysfs_create_group(pfm_kernel_kobj, &pfm_kernel_attr_group);
 	if (ret) {
 		PFM_INFO("cannot create kernel group");
 		goto error_group;
@@ -449,9 +442,9 @@ int __init pfm_init_sysfs(void)
 	return 0;
 
 error_group:
-	kobject_del(&pfm_kernel_fmt_kobj);
+	kobject_unregister(pfm_kernel_fmt_kobj);
 error_fmt:
-	kobject_del(&pfm_kernel_kobj);
+	kobject_unregister(pfm_kernel_kobj);
 
 	for (i=0; i < cpu; i++)
 		pfm_sysfs_del_cpu(i);
@@ -683,7 +676,7 @@ int pfm_sysfs_add_fmt(struct pfm_smpl_fm
 
 	kobject_set_name(&fmt->kobj, fmt->fmt_name);
 	//kobj_set_kset_s(fmt, pfm_fmt_subsys);
-	fmt->kobj.parent = &pfm_kernel_fmt_kobj;
+	fmt->kobj.parent = pfm_kernel_fmt_kobj;
 
 	ret = kobject_add(&fmt->kobj);
 	if (ret)
@@ -861,7 +854,7 @@ int pfm_sysfs_add_pmu(struct pfm_pmu_con
 	kobject_init(&pmu->kobj);
 	kobject_set_name(&pmu->kobj, "pmu_desc");
 	//kobj_set_kset_s(pmu, pfm_pmu_subsys);
-	pmu->kobj.parent = &pfm_kernel_kobj;
+	pmu->kobj.parent = pfm_kernel_kobj;
 
 	ret = kobject_add(&pmu->kobj);
 	if (ret)
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] fix up perfmon to build on -mm, Greg KH, (Tue Nov 6, 8:34 pm)
Re: [PATCH] fix up perfmon to build on -mm, Andrew Morton, (Fri Nov 9, 4:06 pm)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Fri Nov 9, 5:38 pm)
Re: [PATCH] fix up perfmon to build on -mm, Andi Kleen, (Sat Nov 10, 4:32 pm)
perfmon2 merge news, Robert Richter, (Tue Nov 13, 11:17 am)
Re: [perfmon2] perfmon2 merge news, William Cohen, (Tue Nov 13, 11:35 am)
Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 4:42 pm)
Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 1:55 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Philip Mucci, (Tue Nov 13, 2:47 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Christoph Hellwig, (Tue Nov 13, 6:27 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Greg KH, (Tue Nov 13, 2:59 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 5:33 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Greg KH, (Tue Nov 13, 5:45 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andrew Morton, (Tue Nov 13, 4:07 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 3:24 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Christoph Hellwig, (Wed Nov 14, 6:38 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 6:43 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Christoph Hellwig, (Wed Nov 14, 7:00 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Wed Nov 14, 8:38 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, dean gaudet, (Thu Nov 15, 12:20 am)
RE: [perfmon2] [perfmon] Re: perfmon2 merge news, Dan Terpstra, (Thu Nov 15, 1:01 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Thu Nov 15, 4:53 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Thu Nov 15, 12:47 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, dean gaudet, (Thu Nov 15, 1:14 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 3:48 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 10:13 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Wed Nov 14, 10:26 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 8:23 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 7:39 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 9:47 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 7:52 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 7:12 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 7:44 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 9:51 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 7:52 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 8:03 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 8:07 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 5:50 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 7:03 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 7:12 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 7:21 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 9:11 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Thu Nov 15, 4:29 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 9:27 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Mon Nov 19, 9:08 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Mon Nov 19, 5:43 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Mon Nov 19, 6:48 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Mon Nov 19, 8:53 pm)
Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Thu Dec 13, 12:00 pm)
Re: [perfmon2] perfmon2 merge news, Frank Ch. Eigler, (Fri Dec 14, 3:12 pm)
Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Fri Dec 14, 5:07 pm)
Re: [perfmon2] perfmon2 merge news, Frank Ch. Eigler, (Sat Dec 15, 11:54 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Mon Nov 19, 4:53 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Mon Nov 19, 8:55 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 10:34 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Herbert Xu, (Thu Nov 15, 3:48 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Thu Nov 15, 4:19 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Tue Nov 13, 8:28 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Tue Nov 13, 7:49 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 7:58 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Tue Nov 13, 8:25 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Paul Mackerras, (Wed Nov 14, 5:30 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Wed Nov 14, 6:17 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Chuck Ebbert, (Wed Nov 14, 6:56 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Nick Piggin, (Wed Nov 14, 7:03 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, David Miller, (Wed Nov 14, 7:14 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andrew Morton, (Wed Nov 14, 3:40 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 4:36 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Philip Mucci, (Tue Nov 13, 8:28 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 9:52 pm)
Re: perfmon2 merge news, Philip Mucci, (Fri Nov 16, 5:18 am)
Re: perfmon2 merge news, Andi Kleen, (Fri Nov 16, 11:15 am)
Re: perfmon2 merge news, David Miller, (Fri Nov 16, 8:15 pm)
Re: perfmon2 merge news, Philip Mucci, (Fri Nov 16, 4:16 pm)
Re: perfmon2 merge news, dean gaudet, (Fri Nov 16, 1:51 pm)
Re: perfmon2 merge news, David Miller, (Fri Nov 16, 8:29 pm)
Re: perfmon2 merge news, Greg KH, (Fri Nov 16, 9:07 pm)
Re: perfmon2 merge news, Stephane Eranian, (Fri Nov 16, 12:00 pm)
Re: perfmon2 merge news, Andi Kleen, (Fri Nov 16, 12:28 pm)
Re: perfmon2 merge news, Stephane Eranian, (Fri Nov 16, 1:36 pm)
Re: perfmon2 merge news, William Cohen, (Fri Nov 16, 1:13 pm)
Re: perfmon2 merge news, Stephane Eranian, (Fri Nov 16, 5:56 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Greg KH, (Tue Nov 13, 4:14 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, William Cohen, (Tue Nov 13, 2:33 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 5:13 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 5:29 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 5:46 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 5:50 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 6:22 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 6:25 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 6:58 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Tue Nov 13, 10:07 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 9:09 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Wed Nov 14, 10:24 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 8:07 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, William Cohen, (Wed Nov 14, 11:44 am)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Philippe Elie, (Wed Nov 14, 2:53 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Andi Kleen, (Wed Nov 14, 3:15 pm)
Re: [perfmon] Re: [perfmon2] perfmon2 merge news, Stephane Eranian, (Wed Nov 14, 12:13 pm)
Re: perfmon2 merge news, Stephane Eranian, (Tue Nov 13, 2:32 pm)
Re: PMC core internal API design, Mathieu Desnoyers, (Fri Nov 16, 2:25 pm)
Re: perfmon2 merge news, Christoph Hellwig, (Tue Nov 13, 6:29 pm)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 9:42 am)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 1:47 pm)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 1:57 pm)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 3:53 pm)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Thu Nov 8, 11:27 am)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 4:39 pm)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 1:08 pm)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 1:50 pm)
Re: [PATCH] fix up perfmon to build on -mm, Andrew Morton, (Wed Nov 7, 1:33 pm)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 1:41 pm)
Re: [PATCH] fix up perfmon to build on -mm, Stephane Eranian, (Wed Nov 7, 6:34 am)
Re: [PATCH] fix up perfmon to build on -mm, Greg KH, (Wed Nov 7, 1:07 pm)