public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg@kroah.com>
To: Andrew Morton <akpm@osdl.org>, Stephane Eranian <eranian@hpl.hp.com>
Cc: perfmon@napali.hpl.hp.com, linux-kernel@vger.kernel.org
Subject: [PATCH] fix up perfmon to build on -mm
Date: Tue, 6 Nov 2007 16:34:54 -0800	[thread overview]
Message-ID: <20071107003454.GA13374@kroah.com> (raw)

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)

             reply	other threads:[~2007-11-07  0:45 UTC|newest]

Thread overview: 116+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-07  0:34 Greg KH [this message]
2007-11-07 10:34 ` [PATCH] fix up perfmon to build on -mm Stephane Eranian
2007-11-07 17:07   ` Greg KH
2007-11-07 13:42 ` Stephane Eranian
2007-11-07 17:08   ` Greg KH
2007-11-07 17:33     ` Andrew Morton
2007-11-07 17:41       ` Greg KH
2007-11-07 17:50     ` Stephane Eranian
2007-11-07 17:47   ` Greg KH
2007-11-07 17:57     ` Stephane Eranian
2007-11-07 19:53       ` Greg KH
2007-11-07 20:39         ` Stephane Eranian
2007-11-08 15:27         ` Stephane Eranian
2007-11-09 20:06 ` Andrew Morton
2007-11-09 21:38   ` Greg KH
2007-11-10 20:32     ` Andi Kleen
2007-11-13 15:17       ` perfmon2 merge news Robert Richter
2007-11-13 15:35         ` [perfmon2] " William Cohen
2007-11-13 17:55           ` Stephane Eranian
2007-11-13 18:33             ` [perfmon] " William Cohen
2007-11-13 21:13               ` Stephane Eranian
2007-11-13 21:29                 ` Andi Kleen
2007-11-13 21:46                   ` Stephane Eranian
2007-11-13 21:50                     ` Andi Kleen
2007-11-13 22:22                       ` Stephane Eranian
2007-11-13 22:25                         ` Andi Kleen
2007-11-13 22:58                           ` Stephane Eranian
2007-11-14  2:07                             ` Andi Kleen
2007-11-14 13:09                               ` Stephane Eranian
2007-11-14 14:24                                 ` Andi Kleen
2007-11-14 15:44                                   ` William Cohen
2007-11-14 16:13                                     ` Stephane Eranian
2007-11-14 18:53                                     ` Philippe Elie
2007-11-14 19:15                                       ` Andi Kleen
2007-11-15  0:07                                   ` Stephane Eranian
2007-11-13 18:47             ` Philip Mucci
2007-11-13 18:59               ` Greg KH
2007-11-13 20:07                 ` Andrew Morton
2007-11-13 20:14                   ` Greg KH
2007-11-13 20:36                   ` Andi Kleen
2007-11-14  0:28                     ` Philip Mucci
2007-11-14  1:52                       ` Andi Kleen
2007-11-16  9:18                         ` Philip Mucci
2007-11-16 15:15                           ` Andi Kleen
2007-11-16 16:00                             ` Stephane Eranian
2007-11-16 16:28                               ` Andi Kleen
2007-11-16 17:13                                 ` William Cohen
2007-11-16 21:56                                   ` Stephane Eranian
2007-11-16 17:36                                 ` Stephane Eranian
2007-11-16 17:51                             ` dean gaudet
2007-11-17  0:29                               ` David Miller
2007-11-17  1:07                                 ` Greg KH
2007-11-16 20:16                             ` Philip Mucci
2007-11-17  0:15                             ` David Miller
     [not found]                             ` <1d7226b10711161713j675341b7wdb4f050c59a8be0a@mail.gmail.com>
2007-11-17  1:25                               ` Greg KH
     [not found]                                 ` <1d7226b10711161748n39b7f195q796d85282ef66134@mail.gmail.com>
2007-11-17  2:13                                   ` Greg KH
2007-11-14  7:24                   ` [perfmon] Re: [perfmon2] " Paul Mackerras
2007-11-14  7:40                     ` Andrew Morton
2007-11-14 10:38                     ` Christoph Hellwig
2007-11-14 10:43                       ` Paul Mackerras
2007-11-14 11:00                         ` Christoph Hellwig
2007-11-14 11:12                           ` David Miller
2007-11-14 11:14                             ` David Miller
2007-11-14 11:44                             ` Paul Mackerras
2007-11-13 23:49                               ` Nick Piggin
2007-11-14 11:58                                 ` David Miller
2007-11-14  0:25                                   ` Nick Piggin
2007-11-14 21:30                                     ` Paul Mackerras
2007-11-14 10:17                                       ` Nick Piggin
2007-11-14 22:56                                         ` Chuck Ebbert
2007-11-14 11:03                                           ` Nick Piggin
2007-11-14 11:52                               ` David Miller
2007-11-14 12:03                                 ` Paul Mackerras
2007-11-14 12:07                                   ` David Miller
2007-11-14  0:28                                     ` Nick Piggin
2007-11-14 21:50                                     ` Paul Mackerras
2007-11-14 23:03                                       ` David Miller
2007-11-14 23:12                                         ` Paul Mackerras
2007-11-14 23:21                                           ` David Miller
2007-11-15  1:11                                             ` Paul Mackerras
2007-11-15  1:27                                               ` David Miller
2007-11-15  2:34                                                 ` Paul Mackerras
2007-11-15  7:48                                                   ` Herbert Xu
2007-11-15  8:19                                                     ` Andi Kleen
2007-11-19 13:08                                                 ` David Miller
2007-11-19 20:53                                                   ` Stephane Eranian
2007-11-20  0:55                                                     ` David Miller
2007-11-19 21:43                                                   ` Paul Mackerras
2007-11-19 22:48                                                     ` Stephane Eranian
2007-11-20  0:53                                                       ` David Miller
2007-12-13 16:00                                                         ` Stephane Eranian
2007-12-14 19:12                                                           ` Frank Ch. Eigler
2007-12-14 21:07                                                             ` Stephane Eranian
2007-12-15 15:54                                                               ` Frank Ch. Eigler
2007-11-15  8:29                                               ` [perfmon] " Stephane Eranian
2007-11-14 13:51                               ` Stephane Eranian
2007-11-14 11:39                           ` Paul Mackerras
2007-11-14 11:52                             ` David Miller
2007-11-14 13:47                             ` Stephane Eranian
2007-11-14 12:38                           ` Andi Kleen
2007-11-14 14:13                             ` Stephane Eranian
2007-11-14 14:26                               ` Andi Kleen
2007-11-15  0:23                                 ` Paul Mackerras
2007-11-14 19:48                             ` David Miller
2007-11-15  4:20                             ` dean gaudet
2007-11-15  4:47                               ` Paul Mackerras
2007-11-15  5:14                                 ` dean gaudet
2007-11-15  8:53                               ` Stephane Eranian
2007-11-15 17:01                               ` [perfmon2] [perfmon] " Dan Terpstra
2007-11-13 21:33                 ` [perfmon] Re: [perfmon2] " Stephane Eranian
2007-11-13 21:45                   ` Greg KH
2007-11-13 22:27               ` Christoph Hellwig
2007-11-13 20:42           ` Andi Kleen
2007-11-13 18:32         ` Stephane Eranian
2007-11-13 22:29           ` Christoph Hellwig
2007-11-16 18:25           ` PMC core internal API design Mathieu Desnoyers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071107003454.GA13374@kroah.com \
    --to=greg@kroah.com \
    --cc=akpm@osdl.org \
    --cc=eranian@hpl.hp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perfmon@napali.hpl.hp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox