mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ashok Raj <ashok.raj@intel.com>
To: akpm@osdl.org, linux@brodo.de
Cc: davej@redhat.com, zwane@arm.linux.org.uk,
	linux-kernel@vger.kernel.org, Ashok Raj <ashok.raj@intel.com>,
	Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Subject: [patch 1/4] introduce get_cpu_sysdev() to retrieve a sysfs entry for a cpu.
Date: Fri, 21 Oct 2005 13:38:19 -0700	[thread overview]
Message-ID: <20051021204327.523491000@araj-sfield> (raw)
In-Reply-To: <20051021203818.753754000@araj-sfield>

[-- Attachment #1: get-cpu-sysdev --]
[-- Type: text/plain, Size: 2492 bytes --]

some modules creating sysfs entries under /sys/devices/system/cpu/cpuX/
need to know the parent sysfs entry to make devices under them. This will
just return the sysfs entry for a given cpu.

sysfs entries showing under each cpu sysfs can be easily created if such
entries can be created by registering a sysfs driver for cpuclass. The issue
is when the entry is created the CPU may not be online, hence we would need to 
defer the creation until the online notification comes.

Current users: cache entries for Intel CPU's and cpufreq subsystem.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
----------------------------------------------------
 drivers/base/cpu.c  |   17 +++++++++++++++++
 include/linux/cpu.h |    1 +
 2 files changed, 18 insertions(+)

Index: linux-2.6.14-rc4-mm1/drivers/base/cpu.c
===================================================================
--- linux-2.6.14-rc4-mm1.orig/drivers/base/cpu.c
+++ linux-2.6.14-rc4-mm1/drivers/base/cpu.c
@@ -9,6 +9,16 @@
 #include <linux/topology.h>
 #include <linux/device.h>
 
+static struct sys_device	*cpu_sys_devices[NR_CPUS];
+
+struct sys_device *get_cpu_sysdev(int cpu)
+{
+	if (cpu < NR_CPUS)
+		return cpu_sys_devices[cpu];
+	else
+		return NULL;
+}
+EXPORT_SYMBOL(get_cpu_sysdev);
 
 struct sysdev_class cpu_sysdev_class = {
 	set_kset_name("cpu"),
@@ -64,12 +74,15 @@ static void __devinit register_cpu_contr
 void unregister_cpu(struct cpu *cpu, struct node *root)
 {
 
+	int logical_cpu = cpu->sysdev.id;
+
 	if (root)
 		sysfs_remove_link(&root->sysdev.kobj,
 				  kobject_name(&cpu->sysdev.kobj));
 	sysdev_remove_file(&cpu->sysdev, &attr_online);
 
 	sysdev_unregister(&cpu->sysdev);
+	cpu_sys_devices[logical_cpu] = NULL;
 
 	return;
 }
@@ -102,6 +115,10 @@ int __devinit register_cpu(struct cpu *c
 					  kobject_name(&cpu->sysdev.kobj));
 	if (!error && !cpu->no_control)
 		register_cpu_control(cpu);
+
+	if (!error)
+		cpu_sys_devices[num] = &cpu->sysdev;
+
 	return error;
 }
 
Index: linux-2.6.14-rc4-mm1/include/linux/cpu.h
===================================================================
--- linux-2.6.14-rc4-mm1.orig/include/linux/cpu.h
+++ linux-2.6.14-rc4-mm1/include/linux/cpu.h
@@ -32,6 +32,7 @@ struct cpu {
 };
 
 extern int register_cpu(struct cpu *, int, struct node *);
+extern struct sys_device *get_cpu_sysdev(int cpu);
 #ifdef CONFIG_HOTPLUG_CPU
 extern void unregister_cpu(struct cpu *, struct node *);
 #endif

--


  reply	other threads:[~2005-10-24 18:02 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-21 20:38 [patch 0/4] dynamically create "cache" and "cpufreq" entries with CPU hotplug Ashok Raj
2005-10-21 20:38 ` Ashok Raj [this message]
2005-10-21 20:38 ` [patch 2/4] create and destroy cache sysfs entries based on cpu notifiers Ashok Raj
2005-10-21 20:38 ` [patch 3/4] Remove cpu_sys_devices in cpufreq subsystem Ashok Raj
2005-10-21 20:38 ` [patch 4/4] create and destroy cpufreq sysfs entries based on cpu notifiers Ashok Raj
2005-11-07 11:41   ` Nathan Lynch
2005-11-07 14:27     ` Ashok Raj

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=20051021204327.523491000@araj-sfield \
    --to=ashok.raj@intel.com \
    --cc=akpm@osdl.org \
    --cc=davej@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@brodo.de \
    --cc=venkatesh.pallipadi@intel.com \
    --cc=zwane@arm.linux.org.uk \
    /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

all inboxes | Powered by JetHome®